123 Merged
123 Merged
CONTROLLER
A Project Report Submitted
BACHELOR OF TECHNOLOGY
In
INFORMATION TECHNOLOGY
By
This is to certify that the Project titled “REAL STATE USING MOBILE CONTROL" has been
successfully completed by – Abhishek Dixit(2004220130002), Abhishek Mishra
(2004220130003), Krishna Kumar Yadav (2004220130013) under the guidance of Mr. Vivek
Singh for the partial fulfilment of the requirements for the Bachelor of Technology Degree in
Information Technology Branch at Bansal Institute of Engineering and Technology, Lucknow
affiliated to Dr APJ Abdul Kalam Technical University, during the academic year 2023-24.
We hereby acknowledge that the project work presented in this report is original and has not been
submitted elsewhere for any other degree or qualification.
Signature of Guide-
ii
ABSTRACT
_______________________________________________________________
The aim of this project was to build a real estate application using Django framework and
PostgreSQL. The programming environment was VS code using the Python programming language.
The real estate system provides functionality for buyers, allowing them to search for houses. It
provides functionality for the seller, allowing them to log into the system and add new listings or
delete existing ones. For this purpose, each user is provided a login account with login ID and
password access. This application makes use of Django framework, including controls, html
controls, custom controls, CSS, error handling. The programming tasks included building the
customer controls and deploying these on server.
This site is basically developed to provide property information to User and Realtor. Users can
search any kind of Real Estate with multiple options in sort or in detail and also shows interest in
desired property. Realtors post real estate properties with full required information, add any location,
modify property and view interested user who interested in his property. Admin can add any location
for real estate property, view details and delete user, realtor and property information (product). As
the application is user-friendly, it contains both simple search for any general user and also advance
search option for us
iii
ACKNOWLEDGEMENT
______________________________________________________________
We take this opportunity to express our thoughtful sense of gratitude and respect to all those who
helped us throughout the duration of my project. The attitude, bliss and euphoria that accompany
the successful completion of any task would not be completed without the expression of appreciation
of simple gratitude to the organization and people who made it possible.
We are highly indebted to our university for providing us with such an intellectual platform and
support to carry out our project work successfully. We wish to express our deep sense of gratitude
to Mr. Vivek Singh, Assistant Professor, BIET Lucknow for his able guidance and useful
suggestions, which helped us in completing the project work, in time.
I express my heartfelt thanks and gratitude to the Head of Department of the IT Branch, Mr.
Abhishek Kumar Saxena, for giving me an opportunity to undertake this project.
Words are inadequate in offering thanks to all my teachers for their constant guidance and support
throughout this project work.
Finally, yet importantly, we would like to express my heartfelt thanks to our beloved parents for
their blessings, out friends for their help and wishes for the successful completion of this project.
iv
TABLE OF CONTENTS
i. Front Page i
ii. Certificate ii
iii. Abstract iii
iv. Acknowledgement iv
v. Table of Contents v
1. Introduction 01
1.1. Introduction 01
1.2. Objectives 01
1.3. Scope of Project 02
1.4. Advantages 02
1.5. Methodology Used For Data Collection 03
1.5.1. Data Collected By Internet 03
1.5.2. Data Collection Through Interview 03
1.5.3. Data Collected Through Document Analysis 03
2. Literature Review 04
2.1. Literature Review 04
3. Requirements Analysis 08
3.1. Introduction 08
3.1.1. Software Requirement 08
3.1.2. Hardware Requirement 08
3.2. System Requirements 08
3.3. Software Requirements 10
v
3.3.1. Frontend (IOS) 10
3.3.2. Frontend (KOTLIN) 10
3.3.3. Backend(PHP) 12
3.3.4. Backend(Laravel Framework) 12
3.3.5 Hosting And Deployment 14
3.4. Hardware Requirements 15
vii
CHAPTER-1
INTRODUCTION
1.1 INTRODUCTION
Modern technology has been industrialized to the extent that even search for land, apartments is made
possible over the internet. The process of searching for a dream house or apartment can be done over
the internet. Customers looking to buy or rent a new home, apartment or any other property can search
over the internet.
Customers looking to buy or rent a new home, apartment or any other property can search over the
internet, while sitting at their home. Now customers will not have to go to the agents personally, they
can search for their desired home or apartment of a reasonable rate which suits their pocket.
Customers looking to buy or rent a new home, apartment or any other property can search
over the internet.
Customer can search for desired plot or house in a particular area.
They can specify the no of rooms, bathroom they need and then can make the search
They can also describe what all facilities they want near their house like schools, malls, garage,
shops etc.
They can search for apartment or plot which suits their budget they can also specify the
amount by entering the cost.
Now customers will not have to go to the agents personally, they can search for their desired
home or apartment at a reasonable rate which suits their pocket. And they can also have the
view of apartment online.
1.2 OBJECTIVES
The major objective of real estate application is the convenience it offers.
By sitting back at home, customers looking to buy a new home, apartment or any other
property can search the desired property by several clicks of mouse buttons.
Customers do not have to go to the agents personally, they can save their time by doing an
online search.
To make the application user friendly.
To reduce paperwork.
To integrate all information which customer needs in the application.
To save people time.
To allow user to enter the acres of land & desired amount for which he wishes to spend.
1
To allow the customers to have a pictorial view of the apartment he wishes to buy.
To overcome the limitations being faced during the manual system of handling the entire
records of the company manager and to manage the work schedule as well effectively and
efficiently.
To provide more accuracy.
To provide more security by implementation of various validations.
To provide easy updating of property listing that involves very little expertise or knowledge.
To provide quick and efficient listing of properties.
To eliminate eligible handwriting, paperwork and manual entry.
1.4 ADVANTAGES
Customer can do 24*7 searching.
More productive and efficient work.
High degree of Authenticity.
User friendly
Time efficient
Paper saving
2
1.5 METHODOLOGY USED FOR DATA COLLECTION
Data collection can be done through various sources like interviews, questionnaires, document
analysis or the Internet.
1. Primary Data: Interview and Internet
2. Secondary Data: Document Analysis
BTrealstate.com
99 acres.com
Magic bricks.com
Scribd.com
3
CHAPTER-2
LITERATURE REVIEW
4
The existing sites are:
1. www.99acres.com: The site can be navigated by anybody. No issue of Security is implemented.
2. www.zameen.com: It is the Pakistani real state application.
An expansive list of studies examines the risks in e-commerce transactions (e.g., Jung, Han and Suh
1999; Hsiung, Scheurich and Ferrante, 2001; and Chan, 2001). One focus is on how to develop
technological methods to deal with these risks. For example, Skevington (1998) outlined some of the
technologies that were developed to address security concerns and to apply them to facilitate trust in
electronic trading. Atif (2002) described a proposal for a trust model based on a distributed search
algorithm and a network of trusted intermediaries that can establish a trusted channel through which
terminal transacting parties deal virtually directly and risk-free with each other. However, the
traditional models of trust between vendors and buyers fall short of the requirements for an electronic
marketplace, where anonymous transactions cross territorial and legal boundaries, as well as
traditional value-chain structures. To overcome this problem, Manchala (2000) introduced a notion
of quantifiable trust to evaluate the transaction risk in such an environment. Another direction of the
literature focuses on the managerial perspective of the transaction risks of e-commerce. Using case
studies, Lee and Clark (1997) presented suggestions on the analysis, design and implementation of
electronic market systems by market-making firms. Brice (2001) discussed some of the risks and
considerations involved in the use of electronic signatures. Westland (2002) developed a model for
evaluating and managing transaction risk in e-commerce in the migration from broker mediated to
electronic markets.
Real estate agents and firms are essentially market intermediaries, connecting buyers and sellers and
facilitating the real estate transaction process. Traditionally, real estate sales can be divided into five
stages: property listing, buyer search, property evaluation, negotiation and execution/closing. With
the development and popularity of information technology, each stage of this process has been
affected profoundly.
Stage 1: Property listing. In the past, real estate agents listed houses and entered them into a Multiple
Listing Service (MLS) database. The MLS is today an online network of properties listed for sale and
supported by the NAR. In effect, the MLS created a cartel-like role in managing information and
virtually ensures that the agent will have a pivotal role in the real estate transaction. However, this
situation has since changed with the introduction of applications in the market that provide property
listings. A survey by Muhanna (2000) found that about 23% of real estate agents actually list their
properties on their own applications. In addition, Fletcher (1997) found that their owners were listing
many homes for sale on applications. For example, on Microsoft’s network system, Home Advisor
(www.homeadvisor.msn.com), and national selling services, such as Abele Owners Network, any
seller’s listing can be posted for a nominal fee (Guttery, Baen and Benjamin, 2000; and Bond, Seiler,
Seiler and Blake, 2000)
5
Stage 2: Buyer search. Although potential buyers can search for homes on their own through
browsing newspaper advertisements or calling owners directly, most prospective buyers generally
seek homes through agents that have access to MLS listings. Nevertheless, buyers can now perform
their own searches on the Internet easily. Many MLS listings can now be reached directly (Aalberts
and Townsend, 2002), such as the 11 | P a g e NAR’s application (realtor) with more than a million
listings. Established real estate players, such as Coldwell Banker (www.coldwellbanker.com) and
Prudential (www.realbid.com) also have their own listings. Moreover, there are also upstarts doing
the same, including the For-Sale-By-Owner (FSBO) listing and Microsoft’s Home advisor. Finally,
some local newspapers provide their own applications for real estate listings. For example, the
Classified Federation, a subsidiary of the Newspaper Association of America, created
www.realfind.com, which is a free service through which potential buyers may request a copy of the
weekend real estate section of newspapers in major markets and can link directly with the newspaper
classifieds via the Internet
Stage 3: Property evaluation. Traditionally, after buyers find a property of interest, an agent often
arranges for a walk-through showing or has access to a house through a lockbox. Now, it is possible
to conduct a ‘‘virtual’ walk-through online. Since electronic pictures can be downloaded into a
computer’s hard drive, electronic cameras allow the use of pictures to include landscaping, interior
views and neighborhood scenes. In addition, electronic versions of property photographs and
information can be recorded in VCR tapes and shipped overnight to prospective buyers around the
globe. Furthermore, applications can provide prospective buyers with the option to examine the
surrounding neighborhood and environment, including shops, schools, parks, entertainment,
transportation, weather conditions and even crime statistics. As a result, the number of properties that
need to be physically inspected by a buyer can be substantially reduced. In reality though, no current
real estate application can make most buyers confident enough to decide to buy without any actual
physical inspection.
Stage 4: Negotiation and agreement. Negotiating the purchase agreement successfully can be
considered as the most challenging task for a real estate agent. It involves advice regarding price,
offers and counteroffers, and contract contingencies. It also requires dealings with other real estate
professionals, such as lenders, appraisers, title companies and attorneys. Nevertheless, this stage has
also been changed significantly by information technology. Now a buyer can identify their own
appraisers, lenders, title companies and attorneys, and negotiate with these parties directly through
the Internet (Aalberts and Townsend, 2002). In addition to the use of email, software is also available
that can support multi-party meetings on the Internet, such as NetMeeting. Capabilities like those
offered by NetMeeting allow for virtual negotiation instead of relying on the physical presence of the
different parties.
6
Stage 5: Execution/closing. The customary role of the escrow agent or attorney in directing the
closing is also changing. The Electronic Signatures in Global and National Commerce Act or E-Sign
legislation passed on October 1, 2000, significantly removed impediments for business and
government transactions to be conducted electronically. It was predicted that E-signature would allow
real estate transactions, which are traditionally slowed down by endless paper trails, to take place
online (Brice, 2001). Although the dream of ‘‘paperless transactions’’ is not yet reality, there have
been a few notable ‘‘paperless transactions’’ involving residential real estate. Last year, for example,
Orlando, Florida-based Attorney’s Title Insurance Fund participated in two closings that met the strict
definition of this highly automated process (Southerland, 2002).
7
CHAPTER-3
REQUIREMENTS ANALYSIS
3.1INTRODUCTION
System requirements are specifications that outline the minimum and recommended hardware
and software components needed for a computer program, game, or operating system to run
efficiently. They typically include details about the processor, memory (RAM), storage space,
graphics capabilities, and operating system version. Additionally, system requirements may
encompass other factors such as network connectivity, peripherals, or specific drivers. Properly
understanding and meeting system requirements is crucial to ensure compatibility, prevent
software crashes, and achieve optimal performance. They guide users and IT professionals in
preparing their environments for installation and ensure a smooth user experience.
8
Design Specs
Use BTRE logo (Frontend and admin)
Branding colors – blue(#10284e) green(#30caa0)
Mobile Friendly
Social media icons & contact info
Doesn’t have to be too fancy but must be clean
Functionality Specs
Manage listings, realtors, contact inquiries and application users via admin
Role based users (staff and non-staff)
Display listings in app with pagination
Ability to set listings to unpublished
Search listings by keyword, city, state, bedrooms and price (Homepage & search page)
List realtors on about page with “seller of the month” (Control via admin)
Listing page should have fields listed below
9
Possible Future Functionality
Google maps on listing page
Buyer testimonials
IOS is the mobile operating system developed by Apple Inc. for its mobile devices, including the
iPhone, iPad, and iPod Touch. It is a proprietary system designed to be secure, user-friendly, and
integrated with Apple's hardware and services. iOS provides a touch-based interface that supports
multitouch gestures, navigation through apps, and various customization options.
Overall, iOS is designed to provide a smooth and integrated user experience, emphasizing security,
privacy, and a rich ecosystem of apps and services. It is one of the most widely used mobile operating
systems globally, competing primarily with Google's Android OS.
Conciseness: Kotlin aims to reduce boilerplate code and provide more expressive syntax,
allowing developers to write cleaner and more concise code compared to Java. Features
like type inference, data classes, and smart casts contribute to this conciseness.
Null Safety: One of Kotlin's key features is its approach to null safety. Kotlin enforces
strict null checks to minimize NullPointerExceptions, a common source of bugs in Java.
Developers must explicitly denote nullable types, encouraging safer coding practices.
Coroutines: Kotlin has built-in support for coroutines, allowing developers to write
asynchronous and concurrent code in a more straightforward and readable manner.
Coroutines simplify handling asynchronous tasks, such as network calls or database
operations.
Tooling and Ecosystem: Kotlin has strong tooling support, with integration in popular
IDEs like IntelliJ IDEA and Android Studio. Its ecosystem has grown with a rich set of
libraries, frameworks, and community resources.
Multi-platform Development: Kotlin allows developers to write code that can be shared
across different platforms, including Android, iOS, and the web. Kotlin Multiplatform
helps reduce duplication and improve code reusability.
Safety and Testing: Kotlin supports features like inline functions, type-safe builders, and
safe type casts, which enhance code safety. It also integrates well with testing frameworks
like JUnit, facilitating robust testing practices.
11
3.3.3 Backend (PHP)
PHP is commonly used for backend development in mobile applications, providing server-side
functionality, database interactions, and RESTful APIs that mobile apps can connect to for dynamic
content and data processing. Here's how PHP is typically used in mobile app backends:
Laravel is a popular PHP framework widely used for backend development in web applications. It is
also highly effective for building backends for mobile apps due to its robust features and support for
RESTful APIs, authentication, and scalability. Here's a breakdown of how Laravel is used for backend
development in mobile applications:
12
2. Authentication and Authorization:
Laravel provides a built-in authentication system that supports user registration, login,
password reset, and email verification. It also integrates with Laravel Passport and Laravel
Sanctum, enabling token-based authentication for mobile apps. This allows for secure user
authentication and session management, which is crucial for mobile applications that require
user accounts.
4. Database Management:
Laravel uses Eloquent, an Object-Relational Mapping (ORM) tool, to interact with databases.
This simplifies database operations, allowing developers to focus on application logic rather
than complex SQL queries. For mobile app backends, Eloquent can manage user data,
application content, and other backend information efficiently.
7. Security Features:
Laravel includes various security features to help protect backend services from common
threats. It offers protection against SQL injection, cross-site request forgery (CSRF), and
cross-site scripting (XSS). It also supports encryption for sensitive data and integrates with
security packages for enhanced security measures.
13
8. Caching and Performance Optimization:
Laravel supports caching to improve backend performance. Mobile app backends can use
caching to reduce database load and speed up API responses. Laravel also supports integration
with cache systems like Redis and Memcached for scalable caching solutions.
9. Laravel Ecosystem and Third-party Integrations:
Laravel has a vibrant ecosystem with many third-party packages that can extend functionality.
This includes packages for payment gateways, social media integrations, and other services
commonly used in mobile app backends. Laravel also supports integration with services like
Firebase for push notifications and real-time updates.
Hosting and deployment are crucial aspects of building a mobile app backend. They ensure that the
backend services are accessible, secure, and scalable. When developing a backend for a mobile app,
considerations for hosting and deployment are essential to ensure smooth operation, high availability,
and easy scaling. Here's an overview of hosting and deployment in the context of mobile app backends.
There are various hosting platforms available for deploying mobile app backends. The choice depends
on factors like scalability, budget, technology stack, and geographic location. Common hosting
platforms include:
Cloud Providers: AWS, Google Cloud Platform (GCP), and Microsoft Azure offer
scalable infrastructure with various services to support backend hosting, like virtual
machines, serverless computing, databases, and storage.
Platform-as-a-Service (PaaS): Providers like Heroku and AWS Elastic Beanstalk offer
PaaS solutions that abstract much of the infrastructure management, making it easier to
deploy and scale.
Dedicated Hosting: Traditional hosting services offer dedicated servers or virtual private
servers (VPS) for more control over the hosting environment.
Deployment strategies vary depending on the hosting platform and project requirements. Some
common deployment approaches for mobile app backends include:
14
Containerization: Using Docker containers for deployment offers consistency across
environments, easy scaling, and simplified dependency management. Container orchestration
tools like Kubernetes or Docker Swarm enable automated scaling and management.
Serverless Deployment: Serverless platforms, such as AWS Lambda and Google Cloud
Functions, allow deployment without managing servers. This approach is suitable for
lightweight backends or when scalability is a key concern.
To develop a mobile app for real estate and home rent, you'll need hardware that meets the minimum
requirements for mobile app development. Here's a general list of hardware you might need:
2. RAM: 256 MB
3.Hard disk 40 GB
4.Android Device.
15
CHAPTER – 4
DESIGN AND IMPLEMENTATION
4.1INTRODUCTION
Design and implementation of a mobile application involve a series of steps that transform a concept
into a fully functioning application that runs on mobile devices like smartphones or tablets. This
process encompasses everything from conceptualization and design to coding, testing, and
deployment.
Here’s an overview of the key elements of designing and implementing a mobile app:
16
4.2 SYSTEM DESIGN
The system objective outlined during the system analysis serve as the basis from which the
work of system design is initiated. Much of the activities elaborate at this stage is of technical
nature requiring a certain amount of degree of experience in designing systems, sound
knowledge of computer related technology and thorough understanding of computers related
technology. However a system cannot be designed in isolation without the active involvement
of the user. The user has a vigorous role to play at this stage too. As we know that data collected
during the system requirement analysis will be utilized systematically at this stage. Depending
on the plan of system analysis, the level of detailed study will differ and the system design stage
will also differ in the amount of investigations that still need to be done. This study is generally
an activity during the system design as the designer need to study the minute details in all
aspects of the system. Designing a new system is a creative process which calls for logical as
well as lateral thinking. The logical approach involves systematic moves towards the end
product keeping in mind the know-hows of the personnel and the equipment at each decision
making step. Lateral thought implies including of ideas beyond the usual functions and
equipment’s.
Of course to deliver the requirements as specified in the SRS. In general, the following design
objectives should be kept in mind:
• Practicality: The system must be stable and can be operated by people with average IQ.
• Efficiency: This involves accuracy, timeliness and comprehensiveness of the system
output.
• Cost: It is desirable to aim for a system with a minimum cost subject to the condition that
it must satisfy all the requirements.
• Flexibility: The system should be modifiable depending on the changing needs of the
user.
17
• Security: This is very important aspect of the design and should cover areas of
hardware reliability, fall back procedures, physical security of data and provision for
detection of fraud and abuse.
Several development activities are carried out during structured design. They are data base design,
implementation planning, system test preparation, and system interface specification and user
documentation.
• Database Design: This activity deals with the design of the physical database. A key is to
determine how the access paths are to be implemented.
• System and Program Test Preparation: Each aspect of the system has a separate test
requirement. System testing is done after all programming and testing is completed. The
test cases cover every aspect of the proposed system, actual operations user interface and
so on.
A flow chart is defined as a pictorial representation describing a process being studied or even used
to plan stages of a project. Flow charts tend to provide people with a common language or reference
point when dealing with a project or process. Four particular types of flow charts have proven useful
when dealing with a process analysis: top-down flow chart, detailed flow chart, workflow diagrams,
and a deployment chart. Each of the different types of flow charts tends to provide a different aspect
to a process or a task. Flow charts provide an excellent form of documentation for a process, and quite
often are useful when examining how various steps in a process work together. When dealing with a
process flow chart, two separate stages of the process should be considered: the finished product and
the making of the product. In order to analyze the finished product or how to operate the process,
flow charts tend to use simple and easily recognizable symbols. The basic flow chart symbols below
are used when analyzing how to operate a process.
18
Fig 4.1: System Flow Charts
19
USER SEARCH FOR PROPERTY
20
4.4 Data Flow Diagrams
A graphical tool used to describe and analyze the moment of data through a system manual or
automated including the process, stores of data, and delays in the system. Data Flow Diagrams are
the central tool and the basis from which other components are developed. The transformation of data
from input to output, through processes, may be described logically and independently of the physical
components associated with the system. The DFD is also known as a data flow graph or a bubble
chart. A graphical tool used to describe and analyze the moment of data through a system manual or
automated including the process, stores of data, and delays in the system.
Data Flow Diagrams are the central tool and the basis from which other components are developed.
The transformation of data from input to output, through processes, may be described logically and
independently of the physical components associated with the system. The DFD is also known as a
data flow graph or a bubble chart.
21
4.5 Entity Relationship Diagram
22
4.6 RESULT
Login Page :
23
Home :
24
Registration
25
CHAPTER – 5
5.1 INTRODUCTION
5.1.1 Research Analysis
Research analysis in the context of mobile apps involves collecting, processing, and analyzing data
to understand user behavior, app performance, and market trends. This process is crucial for
improving the app's functionality, user experience, and business outcomes. Here's an introduction to
the key concepts and steps involved in research analysis using a mobile app.
1. Establish Research Goals
Define the Objective: Clearly state what you aim to learn through your research analysis. This
could be understanding user engagement, evaluating app performance, or identifying market
trends.
Set Key Performance Indicators (KPIs): Determine the metrics that will help measure success.
Examples include user retention, daily active users (DAUs), churn rate, conversion rates, or
average session duration.
2. Data Collection
Implement Analytics Tools: Integrate analytics tools like Google Analytics, Mixpanel, Firebase, or
Amplitude into your app to collect data on user behavior and interactions.
Identify Data Sources: Besides app analytics, consider other sources such as user feedback, app
store reviews, social media, and in-app surveys.
Collect Relevant Data: Focus on gathering data that aligns with your research goals and KPIs. This
may include user demographics, usage patterns, event tracking, in-app purchases, and
engagement metrics.
3. Data Processing and Analysis
Clean and Organize Data: Ensure the collected data is accurate and consistent. This might involve
removing duplicates, addressing missing values, and organizing data into a useful structure.
Analyze User Behavior: Look at how users interact with your app. Identify which features are most
popular, where users drop off, and what actions lead to conversion.
26
Perform Statistical Analysis: Apply statistical methods to identify trends, correlations, and
outliers in the data. This can help you understand broader patterns and draw meaningful
conclusions.
Use Data Visualization: Tools like Tableau, Power BI, or Excel can help visualize data,
making it easier to understand complex trends and communicate findings.
2. Collect Data
Data Sources: Identify where you'll collect data from. In a mobile app, this typically involves
analytics tools like Google Analytics, Mixpanel, or Firebase, which track user interactions
and app performance.
User Feedback: Gather qualitative data from user feedback, app store reviews, or in-app
surveys to understand user sentiment and identify common issues.
27
3. Market Reports: Reports from real estate research firms like CBRE, JLL, and Knight Frank
provide insights into market trends, rental yields, and property prices in various regions.
5. Mobile App Data: Some mobile apps provide APIs or datasets that offer insights into user
behavior, app usage patterns, and user demographics. Examples include data on app
downloads, user ratings, and user reviews.
6. Survey Data: Conducting surveys among renters, homeowners, or real estate professionals
can provide valuable insights into preferences, satisfaction levels, and market perceptions.
Here's a hypothetical example of a table with data related to real estate and home rent in Delhi,
India:
28
5.3 SYSTEM TESTING
In this stages the test group of the development team, using the cases and the test data already prepared
will test the programs. Only after all the functions are tested singularly, an integrated testing will be
performed to see that inter-function dependability is satisfied. Separate test cases and test data will
be worked out for the integrated testing.
Any system, to be successful, must be thoroughly tested, and well managed test plan should be
prepared before actual testing is being performed. “Modules” have been developed and need to be
tested in a manner that can reduce occurring of defects as low as possible. Following are the activities
we planned to test the system.
This system is indeed an evolutionary system so every unit of the system is continuously
under testing phase.
One test activity “Basis Path Testing” that will try to cover all paths in the system. This
activity identifies all paths that provide different functionality of the system, and also
other paths to reach at that functionality.
Other testing activity is “Control Structure Testing”, which will test each and every
condition with positive and negative data combination.
This testing activity will also perform “Data Flow Testing” in which it will be tested
how the data re following the system. And will also check whether the data entered from
one procedure, is reflected whenever it requires or not.
All conditions will be tested with “Boundary Value Analysis” where different input will
be given to test whether the system is functioning with boundary values or not.
Along with the boundary value analysis, the system is also tested with “Range Value
Tested” where editable values will be tested with ranges of values.
The system is being tested in “Unit Testing” manner where at the completion of one unit
that is tested thoroughly with above mentioned testing activities. .
29
5.4 Test Levels
5.4.1 Content Testing:
Errors in Project content can be as trivial as minor typographical errors such as incorrect
information, improper organization or validation of intellectual property laws.
Content Testing attempts to uncover this and many other problems before the user encounters
them.
To uncover syntactic errors in text-based documents, graphical representation and other media.
To find errors in organization or structure of content that is presented to the end user
The Interface design model is reviewed to ensure that generic quality criteria
established for all user interfaces have been achieved and that application specific
interface design issues have been properly addressed.
(2) uncover errors in the way the interface implements the semantics of navigation,
Application functionality, or content display. To accomplish this strategy, a number of
objectives must be achieved:
Interface futures are tested to ensure that design rules, aesthetics and related
visual content are available for the user without error.
Individual interface mechanisms are tested in a manner that is analogous to unit
testing.
30
5.4.3 Usablity Testing:-
Define a set of usability testing categories and identify a goal for each.
Design test that will enable each goal to be evaluated.
Select participants who will conduct the test.
Instrument participant’s interaction with system while testing is conducted.
Page Develop a mechanism for assessing the usability of the system.
Project must operate within environment that differs from one another. Different computers, display
devices, OS, browser and network connection speed can have significant on system operation. The
Project team derives a series of compatibility, validation tests, derived from existing interface tests,
navigation tests, performance tests and security tests.
Analyze and check system representation such as the requirement document, design diagrams and
the program source code. They may be applied at all stages of the process.
31
CHAPTER – 6
CURRENT AND FUTURE SCOPE
6.1 INTRODUCTION
Real estate and home rent are fundamental aspects of the housing market, influencing millions of
people worldwide. With the proliferation of smartphones and the increasing use of mobile apps, the
real estate industry has experienced significant changes. Mobile apps have revolutionized how people
search for properties, connect with real estate agents, and manage their rental properties. This research
analysis explores the current state and future scope of real estate and home rent using mobile apps.
The real estate and home rental sectors have undergone a substantial transformation with the advent
and widespread adoption of mobile applications. These applications have revolutionized the way
individuals search for properties, interact with real estate agents, and manage their rental properties.
This research analysis delves into the current landscape and future prospects of real estate and home
rental utilizing mobile apps.
.
Communication With Real Estate Professionals: Mobile apps facilitate communication
between users and real estate professionals such as agents, brokers, and property managers.
Users can easily contact professionals, schedule property viewings, and receive updates on
available properties.
Rental Management: For landlords and property managers, mobile apps offer tools for
managing rental properties. These apps allow users to track rental payments, communicate
with tenants, and manage maintenance requests.
Market Trends and Insights: Some mobile apps provide users with market trends and
insights, such as average rental prices, vacancy rates, and property appreciation trends. This
information can help users make informed decisions about buying, selling, or renting
properties.
32
User Reviews and Ratings: Mobile apps often feature user reviews and ratings for
properties and real estate professionals. This feedback can help users evaluate properties
and make decisions based on the experiences of others.
Financial Tools: Many mobile apps offer financial tools such as mortgage calculators,
affordability calculators, and rent vs. buy calculators. These tools can help users estimate
costs and determine the financial feasibility of purchasing or renting a property.
Augmented Reality (AR) and Virtual Reality (VR): AR and VR technologies are
enhancing the property viewing experience, enabling users to take virtual tours of properties
remotely. These technologies are poised to become more prevalent, providing an immersive
and interactive approach to property exploration.
Internet of Things (IoT): IoT devices can be integrated into rental properties to provide
real-time information on energy consumption, security status, and maintenance
requirements. Tenants can remotely control various aspects of their homes through a mobile
app.
33
CHAPTER – 7
CONCLUSION
7.1 CONCLUSION
This Real Estate App is a typical application using Django framework, PostgreSQL database
in Python programming language.
The buyer performs a search for the property listings by putting either Zip code/City/State in
the search textbox. The business logic tier communicates with the database tier requesting
the results of the query sent by it.
The results obtained by the database are displayed on the data grid, by refreshing the grid
rather than refreshing the entire page. Efficiency of the application is improved by the using
such a high level framework for development.
The performance of this application is evaluated by rigorously testing it against various test
scenarios. Some ways in which this system could be enhanced with additional functionalities
are discussed in the section.
34
CHAPTER - 8
CODING
API’s INTERFACE
import com.google.gson.JsonObject
import com.rlogixx.realstate.Login.LoginRequest
import com.rlogixx.realstate.Login.LoginResponse
import com.rlogixx.realstate.NewProperty.PropertyData
import com.rlogixx.realstate.Property.FlatDataItem
import retrofit2.Call
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.POST
interface ApiInterface {
@GET("propertydata")
fun getPropertyData(): Call<List<FlatDataItem>>
//fun getData() : Call<List<FlatDataItem>>
@POST("login")
fun login(@Body request: LoginRequest): Call<LoginResponse>
@POST("property/add")
fun addProperty(@Body propertyData: PropertyData): Call<JsonObject> // Use JsonObject or a
custom response model
}
Detailed Activity
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
35
import android.widget.ImageView
import com.rlogixx.realstate.R
class DetailedActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_detailed)
val threesixy = findViewById<ImageView>(R.id.img_threesixty)
threesixy.setOnClickListener {
startActivity(Intent(this,ThreeSixtyView::class.java))
}
}
}
36
webView.settings.domStorageEnabled = true
webView.settings.javaScriptEnabled = true
}
}
Login Request
package com.rlogixx.realstate.Login
import android.widget.EditText
data class LoginRequest(
val email: String,
val password: String
)
Login Response
package com.rlogixx.realstate.Login
data class LoginResponse(
val id: Int,
val email: String,
val access_token: String,
val status: Int
)
Main Activity
package com.rlogixx.realstate.Login
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.Button
import android.widget.EditText
37
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import com.rlogixx.realstate.API.ApiInterface
import com.rlogixx.realstate.Home
import com.rlogixx.realstate.R
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import retrofit2.create
import kotlin.math.log
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val login = findViewById<Button>(R.id.button)
val username = findViewById<EditText>(R.id.edUserName)
val userPassword = findViewById<EditText>(R.id.edPassWord)
login.setOnClickListener {
if (android.util.Patterns.EMAIL_ADDRESS.matcher(username.text.toString())
.matches() && userPassword.text.toString().isNotBlank()
){
getData()
// startActivity(Intent(this, Home::class.java))
} else {
38
//failed
Toast.makeText(this, "Enter a valid Email", Toast.LENGTH_SHORT).show()
}
}
}
fun getData(){
val retrofit = Retrofit.Builder()
.baseUrl("https://rashitalk.com/api/")
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(ApiInterface::class.java)
val username = findViewById<EditText>(R.id.edUserName)
val userPassword = findViewById<EditText>(R.id.edPassWord)
val email = username.text.toString().trim()
val password = userPassword.text.toString().trim()
Log.e("email","email is $email and $password")
// val loginRequest = LoginRequest(email, password)
retrofit.login(LoginRequest(email, password)).enqueue(object : Callback<LoginResponse> {
override fun onResponse(call: Call<LoginResponse>, response:
Response<LoginResponse>) {
Log.e("response", response.toString())
if (response.isSuccessful) {
val loginResponse = response.body()
// Check if loginResponse is not null
if (loginResponse != null) {
val userId = loginResponse.id
val userEmail = loginResponse.email
39
val accessToken = loginResponse.access_token
val status = loginResponse.status
// val builder = AlertDialog.Builder(this@MainActivity)
// builder.setTitle("Success")
// builder.setMessage("Login Successful")
// builder.setPositiveButton("OK") { dialog, which ->
// // handle OK button click
// }
// val dialog = builder.create()
// dialog.show()
val intent:Intent = Intent(this@MainActivity,Home::class.java)
startActivity(intent)
// startActivity(Intent(this, Home::class.java))
// Toast.makeText(this@MainActivity,userId,Toast.LENGTH_LONG).show()
// Handle the response data as needed
}
} else {
// Handle error (e.g., non-200 status code)
val errorBody = response.errorBody()?.string()
if (errorBody != null) {
Log.e("loginerror",errorBody)
}
val builder = AlertDialog.Builder(this@MainActivity)
builder.setTitle("Error")
builder.setMessage("Login Failed. Please check Your credential")
builder.setPositiveButton("OK") { dialog, which ->
// handle OK button click
40
}
val dialog = builder.create()
dialog.show()
// Toast.makeText(this@MainActivity,errorBody,Toast.LENGTH_LONG).show()
// Log or handle the errorBody
}
}
override fun onFailure(call: Call<LoginResponse>, t: Throwable) {
// Handle failure (e.g., network error)
}
})
}
}
Property Data
package com.rlogixx.realstate.NewProperty
data class PropertyData(
val propertyname: String,
val contact: String,
val propertylocation: String,
val landmark: String,
val longitude: String,
val latitude: String,
val pincode: Int,
val basicneed: String,
val imagestring: String
)
41
Apartment Data
package com.rlogixx.realstate.Property
data class AdapterItem (val image:Int,val detail:String)
package com.rlogixx.realstate.Property
class FlatData : ArrayList<FlatDataItem>()
package com.rlogixx.realstate.Property
data class FlatDataItem(
// val assign: String,
val basicneed: String,
// val buildarea: Int,
// val category: String,
val contact: String,
// val fieldagent: String,
// val fieldstatus: String,
val files: String
// val id: Int,
val imagestring: String,
val landmark: String,
val latitude: Double,
val longitude: Double,
val pincode: Int,
// val propertyagent: String,
// val propertyarea: Int,
val propertylocation: String,
val propertyname: String,
// val propertytype: String,
val section: String,
42
// val specialcategory: String,
// val youtubeurl: String
)
package com.rlogixx.realstate.Property
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.ProgressBar
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.rlogixx.realstate.R
class PropertyAdapter(private val context: Context, private val arrList:
List<FlatDataItem>?):RecyclerView.Adapter<PropertyAdapter.FoodViewHolder>() {
var onItemClick: ((FlatDataItem) -> Unit)? = null
class FoodViewHolder(itemview:View):RecyclerView.ViewHolder(itemview){
val imageView:ImageView=itemview.findViewById(R.id.image_vi)
val textview:TextView=itemview.findViewById(R.id.text_vi)
// init {
// itemview.setOnClickListener {
// listener.onItemClick(adapterPosition)
// }
// }
// itemview.setOnClickListener {
// val position = adapterPosition
// if(position != RecyclerView.NO_POSITION){
43
//
// }
// }
//
// val progress :ProgressBar = itemview.findViewById(R.id.progressBar2)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): FoodViewHolder {
val view=LayoutInflater.from(parent.context).inflate(R.layout.item,parent,false)
return FoodViewHolder(view)
}
override fun onBindViewHolder(holder: FoodViewHolder, position: Int) {
// val arrPosition = arrList?.get(position)
// var arrposition = arrList?.get(position)
Glide.with(context).load(arrList!!.get(position).files).into(holder.imageView)
holder.textview.text = arrList[position].landmark
// holder.progress.visibility = View.VISIBLE
// holder.itemView.setOnClickListener {
//// if (arrPosition != null) {
//// onItemClickListener?.invoke(arrPosition)
//// }
// onItemClickListener!!.invoke(arrPosition!!)
//
// }
holder.itemView.setOnClickListener {
onItemClick?.invoke(arrList[position])
}
/* val food=foodList[position]
44
holder.imageView.setImageResource(food.image)
holder.textview.text=food.detail
// holder.textview.text=food.des
holder.itemView.setOnClickListener {
onItemClickListener?.invoke(food)
}
*/
}
override fun getItemCount(): Int {
return arrList!!.size
}
}
Home
package com.rlogixx.realstate
import android.content.Intent
import com.rlogixx.realstate.API.ApiInterface
import android.os.Bundle
import android.util.Log
import android.widget.Button
import android.widget.ProgressBar
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.denzcoskun.imageslider.ImageSlider
import com.denzcoskun.imageslider.constants.ScaleTypes
import com.denzcoskun.imageslider.models.SlideModel
45
import com.rlogixx.realstate.Detail.DetailedActivity
import com.rlogixx.realstate.NewProperty.NewProperty
import com.rlogixx.realstate.Property.AdapterItem
import com.rlogixx.realstate.Property.FlatDataItem
import com.rlogixx.realstate.Property.PropertyAdapter
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
class Home : AppCompatActivity() {
var baseUrl = "https://rashitalk.com/api/"
lateinit var courseRV: RecyclerView
lateinit var courseRVAdapter: PropertyAdapter
lateinit var courseList: ArrayList<AdapterItem>
lateinit var courseRV2: RecyclerView
lateinit var courseRV3: RecyclerView
lateinit var courseRVAdapter2: PropertyAdapter
lateinit var courseList2: ArrayList<AdapterItem>
val imageList = ArrayList<SlideModel>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_home)
val plus:Button = findViewById(R.id.btn_plus)
plus.setOnClickListener {
startActivity(Intent(this,NewProperty::class.java))
}
46
// val progress : ProgressBar =findViewById(R.id.progressBar2)
//RECYCLERVIEW2 ADAPTER
courseRV = findViewById(R.id.recyclerView2)
getAllData()
// courseList = ArrayList()
//
val layoutManager =
LinearLayoutManager(this@Home,LinearLayoutManager.HORIZONTAL,true)
// val layoutManager = GridLayoutManager(this, 2)
courseRV.layoutManager = layoutManager
//
//
// courseRVAdapter = PropertyAdapter(courseList)
//
courseRV.adapter = courseRVAdapter
courseList.add(AdapterItem(R.drawable.img,"Android Development"))
courseList.add(AdapterItem( R.drawable.img,"C++ Development"))
courseList.add(AdapterItem( R.drawable.img,"Java Development"))
courseList.add(AdapterItem( R.drawable.img,"Python Development"))
courseList.add(AdapterItem( R.drawable.img,"JavaScript Development",))
courseRVAdapter.notifyDataSetChanged()
RECYCLERVIEW3 ADAPTER
val layoutManager2 =
LinearLayoutManager(this@Home,LinearLayoutManager.HORIZONTAL,true)
courseRV2 = findViewById(R.id.recyclerView3)
courseRV2.layoutManager = layoutManager2
val layoutManager3 =
LinearLayoutManager(this@Home,LinearLayoutManager.HORIZONTAL,true)
47
courseRV3 = findViewById(R.id.recyclerView4)
courseRV3.layoutManager = layoutManager3
courseList2 = ArrayList()
val layoutManager2 = GridLayoutManager(this, 2)
courseRV2.layoutManager = layoutManager2
courseRVAdapter2 = PropertyAdapter(courseList2)
courseRV2.adapter = courseRVAdapter2
courseList2.add(AdapterItem(R.drawable.img,"Android Development"))
courseList2.add(AdapterItem( R.drawable.img,"C++ Development"))
courseList2.add(AdapterItem( R.drawable.img,"Java Development"))
courseList2.add(AdapterItem( R.drawable.img,"Python Development"))
courseList2.add(AdapterItem( R.drawable.img,"JavaScript Development",))
courseRVAdapter2.notifyDataSetChanged()
}
private fun getAllData(){
var retrofit = Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(ApiInterface::class.java)
var retroData = retrofit.getPropertyData()
retroData.enqueue(object: Callback<List<FlatDataItem>>{
override fun onResponse(
call: Call<List<FlatDataItem>>,
response: Response<List<FlatDataItem>>
){
var data = response.body()
48
if (data != null){
val bannerItems = data.filter { it.section == "banner" }
val oneBhk = data.filter { it.section == "1bhk" }
val twoBhk = data.filter { it.section == "2bhk" }
val twoBhkFiltered = twoBhk.filter { !it.files.endsWith(".jpg") }
Log.i("twobHKfiltered",twoBhkFiltered.toString())
val threeBhk = data.filter { it.section == "3bhk" }
if (bannerItems.isNotEmpty()) {
val imageSlider: ImageSlider = findViewById<ImageSlider>(R.id.image_slider)
val slideModels = bannerItems.map { SlideModel(it.files) }
imageSlider.setImageList(slideModels,ScaleTypes.FIT)
} else {
Log.e("Banner", "No items with the 'banner' section found.")
}
if (oneBhk.isNotEmpty()){
Log.d("data",data.toString())
courseRVAdapter = PropertyAdapter(baseContext,oneBhk)
courseRV.adapter = courseRVAdapter
courseRVAdapter.onItemClick = {
startActivity(Intent(this@Home,DetailedActivity::class.java))
}
}else {
Log.e("onebhk","No Images Found")
}
if (twoBhk.isNotEmpty()){
Log.d("data",data.toString())
49
val twoBhkFiltered = twoBhk.filter { it.files?.startsWith("https") == true }
Log.i("twobhkfilter",twoBhkFiltered.toString())
courseRVAdapter = PropertyAdapter(baseContext,twoBhkFiltered)
courseRV2.adapter = courseRVAdapter
}else {
Log.e("twobhk","No Images Found")
}
if (threeBhk.isNotEmpty()){
Log.d("data",data.toString())
val threeBhkFiltered = threeBhk.filter { it.files?.startsWith("https") == true }
courseRVAdapter = PropertyAdapter(baseContext,threeBhkFiltered)
courseRV3.adapter = courseRVAdapter
courseRVAdapter.onItemClickListener?.let {
val intent = Intent(this@Home,DetailedActivity::class.java)
startActivity(intent)
}
}else {
Log.e("twobhk","No Images Found")
}
}
Log.d("data",data.toString())
courseRVAdapter = PropertyAdapter(baseContext,data)
courseRV.adapter = courseRVAdapter
50
TODO("Not yet implemented")
}
})
}
}
51
CHAPTER - 9
REFERENCES
5. Scribd.com
6. Udemy.com
52
c3862a52-06a4-4837-a78c-842aa2b60645.PDF
ORIGINALITY REPORT
13 %
SIMILARITY INDEX
11%
INTERNET SOURCES
2%
PUBLICATIONS
6%
STUDENT PAPERS
PRIMARY SOURCES
1
pdfcoffee.com
Internet Source 4%
2
github.com
Internet Source 1%
3
sbaeweb.fullerton.edu
Internet Source 1%
4
fastercapital.com
Internet Source 1%
5
Submitted to University of Wales Institute,
Cardiff
1%
Student Paper
6
Submitted to KDU College Sdn Bhd
Student Paper <1 %
7
dev.to
Internet Source <1 %
8
Submitted to The British College
Student Paper <1 %
9
franciscogbesl.blogpostie.com
Internet Source <1 %
<1 %
10
Submitted to Queen's University of Belfast
Student Paper
11
www.123articleonline.com
Internet Source <1 %
12
Submitted to Midlands State University
Student Paper <1 %
13
vocal.media
Internet Source <1 %
14
Submitted to University of West London
Student Paper <1 %
15
rtd-advisor.en.softonic.com
Internet Source <1 %
16
www.devteam.space
Internet Source <1 %
17
Submitted to University of Bristol
Student Paper <1 %
18
blog.alta.org
Internet Source <1 %
19
Submitted to Griffth University
Student Paper <1 %
20
Submitted to Kensington College of Business
Student Paper <1 %
21
Lawrence Chin, Jiafeng Liu. "Risk
Management in Real Estate Electronic
<1 %
Transactions", Journal of Real Estate
Literature, 2020
Publication
22
Submitted to Southern New Hampshire
University - Continuing Education
<1 %
Student Paper
23
chudovo.com
Internet Source <1 %
24
ads.timesgroup.com
Internet Source <1 %
25
Submitted to CTI Education Group
Student Paper <1 %
26
fr.jobs.sanofi.com
Internet Source <1 %
27
www.researchgate.net
Internet Source <1 %
28
cloudnativejourney.wordpress.com
Internet Source <1 %
29
olivepreneur.com
Internet Source <1 %