You are on page 1of 57

MINOR PROJECT REPORT

Submitted in partial fulfilment of the requirements for the award of the degree

of
BACHELOR OF TECHNOLOGY
(2019-2023)

By
Vishaal Sehgal Ayush Bishnoi Vansh Singh Rana
(00627202719) (00927202719) (01227202719)
Guided by
Ms. Tannu Vats
Assistant Professor

DEPARTMENT OF COMPUTER SCIENCE AND


ENGINEERING

GREATER NOIDA INSTITUTE OF TECHNOLOGY

Affiliated to Guru Gobind Singh Indraprastha University


Sector 16 C, Dwarka (Delhi-110078)
(January 2023)
DECLARATION

It is hereby certified that the work which is being presented in the B.Tech Minor Project Report
entitled "REAL ESTATE KING" in partial fulfilment of the requirements for the award of the
degree of Bachelor of Technology (B.Tech) and submitted in the Department of Computer
Science and Engineering New Delhi (Affiliated to Guru Gobind Singh Indraprastha University,
Delhi) is an authentic record of our own work carried out during a period from November 2022
to January 2023 under the guidance of Ms. Tannu Vats, Assistant Professor Department of
CSE.

The matter presented in the B.Tech Minor Project Report has not been submitted by us for the
award of any other degree of this or any other Institute.

Vishaal Sehgal Ayush Bishnoi Vansh Singh Rana


(00627202719) (00927202719) (01227202719)

This is to certify that the above statement made by the candidate is correct to the best of my
knowledge. He is permitted to appear in the External Minor Project Examination.

MS. TANNU VATS


HOD
Assistant Professor

The B.Tech Minor Project Viva-Voice Examination of Vishaal Sehgal (00627202719),


Ayush Bishnoi (00927202719) and Vansh Singh Rana (01227202719), has been held on
________________

_________________ ___________________

Mr. Gaurav (Signature of External Examiner)


(Project Coordinator)
ACKNOWLEDGEMENT

We take this opportunity to express our profound gratitude and deep regards to
Ms. Tannu Vats, Assistant Professor, Department of Computer Science and
Engineering for his exemplary guidance, suggestion and monitoring constant
encouragement throughout the course of this project work.

We would like to extend our sincere thanks to, Director Sir for providing us the
facilities required for completion of this project work.

Finally, I gratefully acknowledge the support, encouragement & patience of our


family, and as always, nothing in our life would be possible without God, Thank
You!

Signature Signature Signature


Vishaal Sehgal Ayush Bishnoi Vansh Singh Rana
(00627202719) (00927202719) (01227202719)
CERTIFICATE

This is to certify that Vishaal Sehgal (University Enrollment Number:


00627202719), Ayush Bishnoi (University Enrollment Number 00927202719)
and Vansh Singh Rana (University Enrollment Number 01227202719) has
worked under my supervision to prepare this project report of “REAL ESTATE
KING”. The work embodied in this report is original and is of the standard
expected of B.Tech Student and has not been submitted in part or full to this or
any university for the award of any degree or diploma, They have completed all
requirements of guidelines for research project and the work is fit for evaluation.

Date:
Place: New Delhi Signature of Guide: Mr. Gaurav

Signature of HOD: Ms. Tannu Vats


INDEX
S.NO CONTENT PAGE NO.

1. ABSTRACT 1
CHAPTER 1: INTRODUCTION
2. i. ABOUT THE TOPIC 2
ii. ABOUT THE PROJECT
iii. WORKING OF THE PROJECT IS AS FOLLOWS
CHAPTER 2: PROJECT DESCRIPTION
i. OBJECTIVE OF THE PROJECT
3-7
ii. SCOPE OF THE PROJECT
3. iii. SYSTEM ANALYSIS
iv. EXISTING SYSTEM
v. PROPOSED SYSTEM
vi. SDLC APPROACH
CHAPTER 3: REQUIREMENT ANALYSIS

i. INTRODUCTION
ii. SOFTWARE REQUIREMENT SPECIFICATION
iii. MINIMUM SOFTWARE REQUIREMENT

4. a. BUILD
8-12
b. RUN
iv. MINIMUM HARDWARE REQUIREMENT
a. BUILD
b. RUN
v. REQUIREMENT CAPTURE PROCESS
CHAPTER 4: TOOLS AND TECHNIQUES

i. HTML
ii. CSS
5. iii. JAVASCRIPT 13-26
iv. SASS
v. EXPRESS JS
vi. NODE JS
vii. REACT JS
viii. MONGO DB
ix. VISUAL STUDIO CODE
x. VERCEL
xi. MATERIAL UI
xii. TAILWIND CSS

CHAPTER 5: SYSTEM DESIGN


i. INTRODUCTION
ii. DATABASE DESIGN
iii. DATA FLOW DIAGRAMS
a. CONTEXT LEVEL D.F.D
6. 27-30
b. DATA FLOW DIAGRAM FOR LOGIN
iv. DIAGRAMS
a. USE CASE DIAGRAM FOR ADMIN
v. HOME PAGE
CHAPTER 6: SCREENSHOT OF ENTIRE PROJECT
7. i. USER INTERFACE (UI) 31-40
ii. BACKEND (JAVASCRIPT AND MONGODB)
8. CHAPTER 7: VALIDATION 41-42
CHAPTER 8: TESTING
i. INTRODUCTION
ii. UNIT TESTING
9.
iii. INTEGRATION TESTING 43-48
iv. FUNCTIONAL TESTING
v. SYSTEM TESTING
vi. TEST PLAN
10. CHAPTER 9: CONCLUSION 49

11. CHAPTER 10: FUTURE SCOPE 50


12. CHAPTER 11: BIBLIOGRAPHY 51
ABSTRACT

