Professional Documents
Culture Documents
Minor Project Report File
Minor Project Report File
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
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.
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.
_________________ ___________________
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.
Date:
Place: New Delhi Signature of Guide: Mr. Gaurav
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
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.
1
CHAPTER–1
INTRODUCTION
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.
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.
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
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.
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.
2. Presence of the broker is necessary as it arranges proper meeting between both the parties.
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.
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.
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.
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 is a team effort that demands a combination of hardware, software and
human factors engineering expertise as well as skills in dealing with people.
Some key points that need to be evaluated on the Requirements Specification document are:
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.
9
MINIMUM SOFTWARE REQUIREMENTS
BUILD
DATABASE MONGO DB
RUN
BUILD
PROCESSOR INTEL i5
RAM 4GB
HDD 2GB
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
In this project we have used following techniques for gathering the requirements for our
project: REAL ESTATE KING.
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:
• 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
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.
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.
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.
Many of the basic modules of Node.js are written in JavaScript. Node.js is mostly used to run
real-time server applications.
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
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.
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.
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.
Performs Form Validation although the forms are created using HTML.
No compiler is needed.
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.
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
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.
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?
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.
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.
23
Middleware can process request objects multiple times before the server works for that request.
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.
Changes in data lead to an automatic push of the web page thereby reducing the constraint of
static generation.
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.
Encourage UI consistency.
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.
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.
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
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.
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.
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.
• 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:
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.
• 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
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
45
password’
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
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
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