Mohit Project
Mohit Project
The online matrimonial site is mainly developed to let individual find their potential matches for
marriage according to their priorities set. This project allows the phrase ‘Marriages are made in
heaven’ to be rephrased as ‘Marriages are now made online’. This project allows to browse profiles
of those who have registered themselves on this site. This allows individual to give their
information such as Name, Gender, Religion, Caste, Marital status, Current salary, Occupation etc.
This project also allows to upload photo of the individual registering and also allows to upload
kundali picture of the individual. The person looking for marriage can register and search for a
profile that matches their requirement. This project allows individual to search by gender, age,
religion, caste, marital status and also allows individual to view kundali which today is at highest
priority in many caste. When an individual selects a profile which matches his or her requirement, it
can the send an email indicating his or her interest and the email will be sent along with the sender’s
details. Thus this project allows individual to let others view its profile and also allows it to view
Objective of doing this project is to provide Hassel Free, User friendly all marriage related services
& collect all service providers from all over India at one platform to help the parents looking for
marriage to their son & daughters anywhere in India..The main objective of Matrimonial websites
or portals is to provide grooms and brides with excellent matchmaking experience by exploring the
opportunities and resources to meet true potential partner. Keeping the objective in mind, many
world top online matchmaking services providing online matrimonial in Indian and abroad
1.1 Introduction 1
1.2 Aim 1
3.4 ER Diagram 11
Chapter 6 RESULTS 36 - 40
Chapter 7 ADVANTAGES 41
Chapter 8 CONCLUSION 42
BIBLIOGRAPHY 43
CHAPTER 1 : INTRODUCTION
1.1 INTRODUCTION
Matrimonial Services is a web portal which will provide all marriage related services & collect all
service providers from all over India at one platform to help the parents looking for marriage to
their son & daughters anywhere in India. All services like Farm houses, Banquet halls, caterers,
Beauty parlors, Jewelers etc. along with social groups engage in marriages like ‘Brahmin Samaj’,
‘‘Aggrawal Samaj’, ‘Jain Samaj’ etc. are invited to join the initiative. It will help the people in
hassle free marriage arrangements anywhere in India..Marriage is one of the most important social-
culture institutions. Traditionally Indian families have sought help from relatives, marriage brokers
and later through newspapers advertisements to marry their sons and daughters. This match making
process has been evolving over a period of time. With the introduction of online matrimonial
websites portals, a whole new world of possibilities has opened up. Today the Indian matrimonial
websites have emerged as a new and popular medium for seeking marriage partners. In the times of
internet, user profiles shortlist candidates based on marital status, age, height, personality, health,
1.2 AIM
The main purpose of these matrimonial services is to facilitate matchmaking business by applying
the information in the field. Matrimonial services will allow a new user to register and after
successfully registration user can get email confirmation, after completing registration users profile
will be visible to other users. Matrimonial website provides a platform to a lot of bride and grooms
to find a perfect match. There are different sectors like registration, partner, search, etc. So the bride
and groom can get their interest for find their partner. Bride and groom can directly search partner
according to their required criteria. The Bride and groom can use match by email functionality so he
or she can get directly email alert for the match which fulfill their required criteria.
Page No. 1
1.3 EXISTING SYSTEM
The drawback of existing system is that searching a good life partner in this world is the times
Consuming and cost effective. Online matrimonial system is used to overcome these
drawbacks.Already existing system contains the details of Grooms/Brides as updated. eg., Name,
religion, Salary etc.,In Existing system, there is possibilities of creating fake accounts.The fake
account creation has been done mainly by skipping out the screen without entering the OTP which
Secured online matrimonial system is designed to overcome the drawbacks of existing system. It
also provides fast searching for a life partner and sending his/her contact or communicates with the
existing members. As both the members will agree they meet together for the marriage. A person
Page No. 2
1.5 FEASIBILITY STUDY
A feasibility study is a high-level capsule version of the entire System analysis and Design Process.
The study begins by classifying the problem definition. Feasibility is to determine if it’s worth
doing. Once an acceptance problem definition has been generated, the analyst develops a logical
model of the system. A search for alternatives is analyzed carefully. There are 3 parts in feasibility
study.
1) Operational Feasibility
2) Technical Feasibility
3) Economical Feasibility
Operational feasibility is the measure of how well a proposed system solves the problems, and takes
advantage of the opportunities identified during scope definition and how it satisfies the
requirements identified in the requirements analysis phase of system development.The operational
feasibility assessment focuses on the degree to which the proposed development projects fits in with
the existing business environment and objectives with regard to development schedule, delivery
date, corporate culture and existing business processes.To ensure success, desired operational
outcomes must be imparted during design and development. These include such design-dependent
parameters as reliability, maintainability, supportability, usability, producibility, disposability,
sustainability, affordability and others. These parameters are required to be considered at the early
stages of design if desired operational behaviours are to be realised. A system design and
development requires appropriate and timely application of engineering and management efforts to
meet the previously mentioned parameters. A system may serve its intended purpose most
effectively when its technical and operating characteristics are engineered into the design.
Therefore, operational feasibility is a critical aspect of systems engineering that needs to be an
integral part of the early design phases.
Page No. 3
1.5.2 TECHNICAL FEASIBILITY
This involves questions such as whether the technology needed for the system exists, how difficult
it will be to build, and whether the firm has enough experience using that technology. The
assessment is based on outline design of system requirements in terms of input, processes, output,
fields, programs and procedures. This can be qualified in terms of volume of data, trends, frequency
of updating inorder to give an introduction to the technical system. The application is the fact that it
has been developed on windows XP platform and a high configuration of 1GB RAM on Intel
Pentium Dual core processor. This is technically feasible .The technical feasibility assessment is
focused on gaining an understanding of the present technical resources of the organization and their
applicability to the expected needs of the proposed system. It is an evaluation of the hardware and
software and how it meets the need of the proposed system.
Establishing the cost-effectiveness of the proposed system i.e. if the benefits do not outweigh the
costs then it is not worth going ahead. In the fast paced world today there is a great need of online
social networking facilities. Thus the benefits of this project in the current scenario make it
economically feasible. The purpose of the economic feasibility assessment is to determine the
positive economic benefits to the organization that the proposed system will provide. It includes
quantification and identification of all the benefits expected. This assessment typically involves a
cost/benefits analysis.
Page No. 4
1.6 GAANT Chart
Page No. 5
1.7 ORGANISATION OF THE REPORT
1.7.1 INTRODUCTION
This section includes the overall view of the project i.e. the basic problem definition and the general
overview of the problem which describes the problem in layman terms. It also specifies the software
used and the proposed solution strategy.
This section includes the Software and hardware requirements for the smooth running of the
application.
This section consists of the Software Development Life Cycle model. It also contains technical
diagrams like the Data Flow Diagram and the Entity Relationship diagram.
This section describes the different technologies used for the entire development process of the
Front-end as well as the Back-end development of the application.
This section has screenshots of all the implementation i.e. user interface and their description.
This section has screenshots of all the implementation i.e. user interface and their description.
Page No. 6
CHAPTER 2 : SOFTWARE REQUIREMENTS SPECIFICATION
Number Description
2 PC with 2 GB RAM.
3 Front-End Technology React Js, HTML, Python, JavaScript, jQuery, Css, XML
Page No. 7
CHAPTER 3 : DESIGN & PLANNING
3.1 Software Development Life Cycle Model
The waterfall model was selected as the SDLC model due to the following reasons:
Page No. 8
3.2 GENERAL OVERVIEW
Page No. 9
3.3 Use Case Diagram
Page No. 10
3.4 ER Diagram
Page No. 11
3.5 DFD Diagram
Page No. 12
3.5.2 First-Level DFD Diagram
Page No. 13
3.5.3 Second-Level DFD Diagram
Page No. 14
CHAPTER 4 : IMPLEMENTATION DETAILS
In this Section we will do Analysis of Technologies to use for implementing the project.
4.1.1 React Js
ReactJs is an open-source JavaScript library for building user interfaces. It was developed by
Facebook and is used for creating fast and scalable single-page applications. ReactJs allows
developers to build reusable UI components, which can be combined to create complex user
interfaces. The library uses a virtual DOM, which is a representation of the actual HTML DOM in
the memory, to make changes to the user interface faster and more efficient.
ReactJs has become a popular choice for front-end development due to its simplicity and flexibility.
The component-based architecture of ReactJs makes it easier to manage and maintain large-scale
applications. Components in ReactJs can be easily reused across different parts of the application,
which leads to better code organization and less duplication of code. ReactJs also provides a rich set
of tools and libraries, including React Native, which allows developers to build native mobile apps
using React.
In addition to its component-based architecture, ReactJs also offers other features that make it a
popular choice for front-end development. One of these features is the ability to manage the state of
the application using Redux, which is a popular state management library for React. Redux makes it
easier for developers to manage the state of their application, which is particularly important in
large-scale applications. ReactJs also provides support for server-side rendering, which allows for
improved performance and better SEO for the application. The library is also highly performant, as
changes to the user interface are made using the virtual DOM, which allows for efficient updates to
the user interface.
Overall, ReactJs is a powerful and versatile library for building user interfaces. Its component-based
architecture and support for server-side rendering make it a popular choice for front-end
development, while its virtual DOM and state management capabilities make it highly performant
and efficient. Whether you are building a single-page application, a mobile app, or a complex user
interface, ReactJs has the tools and libraries to help you build it quickly and efficiently. With its
growing popularity and community of developers, ReactJs is likely to continue to evolve and
provide even more capabilities for front-end development in the future.
Page No. 15
4.1.2 HTML
HTML (Hypertext Markup Language) is a standard markup language used for creating web pages
and other information that can be displayed on the web. HTML was first introduced in the early
1990s by Tim Berners-Lee, a researcher at the European Organization for Nuclear Research
(CERN). The language has since evolved and is now in its fifth iteration, HTML5, which was
officially released in 2014. HTML is the foundation of all websites and is the backbone of the
internet.
HTML consists of a series of elements and tags that are used to define the structure and content of a
web page. The elements include headings, paragraphs, links, images, lists, tables, and more. The
tags are used to wrap around these elements to indicate how they should be displayed in a web
browser. For example, the <p> tag is used to define a paragraph, while the <img> tag is used to
insert an image. HTML also supports the use of CSS (Cascading Style Sheets) and JavaScript,
which can be used to add styling and interactivity to a website.
HTML5 has greatly improved the functionality of the web, making it easier for developers to create
dynamic and engaging websites. One of the biggest changes in HTML5 is the addition of new
elements and tags, such as the <article>, <header>, <footer>, and <nav> tags. These new tags allow
developers to define the structure of a web page more semantically, making it easier for search
engines and assistive technologies to understand the content. HTML5 also supports multimedia
content, such as audio and video, without the need for additional plugins. Another important feature
of HTML5 is the integration of HTML, CSS, and JavaScript, allowing developers to create rich and
dynamic user interfaces without the need for additional tools.
HTML is also used in conjunction with other technologies such as CSS (Cascading Style Sheets)
and JavaScript to create dynamic and interactive web pages. CSS is used to control the presentation
of web pages, including the font size, color, background and layout. JavaScript is used to create
dynamic effects, such as animations and interactive forms, on web pages. HTML, CSS and
JavaScript work together to create web pages that are not only visually appealing, but also
functional and user-friendly. HTML has come a long way since its introduction, and it continues to
evolve and adapt to new technologies and user needs. HTML5, the latest version of HTML,
includes new features such as video and audio playback, geolocation and offline storage, making it
easier for developers to create dynamic and interactive web pages.
Page No. 16
4.1.3 Python
Python is a high-level programming language that is widely used in various industries, such as
finance, software development, and data analysis. It was first introduced in 1991 by Guido van
Rossum and since then it has become one of the most popular programming languages. Python is a
versatile language that can be used for a variety of purposes, from simple scripts to complex
software applications. It is also an open-source language, which means that its source code is freely
available for anyone to use, modify, and distribute.
One of the main advantages of using Python is its simplicity. Unlike other programming languages,
Python uses an intuitive syntax that is easy to read and write. This makes it an ideal choice for both
beginners and experienced programmers. Python is also known for its versatility, which makes it a
good choice for a variety of tasks, such as web development, scientific computing, and machine
learning. The Python community has developed a large number of libraries and modules, which are
collections of pre-written code that can be used to perform specific tasks. These libraries make it
easy to accomplish complex tasks in just a few lines of code, which saves time and effort.
In recent years, Python has become increasingly popular in the data science community. This is
because it has a large number of libraries that are specifically designed for data analysis, such as
Pandas and NumPy. These libraries make it easy to perform complex data manipulations, such as
aggregating and summarizing data, and performing statistical analysis. Python also has libraries for
machine learning, such as scikit-learn, which make it possible to build and train machine learning
models with ease. This is why Python is often referred to as a “Swiss Army Knife” of data science,
as it provides a wide range of tools that make it possible to perform complex data analysis tasks.
Overall, Python is a highly versatile programming language that has a lot to offer. Its simplicity and
versatility make it an ideal choice for a variety of tasks, from simple scripts to complex software
applications. Python’s popularity in the data science community is also a testament to its
capabilities, as it provides a wide range of tools that make it possible to perform complex data
analysis tasks. Whether you are a beginner or an experienced programmer, Python is a language that
is worth learning, as it is sure to provide you with many opportunities to explore new areas of
programming and to expand your skills.
Page No. 17
4.1.4 JavaScript
JavaScript is a high-level programming language that is widely used for developing interactive web
applications. It was created in the mid-90s and has since become one of the most popular scripting
languages in the world. JavaScript is used to add dynamic and interactive elements to websites,
such as drop-down menus, pop-up windows, and animations. It can be used in both the front-end
and back-end of web development, making it a versatile language for developers to master.
JavaScript is an object-oriented language, which means that it is based on objects, and objects have
properties and methods. The syntax of JavaScript is similar to that of other popular programming
languages such as C, C++, and Java, which makes it easy for developers to learn. JavaScript is a
lightweight language, which means that it can run quickly on computers and mobile devices.
JavaScript is also cross-platform, which means that it can run on any platform that has a web
browser. JavaScript is supported by all major web browsers including Chrome, Firefox, Internet
Explorer, and Safari, which means that developers can write code once and run it on multiple
platforms.
Another reason for the popularity of JavaScript is its simplicity. The syntax is easy to understand,
making it accessible to both experienced and novice developers. The language also has a large and
active community, which has created a wealth of open-source libraries and frameworks that can be
used to build complex applications quickly and easily. These libraries and frameworks make it
possible to accomplish complex tasks without writing large amounts of code, which means that
development can be done faster and more efficiently. Additionally, there are many online resources
available, such as tutorials, forums, and video courses, to help developers learn and improve their
skills.
In conclusion, JavaScript is a vital component of the development of modern web applications. Its
versatility, accessibility, and rich library of tools and frameworks make it an ideal choice for web
developers. Whether you are a beginner or an experienced developer, JavaScript offers the
flexibility and power to create dynamic and interactive web applications that engage and delight
users. As the web continues to evolve and become more complex, the importance of JavaScript will
only continue to grow, making it an essential language for web developers to learn and master.
Page No. 18
4.1.5 jQuery
jQuery is a cross-platform JavaScript library that provides a fast, concise and consistent way to
manipulate HTML elements, handle events and create animations. It was created by John Resig in
2006 and has since become one of the most popular JavaScript libraries in the world. Today, jQuery
is used by millions of websites and has a vast community of developers constantly adding new
features and functionality to the library.
One of the key benefits of jQuery is its ability to simplify complex JavaScript tasks. For example,
instead of writing complex JavaScript code to select an element and modify its content, you can
write a simple line of code using jQuery. This can make it easier to develop interactive websites and
applications and to perform common tasks like creating animations, handling events and making
AJAX requests. Additionally, jQuery has a wide range of plugins and extensions that can be used to
add additional functionality to your website. These plugins cover a range of topics from image
sliders to form validation, making it easier for developers to quickly add features to their websites.
Another important aspect of jQuery is its cross-platform compatibility. The library is designed to
work across all major browsers, including Internet Explorer, Firefox, Chrome and Safari, so
developers don’t have to worry about compatibility issues when developing their websites. This
makes it easier to write code that works seamlessly on all platforms and reduces the time and effort
required to test and debug code across different browsers. Additionally, jQuery is designed to be
lightweight and fast, so it won’t slow down your website or affect its performance. The library is
also constantly being updated by the community of developers to ensure that it remains up-to-date
with the latest web technologies.
In conclusion, jQuery has become an essential tool for developers working on web projects. It
provides a fast, concise and consistent way to manipulate HTML elements, handle events and create
animations. It also has a vast library of plugins and extensions that can be used to quickly add
features to websites. Additionally, jQuery is cross-platform compatible and designed to be
lightweight and fast, so it won’t slow down your website or affect its performance. Whether you’re
a beginner or an experienced developer, jQuery is an invaluable tool that can help you create
engaging and interactive websites and applications.
Page No. 19
4.1.6 Css
CSS (Cascading Style Sheets) is a style sheet language used for describing the look and formatting
of a document written in HTML. It is an essential component of modern web development, as it
allows web developers to separate the content of a website from its presentation, making the design
and maintenance of websites much more manageable. The use of CSS makes it possible to apply
styles to a large number of web pages with just a few lines of code, rather than having to make
changes to the HTML code of each individual page.
CSS is based on a set of styling rules that are applied to specific HTML elements. These rules
specify the appearance of elements such as font, color, size, spacing, and more. CSS also provides a
way to specify the behavior of elements in response to different conditions, such as screen size or
device type. This makes it possible to create responsive designs that automatically adjust to
different screens, from desktop to mobile devices. Additionally, CSS provides a way to define the
layout of a page, using a variety of techniques such as floating elements, positioning, and the use of
grid and flexbox systems.
One of the main advantages of CSS is the ability to reuse styles across multiple pages, making it
easy to maintain consistency in the design of a website. The use of CSS also enables developers to
create styles that are reusable across different websites, as well as making it possible to share styles
with other developers. With the widespread use of CSS, there is a vast collection of pre-built styles
available on the internet that developers can use to speed up their design process. CSS has also been
used to create complex and sophisticated visual effects, such as animations, that were previously
only possible with JavaScript. In conclusion, CSS has become an essential tool for web
development, making it possible to create visually appealing and highly functional websites that are
easy to maintain and update.
In addition to providing a consistent look and feel, CSS also helps to improve the accessibility and
usability of websites. CSS can be used to hide content from screen readers, provide alternate text for
images, and format pages for different screen sizes and devices. This makes it easier for users with
disabilities to access and interact with a website, and for mobile users to view the site on their
devices. CSS also helps to improve the performance of websites, as it can be used to minimize the
number of requests to the server, reducing the load time of a site.
Page No. 20
4.1.7 XML
XML (eXtensible Markup Language) is a technology that is used to store and transport data. It is a
markup language, meaning it is a set of rules for encoding documents in a format that is both
human-readable and machine-readable. XML is used to store and transport data in a platform-
independent way, allowing the data to be used by any application regardless of the operating system
or hardware. XML uses a hierarchical structure for data, making it easy to read and navigate. It is
also extensible, meaning it can be easily expanded to accommodate new data. XML is used in a
variety of applications, including web applications, document management systems, and content
management systems. XML is also used to exchange data between different applications, making it
an essential technology for enterprise data exchange.
One of the key strengths of XML is its ability to be easily processed by computers, which makes it a
popular choice for encoding information that needs to be shared or manipulated by different
systems. For example, XML can be used to define the structure of a document or data file, with
each element of the file being marked up with a tag that specifies its type and its content. This
makes it possible for software applications to parse and process the information contained within an
XML file, which can then be used for a wide range of purposes, such as data visualization, data
analysis, or document conversion.
Another benefit of XML is its ability to be extended and customized to suit specific needs. This is
accomplished through the use of namespaces, which allow users to define their own set of tags and
attributes that are specific to their particular use case. This makes it possible to use XML in a
variety of different contexts, from encoding business data, to describing scientific data, to encoding
multimedia content. Additionally, because XML is a text-based format, it can be edited and
modified easily, which makes it a popular choice for data storage and data exchange between
systems.
In conclusion, XML is a versatile and flexible markup language that has become a popular choice
for encoding and structuring information for a wide range of purposes. Its ability to be easily
processed by computers, combined with its ability to be extended and customized to suit specific
needs, make it a popular choice for encoding and exchanging information between different systems
and applications. Whether it is used for encoding business data, describing scientific data, or storing
multimedia content, XML is a versatile format that has proven to be an effective solution for a wide
range of information management challenges.
Page No. 21
4.2 : BACK END
4.2.1 PHP
PHP, short for Hypertext Preprocessor, is a server-side scripting language that is widely used for
web development. It was created in 1995 by Rasmus Lerdorf and has since become one of the most
popular languages for creating dynamic websites and web applications. PHP is an open-source
language, which means that it is free to use and its source code can be modified and distributed by
anyone.
One of the main advantages of PHP is that it integrates seamlessly with HTML, CSS, and
JavaScript. This makes it easier for developers to create dynamic web pages that can change based
on user interactions and input. PHP also has a large number of built-in functions and libraries that
allow developers to perform a wide range of tasks, from connecting to a database to sending emails.
Additionally, PHP is platform-independent, which means that it can run on any operating system,
including Windows, Linux, and macOS.
PHP is also highly extensible, with a large number of third-party libraries and frameworks available.
This makes it easy for developers to add additional functionality to their projects, without having to
write complex code from scratch. For example, popular PHP frameworks such as Laravel and
CodeIgniter provide pre-built modules and libraries that simplify tasks such as routing, database
access, and authentication. Additionally, PHP has a large community of developers, who contribute
to its development and provide support to users. This makes it easier for developers to find help
when they encounter problems and also ensures that the language continues to evolve and improve
over time.
In conclusion, PHP is a powerful and versatile scripting language that is widely used for web
development. Its integration with HTML, CSS, and JavaScript, as well as its built-in functions and
libraries, make it easier for developers to create dynamic web pages and applications. Its
extensibility and the support of a large community of developers make it an ideal choice for projects
of all sizes. Whether you are building a small website or a complex web application, PHP provides
the tools and resources you need to get the job done.
Page No. 22
4.2.1 Django
Django is a high-level Python web framework that enables developers to build scalable and
dynamic web applications with ease. The framework was created in 2003 by a group of developers,
who were frustrated with the limitations of existing web frameworks. They aimed to create a
framework that would make the process of web development faster and more efficient, while also
ensuring that the resulting applications were secure, reliable, and easy to maintain.
One of the key features of Django is its Model-View-Template (MVT) architecture, which separates
the application into three distinct components. The Model component is responsible for managing
the data and interactions with the database, the View component handles user requests and manages
the presentation of data, and the Template component is responsible for rendering the HTML pages.
This separation of concerns helps to keep the code clean and well-organized, making it easier to
maintain and debug. Django also includes a powerful Object-Relational Mapping (ORM) layer,
which provides an abstraction over the database, allowing developers to interact with the database
using Python instead of SQL. This eliminates the need for manual database queries and reduces the
risk of SQL injection attacks.
Another important aspect of Django is its security features. The framework includes built-in
protection against common web application security threats, such as cross-site scripting (XSS),
cross-site request forgery (CSRF), and SQL injection. It also includes user authentication and
authorization systems, allowing developers to easily manage user accounts and control access to
application resources. Additionally, Django supports caching, which can be used to speed up the
performance of web applications by storing frequently used data in memory. This can reduce the
load on the database server and improve the responsiveness of the application.
Overall, Django is an excellent choice for web development projects that require a fast, scalable,
and secure framework. Its MVT architecture, ORM layer, and security features make it a popular
choice among developers, and its wide range of built-in modules and third-party packages make it
easy to add additional functionality to an application. The large and active community of developers
who contribute to the framework also ensure that it remains up-to-date and well-supported, making
it an excellent choice for both new and experienced developers.
Page No. 23
4.2.1 MongoDB
MongoDB is an open-source database management system that utilizes the NoSQL database model.
The software was first developed by MongoDB, Inc. in 2007 and has since become one of the most
widely-used databases in the world, powering websites and applications of all sizes and industries.
MongoDB is designed to be highly scalable, flexible, and performant, making it an ideal choice for
a wide range of use cases, from simple blogs to complex, data-intensive applications.
One of the key advantages of MongoDB is its scalability. Unlike traditional relational databases,
MongoDB uses a document-oriented data model, which allows for a more flexible and scalable
architecture. This model allows for the easy distribution of data across multiple servers, providing
greater reliability and fault tolerance. This scalability is particularly useful for organizations that
require high levels of performance, as well as for businesses that experience rapid growth or require
real-time access to large amounts of data. In addition, MongoDB has a robust set of tools and
features designed to help organizations manage their data, including backup and recovery, security,
and performance tuning.
Another major benefit of MongoDB is its flexibility. Unlike relational databases, MongoDB does
not require a fixed schema, which makes it much easier to make changes and additions to the
database over time. This flexibility is especially useful for organizations that require a highly
adaptable database to accommodate rapidly changing requirements or that have complex data
structures. Additionally, MongoDB provides a number of tools for analyzing and aggregating data,
including MapReduce, which allows for the creation of custom data processing pipelines. This level
of flexibility and analytical capabilities makes MongoDB a popular choice for organizations
looking to gain insights into their data, such as businesses in the financial, healthcare, and retail
industries.
Page No. 24
CHAPTER 5 : TESTING
5.1 : UNIT TESTING
5.1.1 Introduction
In computer programming, unit testing is a software testing method by which individual units
of source code, sets of one or more computer program modules together with associated control
data, usage procedures, and operating procedures, are tested to determine whether they are fit for
use. Intuitively, one can view a unit as the smallest testable part of an application. In procedural
programming, a unit could be an entire module, but it is more commonly an individual function or
procedure. In object-oriented programming, a unit is often an entire interface, such as a class, but
could be an individual method. Unit tests are short code fragments created by programmers or
occasionally by white box testers during the development process. It forms the basis for component
testing. Ideally, each test case is independent from the others. Substitutes such as method
stubs, mock objects, fakes, and test harnesses can be used to assist testing a module in isolation.
Unit tests are typically written and run by software developers to ensure that code meets its design
and behaves as intended.
Page No. 25
5.1.2 Benifits
The goal of unit testing is to isolate each part of the program and show that the individual parts are
correct. A unit test provides a strict, written contract that the piece of code must satisfy. As a result,
it affords several benefits.
1) Find problems early : Unit testing finds problems early in the development cycle. In test-driven
development (TDD), which is frequently used in both extreme programming and scrum, unit tests
are created before the code itself is written. When the tests pass, that code is considered complete.
The same unit tests are run against that function frequently as the larger code base is developed
either as the code is changed or via an automated process with the build. If the unit tests fail, it is
considered to be a bug either in the changed code or the tests themselves. The unit tests then allow
the location of the fault or failure to be easily traced. Since the unit tests alert the development team
of the problem before handing the code off to testers or clients, it is still early in the development
process.
2 ) Facilitates Change : Unit testing allows the programmer to refactor code or upgrade system
libraries at a later date, and make sure the module still works correctly (e.g., in regression testing).
The procedure is to write test cases for all functions and methods so that whenever a change causes
a fault, it can be quickly identified. Unit tests detect changes which may break a design contract.
3 ) Simplifies Integration : Unit testing may reduce uncertainty in the units themselves and can be
used in a bottom-up testing style approach. By testing the parts of a program first and then testing
the sum of its parts, integration testing becomes much easier.
4 ) Documentation : Unit testing provides a sort of living documentation of the system. Developers
looking to learn what functionality is provided by a unit, and how to use it, can look at the unit tests
to gain a basic understanding of the unit's interface (API).Unit test cases embody characteristics that
are critical to the success of the unit. These characteristics can indicate appropriate/inappropriate
use of a unit as well as negative behaviors that are to be trapped by the unit.
Page No. 26
5.2 : INTEGRATION TESTING
Integration testing (sometimes called integration and testing, abbreviated I&T) is the phase
in software testing in which individual software modules are combined and tested as a group. It
occurs after unit testing and before validation testing. Integration testing takes as its
input modules that have been unit tested, groups them in larger aggregates, applies tests defined in
an integration test plan to those aggregates, and delivers as its output the integrated system ready
for system testing.
5.2.1 Purpose
Page No. 27
5.2.1.1 Big Bang
In the big-bang approach, most of the developed modules are coupled together to form a complete
software system or major part of the system and then used for integration testing. This method is
very effective for saving time in the integration testing process. However, if the test cases and their
results are not recorded properly, the entire integration process will be more complicated and may
prevent the testing team from achieving the goal of integration testing.A type of big-bang
integration testing is called "usage model testing" which can be used in both software and hardware
integration testing. The basis behind this type of integration testing is to run user-like workloads in
integrated user-like environments. In doing the testing in this manner, the environment is proofed,
while the individual components are proofed indirectly through their use. Usage Model testing takes
an optimistic approach to testing, because it expects to have few problems with the individual
components. The strategy relies heavily on the component developers to do the isolated unit testing
for their product. The goal of the strategy is to avoid redoing the testing done by the developers, and
instead flesh-out problems caused by the interaction of the components in the environment.
Bottom-up testing is an approach to integrated testing where the lowest level components are tested
first, then used to facilitate the testing of higher level components. The process is repeated until the
component at the top of the hierarchy is tested.All the bottom or low-level modules, procedures or
functions are integrated and then tested. After the integration testing of lower level integrated
modules, the next level of modules will be formed and can be used for integration testing. This
approach is helpful only when all or most of the modules of the same development level are ready.
This method also helps to determine the levels of software developed and makes it easier to report
testing progress in the form of a percentage.Top-down testing is an approach to integrated testing
where the top integrated modules are tested and the branch of the module is tested step by step until
the end of the related module.Sandwich testing is an approach to combine top down testing with
bottom up testing.
Page No. 28
5.3 : SOFTWARE VERIFICATION AND VALIDATION
5.3.1 Introduction
In software project management, software testing, and software engineering, verification and
validation (V&V) is the process of checking that a software system meets specifications and that it
fulfills its intended purpose. It may also be referred to as software quality control. It is normally the
responsibility of software testers as part of the software development lifecycle. Validation checks
that the product design satisfies or fits the intended use (high-level checking), i.e., the software
meets the user requirements.This is done through dynamic testing and other forms of
review.Verification and validation are not the same thing, although they are often
confused. Boehm succinctly expressed the difference between
Software Verification: The process of evaluating software to determine whether the products of a
given development phase satisfy the conditions imposed at the start of that phase.
Software Validation: The process of evaluating software during or at the end of the development
process to determine whether it satisfies specified requirements.
In other words, software verification is ensuring that the product has been built according to the
requirements and design specifications, while software validation ensures that the product meets the
user's needs, and that the specifications were correct in the first place. Software verification ensures
that "you built it right". Software validation ensures that "you built the right thing". Software
validation confirms that the product, as provided, will fulfill its intended use.
Page No. 29
From Testing Perspective
Both verification and validation are related to the concepts of quality and of software quality
assurance. By themselves, verification and validation do not guarantee software quality;
planning, traceability, configuration management and other aspects of software engineering are
required.Within the modeling and simulation (M&S) community, the definitions of verification,
validation and accreditation are similar:
Page No. 30
5.3.2 Classification of Methods
A test case is a tool used in the process. Test cases may be prepared for software verification and
software validation to determine if the product was built according to the requirements of the user.
Other methods, such as reviews, may be used early in the life cycle to provide for software
validation.
Page No. 31
5.4 : Black-Box Testing
Black-box testing is a method of software testing that examines the functionality of an application
without peering into its internal structures or workings. This method of test can be applied virtually
to every level of software testing: unit, integration, system and acceptance. It typically comprises
most if not all higher level testing, but can also dominate unit testing as well.
Test cases are built around specifications and requirements, i.e., what the application is supposed to
do. Test cases are generally derived from external descriptions of the software, including
specifications, requirements and design parameters. Although the tests used are
primarily functional in nature, non-functional tests may also be used. The test designer selects both
valid and invalid inputs and determines the correct output, often with the help of an oracle or a
previous result that is known to be good, without any knowledge of the test object's internal
structure.
Page No. 32
5.5 : White-Box Testing
White-box testing (also known as clear box testing, glass box testing, transparent box testing,
and structural testing) is a method of testing software that tests internal structures or workings of an
application, as opposed to its functionality (i.e. black-box testing). In white-box testing an internal
perspective of the system, as well as programming skills, are used to design test cases. The tester
chooses inputs to exercise paths through the code and determine the appropriate outputs. This is
analogous to testing nodes in a circuit, e.g. in-circuit testing (ICT). White-box testing can be applied
at the unit, integration and system levels of the software testing process. Although traditional testers
tended to think of white-box testing as being done at the unit level, it is used for integration and
system testing more frequently today. It can test paths within a unit, paths between units during
integration, and between subsystems during a system–level test. Though this method of test design
can uncover many errors or problems, it has the potential to miss unimplemented parts of the
specification or missing requirements.
5.5.1 Levels
1 ) Unit testing : White-box testing is done during unit testing to ensure that the code is working as
intended, before any integration happens with previously tested code. White-box testing during unit
testing catches any defects early on and aids in any defects that happen later on after the code is
integrated with the rest of the application and therefore prevents any type of errors later on.
2 ) Integration testing : White-box testing at this level are written to test the interactions of each
interface with each other. The Unit level testing made sure that each code was tested and working
accordingly in an isolated environment and integration examines the correctness of the behaviour in
an open environment through the use of white-box testing for any interactions of interfaces that are
known to the programmer.
3 ) Regression testing : White-box testing during regression testing is the use of recycled white-
box test cases at the unit and integration testing levels.
Page No. 33
5.5.2 Procedures
White-box testing's basic procedures involves the tester having a deep level of understanding of the
source code being tested. The programmer must have a deep understanding of the application to
know what kinds of test cases to create so that every visible path is exercised for testing. Once the
source code is understood then the source code can be analyzed for test cases to be created. These
are the three basic steps that white-box testing takes in order to create test cases:
Page No. 34
5.6 : SYSTEM TESTING
Page No. 35
CHAPTER 6 : RESULTS
Page No. 36
Page No. 37
Page No. 38
Page No. 39
CHAPTER 7 : ADVANTAGES
The main advantage of this application is that it makes the search easy for those who are
interested for marriage.
It allows individual to set priorities and thus helps to view profiles according to their priorities
set.
This avoids the overhead of meeting face to face just to know about the basic information, which
now the user can view online.
Saves Time And Money. Matrimonial sites are economical in terms of time and money.
Page No. 41
CHAPTER 8 : CONCLUSION
Matrimonial Web Application is to provide Grooms and Brides with excellent matchmaking
experience by exploring the opportunities and resources to meet true potential partner. Matrimonial
website which will provide platform to a lot of Bride/Groom for finding perfect match. There are
different sectors like Registration, Partner, Search, etc. So The Bride/Groom can get their interest
for find their partner. Bride/Groom can directly search Partner according to their required criteria.
The Bride/Groom can use match by Email functionality so he/she can get directly E-mail alert for
the match which fulfill their required criteria. It helps the user by providing profiles of perspective
“Bride” or “Groom” and other information regarding them online.
Page No. 42