Before the early 20s, usually the purchasing and selling of properties was done
through a broker in order to transition the properties easy between those who want
to sell their properties or land and those who want to buy properties or land. This
was a troublesome task as a lot of investigation and paper work was required in
order to finalize the deal of properties and no such smooth way was available.
Also, the brokers acquire a hefty amount from each party as their token of work.

Now-a-days, this type of hefty work can be easily be solved by killing the broker
i.e., removing the broker and facilitate smooth deal between buyer and seller
through a medium which takes 0% commission.

In Real Estate King Website, we can easily list our properties for free and the
interested parties can choose their desired plot or land for free. Anyone can Sign
up to make an IDs for themselves and list their desired piece of land on the
website with photos and exact location. As the data is safely stored in the
database, no one can access to it and the privacy is maintained. This website
works 24x7 so anyone can access the information anytime as they think is right.
Proper support is available for any complaint, guidance or help.

Real Estate King is an all-rounder solution for selling and purchasing of


properties or land that solves this problem more easily which looked more
complex. The documentation and investigation become easy as all the listed
articles gets checked for verification and all the ID members required to get their
KYCs done to get themselves verified member.

1
CHAPTER–1
INTRODUCTION

ABOUT THE TOPIC

The process of selling and purchasing of land is a tedious work so it was important to develop
an online platform to smooth the whole process and make the documentation faster.

ABOUT THE PROJECT

This Web based application and easily facilitate buyers and sellers or vice versa. All the process
is paper less and the trouble free. The database is administrated by the admin himself in order
to protect personal data from attackers.

WORKING OF THE PROJECT IS AS FOLLOWS

The Real Estate King assists the people to easily communicate with each to establish a
relationship so that purchasing of property gets easier. First the Buyer or Seller has to make an
account with normal details like Name, Date of Birth, Phone number, Email ID and password
of their choice then the data gets stored in Robo 3T Compass software for protection and works
as a database. The front and the main page were created using React.js and hosted on an online
platform which serves as 24x7 running website for all the people. The backend was handled
by node.js which simulates the connection between front end and the backend. Overall, because
of this the whole process gets easier for the common people.

2
CHAPTER 2
PROJECT DESCRIPTION

OBJECTIVE OF THE PROJECT

The main objective of this application is to simply kill the biased fees of brokers so that each
side gets equal share of profits and never lose any extra penny from their pocket. It will boost
the knowledge of the technology in the future and people will get more aware about this. It is
paperless, instant and doesn’t take much of the time.

SCOPE OF THE PROJECT

It plays a very crucial role for the betterment of the buyers and sellers and it hoped that in future
no one will ever need worry about proper procedures of how to buy and sell their desired piece
of land.

SYSTEM ANALYSIS

System analysis is the process of gathering and interpreting facts, diagnosing problems and
using the information to recommend improvements on the system. System analysis is a
problem-solving activity that requires intensive communication between the system users and
system developers.

System analysis or study is an important phase of any system development process. The system
is studied to the minutest detail and analyzed. The system analyst plays the role of an
interrogator and dwells deep into the working of the present system. The system is viewed as
a whole and the inputs to the system are identified. The outputs from the organization are traced
through the various processing that the inputs phase through in the organization.

A detailed study of these processes must be made by various techniques like Interviews,
Questionnaires etc. The data collected by these sources must be scrutinized to arrive to a
conclusion. The conclusion is an understanding of how the system functions. This system is
called the existing system. Now, the existing system is subjected to close study and the problem
areas are identified. The designer now functions as a problem solver and tries to sort out the

3
difficulties that the enterprise faces. The solutions are given as a proposal. The proposal is then
weighed with the existing system analytically and the best one is selected. The proposal is
presented to the user for an endorsement by the user. The proposal is reviewed on user request
and suitable changes are made.

EXISTING SYSTEM

The usual process which includes paperwork including different types of deeds, property
related documents gets verified and checked again and again. Then proper visits to see the
property takes place. Also, the neighborhood of that property gets also checked so that the
person who wants that property gets his/her required services around it. And after this process
the buyer/seller rejects the offer then it may get troublesome for some of the people as all the
hard work gets wasted.

1. Heavy paper work is needed.

2. Presence of the broker is necessary as it arranges proper meeting between both the parties.

3. It is time taking as each step takes its own length of work.

4. Both parties have to agree or the whole work done goes to vain.

PROPOSED SYSTEM

1. It is a Web based application which is made by using Visual Studio, Robo 3T compass,
MongoDB, React.js and Node.js.

2. Anyone can easily list their properties online and if the interested party comes then easily
schedule the meeting.

3. It is time saver as whole process is done online so tedious work load is spared.

4. It is user friendly website so anyone which has basic computer knowledge can surf the
website.

5. Every property gets verified by the experts so there is no one can question about the property.

4
6. Details of the buyer/seller is visible only to those parties which are interested so the privacy
and security is maintained.

SDLC APPROACH

The software development life cycle (SDLC) is the process based standard practice to develop
any kind of software product. These processes are categories as phases in SDLC and related to
different activities. Different models are described in software engineering text books, but none
is fully satisfied all the need of a software companies. Some SDLC models are Water Fall
Model, Spiral Model, Prototype Model etc.

Our Project is based on Iterative Model:

The various phases of Iterative model are as follows:

1. Requirement gathering & analysis: In this phase, requirements are gathered from
customers and check by an analyst whether requirements will fulfil or not. Analyst checks that
need will achieve within budget or not. After all of this, the software team skips to the next
phase.

5
2. Design: In the design phase, team design the software by the different diagrams like Data
Flow diagram, activity diagram, class diagram, state transition diagram, etc.

3. Implementation: In the implementation, requirements are written in the coding language


and transformed into computer programs which are called Software.

4. Testing: After completing the coding phase, software testing starts using different test
methods. There are many test methods, but the most common are white box, black box, and
grey box test methods.

5. Deployment: After completing all the phases, software is deployed to its work environment.

6. Review: In this phase, after the product deployment, review phase is performed to check the
behavior and validity of the developed product. And if there are any error found then the
process starts again from the requirement gathering.

7. Maintenance: In the maintenance phase, after deployment of the software in the working
environment there may be some bugs, some errors or new updates are required. Maintenance
involves debugging and new addition options.

System Design:

The customer requirements are broken down into logical modules for the ease of
implementation. Hardware and software requirements for every module are identified and
designed accordingly. Also, the inter relation between the various logical modules is
established at this stage. Algorithms and diagrams defining the scope and objective of each
logical model are developed. In short, this phase lays a fundamental for actual programming
and implementation.

System Implementation:

This is the software process in which actual coding takes place. A software program is written
based upon the algorithm designed in the system design phase. A piece of code is written for
every module and checked for the output.

6
System Testing:

The programmatically implemented software module is tested for the correct output. Bugs,
errors are removed at this stage. In the process of software testing, a series of tests and test
cases are performed to check the module for bugs, faults and other errors. Erroneous codes are
rewritten and tested again until desired output is achieved.

System Deployment and Maintenance:

This is the final phase of the Iterative Model, in which the completed software product is
handed over to the client after alpha, beta testing. After the software has been deployed on the
client site, it is the duty of the software development team to undertake routine maintenance
activities by visiting the client site. If the customer suggests changes or enhancements the
software process has to be followed all over again right from the first phase i.e., requirement
analysis. This is the biggest shortcoming of the Iterative model.

7
CHAPTER 3
REQUIREMENT ANAYLSIS

INTRODUCTION

Requirements analysis in systems engineering and software engineering, encompasses those


tasks that go into determining the needs or conditions to meet for a new or altered product,
taking account of the possibly conflicting requirements of the various stakeholders, such as
beneficiaries or users. It is an early stage in the more general activity of requirements
engineering which encompasses all activities concerned with eliciting, analyzing,
documenting, validating and managing software or system requirements.

Requirements analysis is critical to the success of a systems or software project. The


Requirements should be documented, actionable, measurable, testable, traceable, related to
identified business needs or opportunities, and defined to a level of detail sufficient for system
design.

Requirements analysis involves frequent communication with system users to determine


specific feature expectations, resolution of conflict or ambiguity in requirements as demanded
by the various users or groups of users, avoidance of feature creep and documentation of all
aspects of the project development process from start to finish. Energy should be directed
towards ensuring that the final system or product conforms to client needs rather than
attempting to mould user expectations to fit the requirements.

Requirements analysis is a team effort that demands a combination of hardware, software and
human factors engineering expertise as well as skills in dealing with people.

SOFTWARE REQUIREMENTS SPECIFICATION

Some key points that need to be evaluated on the Requirements Specification document are:

• Clarity of the specification document

• Validity of the assumptions made

• Quality of the presentation

8
SNo. Requirement Essential Description Remarks
or of the
Desirable Requirement

RS1 The system should have a Essential To open login The logins are
multiple user login option page for multiple Assigned using
users sign up button

RS2 The system must have Essential This feature will This will make
sign in page to improve the the application
authenticate the user robustnessof the more secure
application

RS3 The system should Essential User can create It helps the user
providesign up page for account to create his
creating new user account

RS4 The system should Essential To let the user, It helps theuser
provideprofile page for update his profile to update profile
updating user information

RS5 The System should Essential User can add a It helps user to
provide asection to add a new property add a new
new property property

RS9 The System should Essential User can remove It helps user to
provide a delete button to his property remove his
delete a property property

RS11 The System should Essential User can sign out It helps users to
provide asign out button from the blog sign out from
to log out. website. the website.

RS12 The system should Essential All registered It helps userto


provide a page to see user can see see all account
account information of account information
registered user
information

9
MINIMUM SOFTWARE REQUIREMENTS
BUILD

OPERATING SYSTEM WINDOWS 7/8/10 (64-bit)

I.D.E VISUAL STUDIO CODE

DATABASE MONGO DB

RUN

WEB BROWSER GOOGLE CHROME

MINIMUM HARDWARE REQUIREMENTS

BUILD

PROCESSOR INTEL i5

RAM 4GB

HDD 2GB

RESOLUTION 1280 x 800

RUN
Any Web Browser.
REQUIREMENT CAPTURE PROCESS
To get the requirements down on paper, you can to do one or more of the following:

• Interview users

• Conduct workshops

10
• Send questionnaires

• Talk to support teams

• Look at unintended uses

• Study analogous systems

• Work in the target environment

• Conduct a brainstorming session

• Study improvements made by users

• Demonstrate prototypes to stakeholders

• Examine suggestions and problem reports

In this project we have used following techniques for gathering the requirements for our
project: REAL ESTATE KING.

Conduct a brainstorming session:

Brainstorming is a short group session where everyone is allowed to say whatever they feel is
important to the topic of discussion. After that, a facilitator leads the group in organizing and
prioritizing the results. The following basic rules for brainstorming ensure better results:

• Start out by clearly stating the objective of the brainstorming session.

• Generate as may ideas as possible.

• Let your imagination soar.

• Do not allow criticism or debate while you are gathering information.

• Once information is gathered, reshape and combine ideas. I have discussed our project with
our faculty members.

11
Interview users:

Face-to-face contact with users through individual interviewing is the primary source of
requirements and an important way you gather and validate their requirements. Remember that
it is not the only possible technique, and that you can conduct interviews many different ways.
Develop a repertoire of styles to fit different situations. Unless you use the system yourself,
you will need to make an effort to understand and experience the user's problem to describe it
clearly and correctly.

12
CHAPTER 4
TOOLS AND TECHNOLGIES USED

USER INTERFACE HTML, CSS, JAVASCRIPT

BACKEND AND DATABASE NODE.JS, MONGODB AND


EXPRESS.JS

I.D.E VISUAL STUDIO CODE

HOSTED SERVER VERCEL

CSS DESIGNING MATERIAL UI AND TAILWIND CSS

ABOUT WEB DEVELOPMENT

Web development refers to the creating, building, and maintaining of websites. It includes
aspects such as web design, web publishing, web programming, and database management. It
is the creation of an application that works over the internet i.e., websites.
The word Web Development is made up of two words, that is:

Web: It refers to websites, web pages or anything that works over the internet.

Development: It refers to building the application from scratch.

Web Development can be classified into two ways:

Frontend Development

Backend Development

Frontend Development

13
The part of a website that the user interacts directly is termed as front end. It is also referred to
as the ‘client side’ of the application.

Frontend Roadmap:

HTML: HTML stands for Hyper Text Markup Language. It is used to design the front end
portion of web pages using markup language. It acts as a skeleton for a website since it is used
to make the structure of a website.

CSS: Cascading Style Sheets fondly referred to as CSS is a simply designed language intended
to simplify the process of making web pages presentable. It is used to style our website.

JavaScript: JavaScript is a scripting language used to provide a dynamic behavior to our


website.

Bootstrap: Bootstrap is a free and open-source tool collection for creating responsive websites
and web applications. It is the most popular CSS framework for developing responsive, mobile-
first websites. Nowadays, the websites are perfect for all the browsers (IE, Firefox, and
Chrome) and for all sizes of screens (Desktop, Tablets, Phablets, and Phones).

14
Backend Development

Backend is the server side of a website. It is the part of the website that users cannot see and
interact. It is the portion of software that does not come in direct contact with the users. It is
used to store and arrange data.

Backend Roadmap:

PHP: PHP is a server-side scripting language designed specifically for web development.

Java: Java is one of the most popular and widely used programming language. It is highly
scalable.

Python: Python is a programming language that lets you work quickly and integrate systems
more efficiently.

Node.js: Node.js is an open source and cross-platform runtime environment for executing
JavaScript code outside a browser.

Back End Frameworks: The list of back-end frameworks is: Express, Django, Rails, Laravel,
Spring, etc.
15
React.js

ReactJS tutorial provides basic and advanced concepts of ReactJS. Currently, ReactJS is one
of the most popular JavaScript front-end libraries which has a strong foundation and a large
community.

ReactJS is a declarative, efficient, and flexible JavaScript library for building reusable UI
components. It is an open-source, component-based front-end library which is responsible only
for the view layer of the application. It was initially developed and maintained by Facebook
and later used in its products like WhatsApp & Instagram.

Our ReactJS tutorial includes all the topics which help to learn ReactJS. These are ReactJS
Introduction, ReactJS Features, ReactJS Installation, Pros and Cons of ReactJS, ReactJS JSX,
ReactJS Components, ReactJS State, ReactJS Props, ReactJS Forms, ReactJS Events, ReactJS
Animation and many more.

The main objective of ReactJS is to develop User Interfaces (UI) that improves the speed of
the apps. It uses virtual DOM (JavaScript object), which improves the performance of the app.
The JavaScript virtual DOM is faster than the regular DOM. We can use ReactJS on the client
and server-side as well as with other frameworks. It uses component and data patterns that
improve readability and helps to maintain larger apps.

Node.js

Node.js tutorial provides basic and advanced concepts of Node.js. Our Node.js tutorial is
designed for beginners and professionals both.

16
Node.js is a cross-platform environment and library for running JavaScript applications which
is used to create networking and server-side applications.

Our Node.js tutorial includes all topics of Node.js such as Node.js installation on windows and
Linux, REPL, package manager, callbacks, event loop, os, path, query string, cryptography,
debugger, URL, DNS, Net, UDP, process, child processes, buffers, streams, file systems,
global objects, web modules etc. There are also given Node.js interview questions to help you
better understand the Node.js technology.

Node.js is a cross-platform runtime environment and library for running JavaScript


applications outside the browser. It is used for creating server-side and networking web
applications. It is open source and free to use. It can be downloaded from this link
https://nodejs.org/en/

Many of the basic modules of Node.js are written in JavaScript. Node.js is mostly used to run
real-time server applications.

The definition given by its official documentation is as follows:

Node.js is a platform built on Chrome's JavaScript runtime for easily building fast and scalable
network applications. Node.js uses an event-driven, non-blocking I/O model that makes it
lightweight and efficient, perfect for data-intensive real-time applications that run across
distributed devices.?

Node.js also provides a rich library of various JavaScript modules to simplify the development
of web applications.

17
JAVASCRIPT

JavaScript is a lightweight, cross-platform, and interpreted compiled programming language


which is also known as the scripting language for webpages. It is well-known for the
development of web pages; many non-browser environments also use it. JavaScript can be used
for Client-side developments as well as Server-side developments. JavaScript is both
imperative and declarative type of language. JavaScript contains a standard library of objects,
like Array, Date, and Math, and a core set of language elements like operators, control
structures, and statements.

Client-side: It supplies objects to control a browser and its Document Object Model (DOM).
Like if client-side extensions allow an application to place elements on an HTML form and
respond to user events such as mouse clicks, form input, and page navigation. Useful libraries
for the client-side are AngularJS, ReactJS, VueJS and so many others.

Server-side: It supplies objects relevant to running JavaScript on a server. Like if the server-
side extensions allow an application to communicate with a database, and provide continuity
of information from one invocation to another of the application, or perform file manipulations
on a server. The useful framework which is the most famous these days is node.js.

Imperative language – In this type of language we are mostly concern about how it is to be
done. It simply controls the flow of computation. The procedural programming approach,
object, oriented approach comes under this like async await we are thinking what it is to be
done further after async call.

Declarative programming – In this type of language we are concern about how it is to be done,
basically here logical computation require. Here main goal is to describe the desired result
without direct dictation on how to get it like arrow function do.

JavaScript can be added to your HTML file in two ways:

18
Internal JS: We can add JavaScript directly to our HTML file by writing the code inside the
<script> tag. The <script> tag can either be placed inside the <head> or the <body> tag
according to the requirement.

External JS: We can write JavaScript code in other file having an extension.js and then link
this file inside the <head> tag of the HTML file in which we want to add this code.

Features of JavaScript: According to a recent survey conducted by Stack Overflow,


JavaScript is the most popular language on earth.

With advances in browser technology and JavaScript having moved into the server with
Node.js and other frameworks, JavaScript is capable of so much more. Here are a few things
that we can do with JavaScript:

JavaScript was created in the first place for DOM manipulation. Earlier websites were mostly
static, after JS was created dynamic Web sites were made.

Functions in JS are objects. They may have properties and methods just like another object.
They can be passed as arguments in other functions.

Can handle date and time.

Performs Form Validation although the forms are created using HTML.

No compiler is needed.

VISUAL STUDIO CODE

Visual Studio is an Integrated Development Environment (IDE) developed by Microsoft to


develop GUI (Graphical User Interface), console, Web applications, web apps, mobile apps,
cloud, and web services, etc. With the help of this IDE, you can create managed code as well
as native code. It uses the various platforms of Microsoft software development software like
Windows store, Microsoft Silverlight, and Windows API, etc. It is not a language-specific IDE
as you can use this to write code in C#, C++, VB (Visual Basic), Python, JavaScript, and many
more languages. It provides support for 36 different programming languages. It is available for
Windows as well as for macOS. Evolution of Visual Studio: The first version of VS(Visual
Studio) was released in 1997, named as Visual Studio 97 having version number 5.0. The latest

19
version of Visual Studio is 15.0 which was released on March 7, 2017. It is also termed as
Visual Studio 2017. The supported .Net Framework Versions in latest Visual Studio is 3.5 to
4.7. Java was supported in old versions of Visual Studio but in the latest version doesn’t provide
any support for Java language.

There are 3 editions of Microsoft Visual Studio as follows: 1. Community: It is a free version
which is announced in 2014. All other editions are paid. This contains the features similar to
Professional edition. Using this edition, any individual developer can develop their own free
or paid apps like .Net applications, Web applications and many more. In an enterprise
organization, this edition has some limitations. For example, if your organization have more
than 250 PCs and having annual revenue greater than $1 Million (US Dollars) then you are not
permitted to use this edition. In a non-enterprise organization, up to five users can use this
edition. Its main purpose is to provide the Ecosystem (Access to thousands of extensions) and
Languages (You can code in C#, VB, F#, C++, HTML, JavaScript, Python, etc.) support. 2.
Professional: It is the commercial edition of Visual Studio. It comes in Visual Studio 2010 and
later versions. It provides the support for XML and XSLT editing and includes the tool like
Server Explorer and integration with Microsoft SQL Server. Microsoft provides a free trial of
this edition and after the trial period, the user has to pay to continue using it. Its main purpose
is to provide Flexibility (Professional developer tools for building any application type),
Productivity (Powerful features such as CodeLens improve your team’s productivity),
Collaboration (Agile project planning tools, charts, etc.) and Subscriber benefits like Microsoft
software, plus Azure, Pluralsight, etc. 3. Enterprise: It is an integrated, end to end solution for
teams of any size with the demanding quality and scale needs. Microsoft provides a 90-days
free trial of this edition and after the trial period, the user has to pay to continue using it. The
main benefit of this edition is that it is highly scalable and deliver high-quality software.

Advantages of using Visual Studio IDE:

A full-featured programming platform for several operating systems, the web, and the cloud,
Visual Studio IDE is available. Users can easily browse the UI so they can write their code
quickly and precisely.

To help developers quickly identify potential errors in the code, Visual Studio offers a robust
debugging tool.
20
Developers can host their application on the server with confidence because they have
eliminated anything that could lead to performance issues.

No matter what programming language developers are using, users of Visual Studio can get
live coding support. For faster development, the Platform offers an autocomplete option. The
built-in intelligent system offers descriptions and tips for APIs.

Through Visual Studio IDE you can easily collab with your teammates in a same project. This
IDE helps the developers to share, push and pull their code with their teammates.

Every user of Visual Studio has the ability to customize it. They have the option to add features
based on their needs. For example, they can download add-ons and install extensions in their
IDE. Even programmers can submit their own extensions.

MONGODB

MongoDB is an open-source, document-oriented, and one of the most popular NoSQL


databases. NoSQL simply means a non-relational database i.e., there is no table-like relational
database structure instead there is a totally different mechanism for storing and retrieving data.
This format of storage is called BSON and is very much similar to JSON.

RDBMS vs MongoDB:

RDBMS has a typical schema design that shows number of tables and the relationship between
these tables whereas MongoDB is document-oriented. There is no concept of schema or
relationship.

Complex transactions are not supported in MongoDB because complex join operations are not
available.

MongoDB allows a highly flexible and scalable document structure. For example, one data
document of a collection in MongoDB can have two fields whereas the other document in the
same collection can have four.

MongoDB is faster as compared to RDBMS due to efficient indexing and storage techniques.

21
There are a few terms that are related in both databases. What’s called Table in RDBMS is
called a Collection in MongoDB. Similarly, a Table is called a Document and A Column is
called a Field. MongoDB provides a default ‘_id’ (if not provided explicitly) which is a 12-
byte hexadecimal number that assures the uniqueness of every document. It is similar to the
Primary key in RDBMS.

Features of MongoDB:

Document Oriented: MongoDB stores the main subject in the minimal number of documents
and not by breaking it up into multiple relational structures like RDBMS. For example, it stores
all the information of a computer in a single document called Computer and not in distinct
relational structures like CPU, RAM, Hard disk, etc.

Indexing: Without indexing, a database would have to scan every document of a collection to
select those that match the query which would be inefficient. So, for efficient searching
Indexing is a must and MongoDB uses it to process huge volumes of data in very less time.

Scalability: MongoDB scales horizontally using sharding (partitioning data across various
servers). Data is partitioned into data chunks using the shard key, and these data chunks are
evenly distributed across shards that reside across many physical servers. Also, new machines
can be added to a running database.

Replication and High Availability: MongoDB increases the data availability with multiple
copies of data on different servers. By providing redundancy, it protects the database from
hardware failures. If one server goes down, the data can be retrieved easily from other active
servers which also had the data stored on them.

Aggregation: Aggregation operations process data records and return the computed results. It
is similar to the GROUPBY clause in SQL. A few aggregation expressions are sum, avg, min,
max, etc.

Where do we use MongoDB?

MongoDB is preferred over RDBMS in the following scenarios:

Big Data: If you have huge amount of data to be stored in tables, think of MongoDB before
RDBMS databases. MongoDB has built-in solution for partitioning and sharding your
database.

22
Unstable Schema: Adding a new column in RDBMS is hard whereas MongoDB is schema-
less. Adding a new field does not affect old documents and will be very easy.

Distributed data Since multiple copies of data are stored across different servers, recovery of
data is instant and safe even if there is a hardware failure.

EXPRESS.JS

Express.js is a small framework that works on top of Node.js web server functionality to
simplify its APIs and add helpful new features. It makes it easier to organize your application’s
functionality with middleware and routing. It adds helpful utilities to Node.js HTTP objects
and facilitates the rendering of dynamic HTTP objects.

Why Express?

Develops Node.js web applications quickly and easily.

It’s simple to set up and personalize.

Allows you to define application routes using HTTP methods and URLs.

Includes a number of middleware modules that can be used to execute additional requests and
responses activities.

Simple to interface with a variety of template engines, including Jade, Vash, and EJS.

Allows you to specify a middleware for handling errors.

Express.js is a routing and Middleware framework for handling the different routing of the
webpage and it works between the request and response cycle. Middleware gets executed after
the server receives the request and before the controller actions send the response. Middleware
has the access to the request object, responses object, and next, it can process the request before
the server send a response. An Express-based application is a series of middleware function
calls.

Advantages of using middleware:

23
Middleware can process request objects multiple times before the server works for that request.

Middleware can be used to add logging and authentication functionality.

Middleware improves client-side rendering performance.

Middleware is used for setting some specific HTTP headers.

Middleware helps for Optimization and better performance.

VERCEL

Introduction: Vercel is a deployment tool used by frontend developers to instantly deploy and
host web applications without knowing complex configurations.

Features of Vercel:

Easy to use and has a lifetime free tier service which is beneficial for beginners who want to
deploy their side-project with minimal support.

Can create an account using GitHub, GitLab, Bitbucket, or with email.

Allows developers to use a custom domain that is HTTPS enabled.

Can be used to build unlimited websites and APIs.

Changes in data lead to an automatic push of the web page thereby reducing the constraint of
static generation.

High-Performance Edge Network leads to faster routing.

Each pull request has its preview URL which is useful while running tests or gathering
feedbacks.

Benefits of Vercel: Vercel is specially made for NextJs apps by the creators of NextJs because
of which it has many benefits and features including: -

SSR Support: In vercel you can server-side render any page without any problem.

Fast Response time: All the JavaScript, CSS, images, etc are served from the vercel Edge
Network which makes it really fast.

24
Easy Deployment: You can easily deploy your NextJs project in vercel within few minutes.

Free Access: You can host your non-commercial projects completely free on vercel.

MATERIAL UI

Material UI is the most powerful and efficient tool to build an application by adding Designs
and Animations and using it with technical and scientific innovation. It is basically a design
language that was developed by Google in 2014. It uses more Design and Animations, grid-
system and provides shadows and lightning effects.

It can be used with all the JavaScript frameworks like AngularJS, VueJS, and libraries like
ReactJS, to make the Application more amazing and responsive. With over 35,000 stars on the
GitHub, Material UI is one of the top User Interface libraries for React.

Features of Material UI: Material UI provides low-level utility functions called “style
functions” for building powerful design systems.

Access the theme values directly from the component props.

Encourage UI consistency.

Write responsive style effortlessly.

Work with any theme object.

Less than KB g zipped.

Fast enough to execute.

Material-UI is a user interface library that provides predefined and customizable React
components for faster and easy web development, these Material-UI components are based on
top of Material Design by Google. In this article let’s discuss the Button component in the
Material-UI library.

25
Buttons are one of the ways in which user communicates in the application. Material UI
provides a customizable <Button/> component that can be used for several purposes through
its props.

TAILWIND CSS

Tailwind CSS can be used to style websites in the fastest and easiest way.

Tailwind CSS is basically a utility-first CSS framework for rapidly building custom user
interfaces. It is a highly customizable, low-level CSS framework that gives you all of the
building blocks you need to build bespoke designs without any annoying opinionated styles
you have to fight to override.

The beauty of this thing called tailwind is it doesn’t impose design specifications or how your
site should look, you simply bring tiny components together to construct a user interface that
is unique. What Tailwind simply does is take a ‘raw’ CSS file, process this CSS file over a
configuration file, and produces an output.

Why Tailwind CSS?

Faster UI building process

It is a utility-first CSS framework which means we can use utility classes to build custom
designs without writing CSS as in the traditional approach.

Advantages of Tailwind CSS:

No more silly names for CSS classes and Id’s.

Minimum lines of Code in CSS file.

We can customize the designs to make the components.

Makes the website responsive.

Makes the changes in the desired manner.

CSS is global in nature and if make changes in the file the property is changed in all the HTML
files linked to it. But with the help of Tailwind CSS, we can use utility classes and make local
changes.

26
CHAPTER 5
SYSTEM DESIGN

INTRODUCTION

System design is the solution to the creation of a new system. This phase is composed of several
systems. This phase focuses on the detailed implementation of the feasible system. Its emphasis
on translating design specifications to performance specification. System design has two
phases of development logical and physical design. During logical design phase the analyst
describes inputs (sources), out puts (destinations), databases (data stores) and procedures (data
flows) all in a format that meats the uses requirements. The analyst also specifies the user needs
and at a level that virtually determines the information flow into and out of the system and the
data resources. Here the logical design is done through data flow diagrams and database design.
The physical design is followed by physical design or coding. Physical design produces the
working system by defining the design specifications, which tell the programmers exactly what
the candidate system must do. The programmers write the necessary programs that accept input
from the user, perform necessary processing on accepted data through call and produce the
required report on a hard copy or display it on the screen.

DATABASE DESIGN

How does it work?

Cloud Firestore is a cloud-hosted, NoSQL database that your iOS, Android, and web apps can
access directly via native SDKs. Cloud Firestore is also available in native Node.js, Java,
Python, Unity, C++ and Go SDKs, in addition to REST and RPC APIs.

Following Cloud Firestore's NoSQL data model, you store data in documents that contain fields
mapping to values. These documents are stored in collections, which are containers for your
documents that you can use to organize your data and build queries. Documents support many
different data types, from simple strings and numbers, to complex, nested objects. You can also
create subcollections within documents and build hierarchical data structures that scale as your

27
database grows. The Cloud Firestore data model supports whatever data structure works best
for your app.

Additionally, querying in Cloud Firestore is expressive, efficient, and flexible. Create shallow
queries to retrieve data at the document level without needing to retrieve the entire collection,
or any nested subcollections. Add sorting, filtering, and limits to your queries or cursors to
paginate your results. To keep data in your apps current, without retrieving your entire database
each time an update happens, add real-time listeners. Adding real-time listeners to your app
notifies you with a data snapshot whenever the data your client apps are listening to changes,
retrieving only the new changes.

Protect access to your data in Cloud Firestore with Firebase Authentication and Cloud Firestore
Security Rules for Android, iOS, and JavaScript, or Identity and Access Management (IAM)
for server-side languages.

CONTEXT LEVEL DFD

USER LOGIN

REAL ACCESS
STATE
KING

VIEW ALL
LISTED
PROPERTIES
MongoDB
DATABASE

28
DATA FLOW DIAGRAM FOR LOGIN

29
USE CASE DIAGRAM FOR ADMIN

30
CHAPTER 6
SCREENSHOTS OF THE PROJECT

31
32
33
34
35
36
37
38
39
40
CHAPTER 7
VALIDATION

Data given as an input to the system has to be validated so that correct information
is stored in the database.

The users may commit errors while filling the fields with data. Thus, data value
entered has to be checked for the correctness as soon as it is entered into the
system.

Checks & Controls:

System Security refers to various validations on data in form of checks and


controls to avoid the system from failing. It is always important to ensure that
only valid data is entered and only valid operations are performed on the system.
The various checks and controls allow system to work in extreme conditions. The
system employs two types of checks and controls.

Client-Side Validations

Various client-side validations are used to ensure on the client side that only valid
data is entered. Client-side validation saves server time and load to handle invalid
data. Some checks imposed are:

• A program, in which it is required to fill up date in the date fields, validates any
date entered so that meaningless dates are not entered.

• Checks ensure that numeric fields are filled with numeric data only.

• Maximum lengths of the fields of the forms are appropriately defined.

• Forms cannot be submitted without filling up the mandatory data so that manual
mistakes of submitting empty fields that are mandatory can be sorted out at the

41
client side to save the server time and load. Appropriate messages are displayed
to the user if any mandatory field is left empty.

Server-side Validations:

Some checks can’t be applied at the client side. Server-side checks are necessary
to save the system from failing and intimating the user that same invalid
operations have been performed or the performed operation is restricted. Some of
the server-side checks imposed are:

• User is intimated through appropriate messages about the successful operations


or exceptions occurring at server side.

• Access permissions to various types of users are controlled according to the


organizational structure. Only permitted users can log on to the system and can
have access according to their category. User name, Passwords and Permissions
are controlled on the server side. This way unauthorized users cannot intrude into
the system.

• Using server-side validation, constraints on several restricted operations are


imposed.

42
CHAPTER 8
TESTING

Introduction

Executing a program with the intent of finding errors is called testing. Testing is
vital to the success of any system. Testing is done at different stages within the
development phase. System testing makes a logical assumption that if all parts of
the system are correct, the goals will be achieved successfully. Inadequate testing
or no testing at all leads to errors that may come up after a long time when
correction would be extremely implementation. The testing of the system was
done on both artificial and live data. In order to test data test cases are developed.
Following are the various methods that are employed for testing.

Unit Testing

In unit testing the module is tested independently. It is done to test that the module
does satisfy the functional specification. This is done to check syntax and logical
errors in programs. At the time of preparation of technical specifications, unit test
data was also prepared. The coding for that program was considered after
verifying its output against this test data.

Following are the unit testing methods:

• In Conditional Testing, the logical conditions that are given in the module were
checked to see whether they satisfy the functionality of the module. This is done
by using the test data was prepared.

• In Loop Testing, different loops in the module like nested loops were tested
using the data. Attempts to execute the loops to their maximum range are done.

43
Integration Testing

In Integration testing whole system was checked when all the individual modules
were integrated together in order to test whether the system is performing as
according to the requirements specified. Interface errors if any were corrected.
Test data was prepared was fed into the system to check whether the system fails
to detects an error.

Functional Testing

This is done for each module/sub module of the system. Functional testing serves
as a means of validating whether the functionality of the system confers the
original user requirement i.e., does the module do what it was supposed to do?
Separate schedules were made for functional testing. It involves preparation of
test data, writing of test cases, testing for conformance to test cases and
preparation of bugs’ listing for non-conformities.

System Testing

System testing is done when the entire system has been fully integrated. The
purpose of the system testing is to test how the different modules interact with
each other and whether the entire system provides the functionality that was
expected. System testing consists of the following steps:

• Program Testing

• System Testing

• System Documentation

• User Acceptance Testing

44
Test-Plan (TP)

The test-plan is a list of test cases that need to be run on the system. Some of the test cases can
be run independently for some components and some of the test cases require the whole system
to be ready for their execution. It is better to test each component as and when it is ready before
integrating the components.

It is important to note that the test cases cover all the aspects of the system (i.e, all the
requirements stated in the RS document).

The
SNo. Test Case Description Expected requirement in Result
Title Outcome RS that is
being tested
1. Option to login Option to select It should RS1 PASSED
different users multiple logins openthe
login page
The sign in to the
website should be
Login should
Successful user tried with the
besuccessful
authentication login information
2. and the user RS2 PASSED
provided by the
should enter
user during
in to the
signup
website

Unsuccessful Login to the Login


User system with a should fail
Verification wrong password with an
due towrong or invalid error
3. RS2 PASSED
password or username message
invalid ‘Invalid
username username
or

45
password’

Unsuccessful Login to the Login should


4. User system with no failwith a RS2 PASSED
Verification input in the notification
due tono input username to fill out the
in email field
Unsuccessful Login to the Login should
User system with failwith a
5. RS2 PASSED
Verification no notification
due to input in the to fill out the
no input in password field
password
On clicking the
6. The system button user is It should RS4 PASSED
shouldprovide directed to user open user
user profile profile profile
information
After filling
On clicking the the details if

The system update button, a error

7. shouldprovide the details are occurred the RS4 PASSED


update profile update for the error appears

button user accordingly


otherwise
details are
updated

The system A sign up page Page for


8. should for creating new addinguser is RS3 PASSED
provide sign user shown

up

46
for creating
newuser
At first user
haveto fill all
fields with
proper data,if
any error like
The system entering text
shouldprovide datainstead
fields to insert On click of sign
of email or
9. the user up RS3 PASSED
entering
information for number
the registration instead of
of new user text or
entering no
inputis found
then it gives
proper error
message
otherwise
Insert data to
the database
and create
new user

The system A form for

should adding new


A field for adding
provide property
10 new properties RS5 PASSED
A field for should be

adding new shown

properties
At first user
haveto fill

47
the property
field with
proper data if
any errors
then it gives
The system
proper error
shouldprovide
message
11. property button On click of RS5 PASSED
otherwise
to add new Property button
add property
property in
to the
database
database and
show
message
‘Property
added’
The system It should
20. shouldprovide A button for delete the RS9 PASSED
delete button to deleting a property
delete a property from the
property database as
well as from
the UI
The system It should
should provide update the
A button for
a button to property
21. updating a RS10 PASSED
update a from the
property
property database as
well as from
the UI

48
CHAPTER 9
CONCLUSION

As a result of this Real Estate Management System, manual workload is reduced


and data retrieval and sharing becomes easy. This project also helps for the
digitalization of the records, and have access anytime from anywhere. As we
know due to the pandemic circumstance, all people needed to take a step into the
online world. The application is user-friendly and attractive to use. Admin and
the user can upload and view the properties the uploaded to website, and users
can conveniently access all listed properties in one position without any concern.
The best feature of this application is that users do not need to download the
whole material to their internal storage to open it in any other third-party
applications because it supports the PDF view inside the application. Real Estate
Management Application is designed and developed for paperless and time-
consuming efforts.
Learnings
• The project has been an excellent learning opportunity for us and has helped
us in understanding and developing a project using the SDLC model.
• Technical Knowledge is something one can always get sitting at home and
devouring books. But working on a deliverable live Project means a lot more
other things apart from the technical knowledge gained.
• It was a total new experience to see how a software industry function what are
the Processes involved right from the time of Project inception. What are the
standards adhered in terms of compliance, quality standards, coding standards,
testing etc.
• We also learned how important deadlines are, and that clients are like gods, we
just have to provide them what they want. The ultimate goal is to meet client’s
requirements.
• We learned to take responsibilities and to handle the work pressure.

49
CHAPTER 10
FUTURE SCOPE

The development of this project surely prompts many new areas of investigation.
This project has wide scope to implement it in any Country having vast amount
of data. This project covers all functionalities related to Real Estate System.
Hence it can be implemented any-where else after minute organization level
customization.
Reusability: Reusability is possible as and when we require in this application.
We can update it next version. Reusable software reduces design, coding and
testing cost by amortizing effort over several designs. Reducing the amount of
code also simplifies understanding, which increases the likelihood that the code
is correct. We follow up both types of reusability: Sharing of newly written code
within a project and reuse of previously written code on new projects.
Robustness: Its method is robust if it does not fail even if it receives improper
parameters. There are some facilities like Protect against errors, optimize after
the program runs, validate arguments and avoid predefined limits.
Understandability: A method is understandable if someone other than the creator
of the method can understand the code (as well as the creator after a time lapse).
We use the method with small and coherent helps to accomplish this.
Moreover, some parts of the project have remained uncompleted due to some
reasons. Some of them are:
•Anti-Virus Partnership
•Live video call
•Cloud Messaging (for easy communication)

50
CHAPTER 11
BIBLIOGRAPHY

➢ https://www.google.com
➢ https://www.youtube.com/
➢ https://stackoverflow.com/
➢ https://developer.android.com/
➢ https://firebase.google.com/docs/firestore
➢ https://github.com/
➢ https://www.geeksforgeeks.org/
➢ https://www.wikipedia.org/

51

You might also like