SlideShare a Scribd company logo
1 of 52
Download to read offline
ii
ABSTRACT
Tenant screening is a cloud based mobile application that helps the property owners to
keep record of their properties and the tenants renting the property. It is an android
application where the property owner can easily create their account and add the details
of their properties and tenants renting the property. Those property details include the
property name, property number, the type and its location and the tenant details include
their name, email, mobile no. number, rent amount, Move in date and all the
information present in their citizenship card.
The application has been developed using android studio as IDE, java as main
programming language, xml as defining layout, android built in layout editor to design
layout and backend part using the firebase.
Keywords: tenant, android, firebase
iii
TABLE OF CONTENTS
ACKNOWLEDGEMENT.................................................................................................................i
ABSTRACT................................................................................................................................... ii
List of figures............................................................................................................................. vi
List of Tables ............................................................................................................................ vii
List of Abbreviations ............................................................................................................... viii
Chapter 1: Introduction .............................................................................................................1
1.1. Background .....................................................................................................................1
1.2. Problem Statement.........................................................................................................1
1.3. Objectives .......................................................................................................................2
1.4. Scope...............................................................................................................................2
1.5. Limitation........................................................................................................................3
Chapter 2: Requirement Analysis and Feasibility Analysis ........................................................4
2.1. Requirement Analysis .....................................................................................................4
2.1.1. Functional Requirements.........................................................................................4
2.1.2. Non-functional Requirements .................................................................................6
2.2. Feasibility Analysis ..........................................................................................................7
2.2.1. Technical ..................................................................................................................7
2.2.2. Operational ..............................................................................................................8
2.2.3. Economic..................................................................................................................8
2.2.4. Schedule...................................................................................................................8
Chapter 3: System Design..........................................................................................................9
3.1. Module..........................................................................................................................10
3.1.1. Module 1:...............................................................................................................10
3.1.2. Module 2:...............................................................................................................10
iv
3.1.3. Module 3:...............................................................................................................10
3.2. Database design............................................................................................................10
3.2.1. ER Diagram.............................................................................................................11
3.2.2 Database Schema....................................................................................................12
3.2.3 Data Format (JSON).................................................................................................13
3.3 User Interface Design.....................................................................................................15
3.3.1 User Interface Representation................................................................................16
3.4. Process Modelling.........................................................................................................17
3.4.1 Flowchart ................................................................................................................17
3.4.2 DFD..........................................................................................................................19
Chapter 4: Implementation .....................................................................................................23
4.1. Software development life cycle model .......................................................................23
4.1.1. Requirement and analysis......................................................................................24
4.1.2. Design.....................................................................................................................24
4.1.3. Coding/Implementation.........................................................................................24
4.1.4. Testing....................................................................................................................25
4.1.5. Maintenance and Documentation.........................................................................25
4.2. Tools..............................................................................................................................25
4.2.1 Draw.io....................................................................................................................25
4.2.2 Android studio 2.3.3 (IDE).......................................................................................25
4.2.3. Android SDK 26.0.1 ................................................................................................26
4.2.3 Android Virtual Device (AVD)..................................................................................26
4.3. Technology....................................................................................................................26
4.3.1. Java.........................................................................................................................26
4.3.2 XML .........................................................................................................................27
4.3.4 Firebase...................................................................................................................27
Chapter 5: Testing....................................................................................................................29
v
5.1. Unit Testing...................................................................................................................29
5.1.1 Test Case .................................................................................................................29
5.2. Integration Testing........................................................................................................35
5.3. System Testing..............................................................................................................36
Chapter 6: Conclusion..............................................................................................................37
6.1. Conclusion.....................................................................................................................37
6.2. Future scope .................................................................................................................37
REFERENCES.............................................................................................................................38
APPENDICES.............................................................................................................................39
Appendix A...........................................................................................................................39
Screen shot of the application.........................................................................................39
Appendix B...........................................................................................................................43
AndroidManifest.xml file .................................................................................................43
Firebase API .....................................................................................................................44
Email authentication using firebase ................................................................................45
vi
List of figures
Figure 1: Use case diagram before login .......................................................................5
Figure 2: Use case diagram after login .........................................................................6
Figure 3: Work Schedule ...............................................................................................8
Figure 4: System structure .............................................................................................9
Figure 5: System Architecture .......................................................................................9
Figure 6: ER diagram...................................................................................................11
Figure 7: Database Schema..........................................................................................12
Figure 8: JSON tree structure ......................................................................................13
Figure 9: JSON tree structure of user ..........................................................................14
Figure 10: JSON tree structure of property..................................................................14
Figure 11: JSON tree structure of tenant .....................................................................15
Figure 12: View and View group hierarchy ................................................................16
Figure 13: Flowchart....................................................................................................18
Figure 14: DFD context diagram .................................................................................19
Figure 15: Level 0 DFD...............................................................................................20
Figure 16: Level 1 DFD – (3.0) ...................................................................................21
Figure 17: Level 1 DFD – (4.0) ...................................................................................21
Figure 18: Level 1 DFD – (6.0) ...................................................................................22
Figure 19: Waterfall model..........................................................................................23
vii
List of Tables
Table 1: Test case for Sign up......................................................................................29
Table 2: Test case for Sign in ......................................................................................31
Table 3: Test case for adding property ........................................................................32
Table 4: Test case for adding tenant ............................................................................33
viii
List of Abbreviations
API Application Interface
AVD Android Virtual Device
DFD Data Flow Diagram
DOB Date of Birth
ER Entity Diagram
ID Identity
IDE Integrated Development Environment
JDK Java Development Kit
JSON Javascript Object Notation
SDLC Software Development Life Cycle
SDK Software Development Kit
SQL Stuctured Query Language
UI User Interface
XML Extensible Markup Language
1
Chapter 1: Introduction
1.1. Background
Tenant screening is a cloud based mobile application that helps the property owners to
keep record of their properties and the tenants renting the property. It is an android
application where the property owner can easily create their account and add the details
of their properties and tenants renting the property. Those property details include the
property name, property number, address and the income details and the tenant details
include their name, email, mobile no. number, rent amount, Move in date and all the
information present in their citizenship card.
Tenant screening fulfills the need of mobile and digital record keeping system of the
properties and the tenants renting the property. Since the application runs on android
smartphones, it is accessible from anywhere around the world and the property owners
can add, update and delete the information from anywhere. Internet connection is
required in order to use this application and it supports the android version 4.3 and
above it. The interface of this application is straightforward and roughly takes 5 seconds
to get started. Adding the properties and tenant details on the application is easy, just
click on the add property/tenant button and enter the details. Similarly viewing the
details and updating it is easy. Here registration is must for all the property owners
having this application in order to add and keep the record of their properties and the
tenants. After registration, the property owners can use his/her registered email account
and password to login in to the system.
1.2. Problem Statement
The old fashioned way of keeping records on paper and file is troublesome and time
consuming. There is a risk of files being damaged or destroyed with no back-up.
Besides this, the file must be carried everywhere to access the details inside of it which
is not possible and updating/modifying the details is troublesome. In addition to this,
most of the property owners does not care about keeping the records of their properties
2
and tenants renting the property since paper record keeping things is troublesome, time
consuming and not effective for them.
Now a days, all record keeping things are moving in to the digital, mobile and cloud
world. The old fashioned way of keeping the records on paper is slowly decreasing and
people are moving into the digital cloud based services of storing and managing the
records. The tenant screening android application fulfills the need of digital and mobile
record keeping system. So, for this tenant screening has been developed in order to store
and manage records of the properties and tenants on the internet which reduces the risk
of lost data and provides access from any location.
1.3. Objectives
The objectives of tenant screening android application are as follows:
 To migrate the paper based record keeping system into android device based
record keeping system.
 To store and manage records of the properties and tenants on the cloud.
 To provide access to properties and tenants information from any location
through this application.
1.4. Scope
The tenant screening is an android mobile application suitable for all the property
owners. Specially, it is designed to facilitate the property owners to store and manage
the properties and tenants record on the internet. The property owners having the
android smartphones can easily install and use this app. This application is very easy
and simple to understand. So, the property owners definitely want to have this
application in their smartphone installed. This application would create a database
which could acts as a backup of all the data of the house owner and the property.
3
1.5. Limitation
Some of the limitation of this application are listed below:
 Must require android version 4.3 and above version.
 Internet connection required.
 Property owner must know English language.
4
Chapter 2: Requirement Analysis and Feasibility Analysis
2.1. Requirement Analysis
Requirement analysis is the process of precisely identifying, defining, and documenting
the various requirements that are related to a particular business objective.
Requirements gathering helps in clearly understanding the needs of the customer,
defining the scope of the project, and assessing the timescales and resources required
to complete it. There are two types of requirement which are as follows:
2.1.1. Functional Requirements
In order to make the application functional, we require the following:
a) Download mobile application
A user should be able to download the mobile application either through google play
store or similar service on the phone. The application should be free to download.
b) User Registration
Given that a user has downloaded the mobile application, then the user should be able
to register through this mobile application. The user must provide username, email,
mobile number, sex, citizenship no and password.
c) User login
Given that a user has registered, then the user should be able to log in the mobile
application through his/her email and password. The login information will be stored
on the phone and in the future the user should be logged in automatically.
d) Reset Password
Given that the user has registered, then the use should be able to retrieve his/her
password by email.
e) Home activity
Given that the user is logged in to the mobile application, then the first page that is
shown should be the home activity. The user get references to all other activities like
5
adding the properties, adding the tenants, accessing the property and tenants details
through this activity.
f) Add property and tenant
The user should be able to add any numbers and type of properties and tenants renting
that properties.
g) Property details and tenants
The user should be able to view the details of added properties and tenants.
h) Edit the property and tenant details
The user should be able to edit the details of the properties and tenants.
i) Owner profile
The user should be able to view their own profile, modify their details and change email
and password.
j) Logout
The user should be able to logout of the system.
Figure 1: Use case diagram before login
6
Figure 2: Use case diagram after login
The above use case diagram also show the functional requirement of the application. A
use case diagram is a graphic depiction of the interactions among the elements of a
system. It is used in system analysis to identify, clarify, and organize system
requirements.
2.1.2. Non-functional Requirements
The non-functional requirements of this mobile application are as follows:
a) Performance
The performance requirement provide a details specification of the user interaction with
the application and measurements placed on the application performance.
7
For the response time, it should not be more than 5 seconds if the user have a proper
internet connection and for the fault tolerance, if the system loses internet connection
or the systems gets some strange input, the user should be informed.
b) Maintainability
The application should be easy to extend. The code should be written in a way that it
favors implementation of new functions. In addition to this, test environment should be
built for the application to allow testing of the different functions.
c) Look and feel
The user interface should be light and easy to use. The bright color and multiple color
theme should be discarded. The use should be informed correctly if he/she is doing
anything wrong,
d) Security
There should be security of the communication between the user and system. Only
authenticated users are allowed to view their respective databases. The security of
creating account for the user must be maintained. No two users with same email and
citizenship number should be created.
2.2. Feasibility Analysis
Feasibility study is a test of system proposed according to its work ability, impact on
the organization, ability to meet user needs, and effective use of resources. The
feasibility study of this application had been carried out which are as follows:
2.2.1. Technical
This android mobile application is technically feasible. The software and hardware
requirement for the development of this application are not many and already available
as free as open source. The work for the project is done with the current equipment and
existing software technology. This application is supported by all android application
having version 4.3.
8
2.2.2. Operational
Operational feasibility is the measure of how well a proposed system solves the
problems, and takes advantage of the opportunities identified during scope definition
and how it satisfies the requirements identified in the requirements analysis phase of
system development. This application is operationally feasible because this application
solves the problem faced by the property owners that are mentioned as problem
statement. Through this application property owners can store and manage the records
of their property and tenants on the cloud.
2.2.3. Economic
Economic feasibility is the analysis of a project's costs and revenues in an effort to
determine whether or not it is logical and possible to complete. This application is
economically feasible because this application is made using open source software and
the time spend in the development of this application is 3 months.
2.2.4. Schedule
The schedule for the development of the project are show in the figure below:
Figure 3: Work Schedule
9
Chapter 3: System Design
System design is the process of defining the architecture, components, modules,
interfaces and data for a system to satisfy specified requirements. Design of the system
brings down the knowledge of requirements and analysis to design the software
product. Generally, this chapter deals with the module, database design, user interface
design and the program design. For the designing of the application, various diagrams
like use case diagram, schema diagram, ER diagram, DFD etc. have been used.
Figure 4: System structure
The above figure shows the general structure of application connection with the google
based cloud service “firebase” in the presence of internet connection.
Figure 5: System Architecture
10
3.1. Module
A module is a software component or part of a program that contains one or more
routines. One or more independently developed modules make up a program. The
application is divided into three modules:
3.1.1. Module 1:
The first module in the application is the login. In the login process, the user can input
his email and password if he/she have already got an account, else the user should sign
up by putting his name, email, sex, phone number, citizenship number, date of birth and
address. Thus the user can have access to add properties and tenants, view their info
etc. Furthermore, user can reset their password by sending reset messages to their email
account.
3.1.2. Module 2:
The second module in the application is the accessibility of the main features of the
application after login. The features in this module include adding, viewing and editing
property and tenant information in their account database.
3.1.3. Module 3:
The third module in the application is viewing and updating the user details after login.
In addition to this, the user can change his primary email account and password if he/she
wants to login back into the system.
3.2. Database design
Database design is the process of producing a detailed data model of database. This
data model contains all the needed logical and physical design choices and physical
storage parameters needed to generate a design in a data definition language, which can
then be used to create a database. For the database design of the application, ER
diagram, schema diagram, and the format of data on the firebase has been shown which
are as follows:
11
3.2.1. ER Diagram
An entity relationship model is a graphical representation of entities and their
relationships to each other, typically used in computing in regard to the organization
of data within databases or information systems. An entity is a piece of data-
an object or concept about which data is stored and a relationship is how the data is
shared between entities.
Figure 6: ER diagram
The above ER diagram shows the relationship between the Property owner, property
and the tenants renting the property. Entities have been represented by the rectangle,
attributes of an entity have been represented by the oval and the relationship between
the entities have been represented by the diamond shape. The lines with arrow head
represents that there is only one instance of an entity involved in the relationship and
the arrowless lines represents that there is one or many instance of an entity. The
underline word inside oval shape represents the application and the double oval shape
attribute represents the multivalued attribute.
12
3.2.2 Database Schema
A database schema is the skeleton structure that represents the logical view of the entire
database and defines how the data is organized and how the relations among them are
associated. It formulates all the constraints that are to be applied on the data and defines
its entities and the relationship among them. It contains a descriptive detail of the
database, which can be depicted by means of schema diagrams. The database schema
of the application are as follows:
Figure 7: Database Schema
In above schema diagram, there are three database table property owner, property and
tenants which has their own primary key and attributes. The connecting lines shows the
relationship between the tables and the foreign key is used to link two tables together
13
3.2.3 Data Format (JSON)
Firebase Database stores data as JSON objects and synchronized in real time to every
connected client. Firebase real time database is NoSQL database which means that data
is not stored as table format like the relational databases uses. Unlike a SQL database,
there are no tables or records. When you add data to the JSON tree, it becomes a node
in the existing JSON structure with an associated key. Data is stored as a key-value
store. Key-value store implement a simple data model that pairs a unique key with an
associated value.
Figure 8: JSON tree structure
14
Figure 9: JSON tree structure of user
Figure 10: JSON tree structure of property
15
Figure 11: JSON tree structure of tenant
3.3 User Interface Design
User interface design is the process of designing user interfaces for computing devices
and hardware so that they're easy for people to use. It's an interdisciplinary field that
involves graphic designers, artists, programmers, psychologists and even
anthropologists.
The application user interface is defined by XML and built using a hierarchy of layouts
(View Group Objects) and widgets (View Objects). Layouts are invisible containers
that control how its child views are positioned on the screen. Widgets are UI
components such as buttons and text boxes. Layout is built using android studio layout
editor.
16
Figure 12: View and View group hierarchy
3.3.1 User Interface Representation
In order to make user interface in android application many view groups and child
views are used. The view groups and child views that will be used in the application
are as follows:
a) Relative layout
Relative Layout is a view group that displays child views in relative positions. The
position of each view can be specified as relative to sibling elements (such as to the
left-of or below another view) or in positions relative to the parent view group area
(such as aligned to the bottom, left or center).
b) Linear layout
Linear Layout is a view group that aligns all children in a single direction, vertically or
horizontally.
c) List View
List View is a view group that displays a list of scrollable items. The list items are
automatically inserted to the list using an Adapter that pulls content from a source such
as an array or database query and converts each item result into a view that's placed into
the list.
17
d) Scroll View
A view group that allows the view hierarchy placed within it to be scrolled. Scroll view
may have only one direct child placed within it.
e) Image View
Image view is a view in which displays image resources.
f) Text View
Text View is a user interface element (view) that displays text to the user.
g) Edit Text
Edit text is a user interface element (view) for entering and modifying text.
h) Spinner
Spinners is a view which provide a quick way to select one value from a set. In the
default state, a spinner shows its currently selected value. Touching the spinner displays
a dropdown menu with all other available values, from which the user can select a new
one.
i) Buttons
A user interface element (view) the user can tap or click to perform an action.
3.4. Process Modelling
Process modelling is used to describe how things must/should/could be done in contrast
to the process itself which is really what happens. A process model is roughly an
anticipation of what the process will look like. The process modelling of the application
is done through Flowchart and DFD diagram.
3.4.1 Flowchart
A flowchart is a type of diagram that represents the workflow or process, showing the
steps as boxes of various kinds, and their order by connecting them with arrows.
18
Figure 13: Flowchart
19
The above Flowcharts has used simple geometric symbols and arrows to define
relationships. The beginning or end of a program is represented by an oval. A process
is represented by a rectangle, a decision is represented by a diamond and an I/O process
is represented by a parallelogram.
3.4.2 DFD
A data flow diagram (DFD) is a graphical representation of the “flow” of data through
an information system, modelling its process aspects. A DFD is often used as a
preliminary step to create an overview of the system without going into great detail,
which can later be elaborated.
Figure 14: DFD context diagram
The above DFD is the Context Diagam of the application. The diagram has shown the
relationship between the application and the external entity “property owner. The circle
represents the process and the rectangle represents the external entity.”
20
Figure 15: Level 0 DFD
The above figure is Level-0 DFD of the application. The main process is divided into
the sign up, sign in, account, manage property, property, manage tenant and tenant
processes.
21
Figure 16: Level 1 DFD – (3.0)
The above figure is the level 1 DFD of process 3.0. The process 3.0 is further divided
into view account, change email/password and edit account process.
Figure 17: Level 1 DFD – (4.0)
The above figure is the level 1 DFD of process 4.0. The process 4.0 is further divided
into add property, update property and delete property process.
22
Figure 18: Level 1 DFD – (6.0)
The above figure is the level 1 DFD of process 6.0. The process 6.0 is further divided
into add tenant, update tenant and delete tenant process.
23
Chapter 4: Implementation
The implementation phase of the software development refers to the final process of
moving the solution from development status to production status. In this phase, Project
developers begin building and coding the software. This phase is followed by the
software development life cycle model used, tools used and the description of major
classes/methods.
4.1. Software development life cycle model
Software development life cycle is a process followed for a software project, within a
software organization. It consists of a detailed plan describing how to develop,
maintain, replace and alter or enhance specific software. The life cycle defines a
methodology for improving the quality of software and the overall development
process. The model of SDLC used in this project is the waterfall model. The waterfall
model is comprised of series of very definite phases each one intended to be started
sequentially only after the last has been completed, with one or more tangible
deliverables produced at the end of each phase of the waterfall model of SDLC.
Essentially, is starts with the heavy, documented, requirement-planning phase that
outlines all the requirements for the project, followed by sequential phase of design,
coding, test-casing, optional documentation, verification, validation and finally
deployment/release.
Figure 19: Waterfall model
24
4.1.1. Requirement and analysis
Before developing the system, it is crucial for requirement collection and analysis. This
phase was used to determine the requirements such as: who are target group for the
system? How will they use the system? These were the type of questions that were
answered during the requirements gathering phase. After requirement gathering was
completed, these requirements were analyzed to determine whether or not these
requirements can be measured, tested and most of all, incorporated to the proposed
system. Once, requirements analysis was completed, the designing of the system was
initiated.
4.1.2. Design
In this phase, the actual design of the system takes place. The output of the design phase
is the design document that acts as an input for all subsequent SDLC phases. The design
of the app is simple and user friendly containing major activities, namely:
a) Register
b) Login
c) Homepage
d) Add property
e) Property details
f) Add tenant
g) Tenant details
h) User profile
i) Reset password
4.1.3. Coding/Implementation
Coding phase is carried out after the design phase. It includes the translation of the
requirements specified in requirement phase into a logical structure that can be
implemented in a programming language. The output of the design phase is a design
document that acts as an input for all subsequent SDLC phases. The project is done
using android studio as an integrated development environment (IDE) and implemented
using the android virtual device (AVD). This emulator helped to implement the project
25
in real-like environment and sketch out the details of how it will work on real hardware.
Each activity is linked with another and interconnectivity is transparent and smooth.
4.1.4. Testing
After the code was developed in the coding phase, the codes were tested to check
whether or not it complied with the requirements and that the code actually solved the
needs that were addressed in the requirements phase. Testing of the project has been
done on emulator and as well as real hardware. Testing has been done for the individual
activities of the project. Errors that occurred were corrected and further debugging was
performed.
4.1.5. Maintenance and Documentation
Maintenance phase includes the implementation of changes that software might
undergo over a certain period of time, or implementation of the new requirements and
handling the residual errors that may exist in the software even after the testing phase.
Maintenance of the project will be followed according to the changing requirements
and trends. Similarly, documentation is the crucial part in the development of any
project which has been done hand in hand with the development process wherever
possible.
4.2. Tools
4.2.1 Draw.io
Draw.io is completely free online diagram editor built around Google Drive that enables
you to create flowcharts, UML, entity relation, network diagrams, mockups and more.
ER diagram, schema diagram, use case diagram, activity diagram and DFD are all made
using this online tools.
4.2.2 Android studio 2.3.3 (IDE)
Android studio is an official integrated development environment specially designed
for the development of the android application based on the JetBrains' IntelliJ IDEA
26
software. The android studio contains all the required functionality and tools required
to create, compile, debug and deploy android applications.
All the coding, designing and testing part of the project is done through android studio
version 2.3.3.
4.2.3. Android SDK 26.0.1
The android software development kit (Android SDK) contains the necessary tools to
create, compile and package Android applications. The android SDK contains required
libraries, debugger, an emulator, android debug bridge for connecting virtual or real
device and relevant documentation.
For the development of the application, android SDK 26.01 has been used.
4.2.3 Android Virtual Device (AVD)
An android Virtual Device (AVD) is an emulator configuration that allows developers
to test the application by simulating the real device capabilities. The AVD can be
configured by specifying the hardware and software options. AVD manager enables an
easy way of creating and managing the AVD with its graphical interface. It can be
created as many as it is needed, based on the types of device we want to test for.
Google nexus 5.5 has been used as android virtual device for the application.
4.3. Technology
4.3.1. Java
Java is a very popular object oriented programming language developed by Sun
microsystems. In the development of the android application, java has been used as the
main programming language because java is platform independent and secure which
uses virtual machine to run its code, has powerful libraries which ease the developers
to make android application easily, is simple and easy to learn and it has object oriented
feature. In addition to this, the benefits of using java in android development are as
follows:
27
a) There are a large number of developers already proficient in Java.
b) Java has huge open source support, with many libraries and tools available to
make developers life easier.
c) Java protects you from many of the problems inherent in native code, like
memory leaks, bad pointer usage, etc.
d) Java allows developers to create sandbox applications, and create a better
security model so that one bad App can't take down your entire OS.
So, the functioning of all the layout defined by the xml in our project is done by java.
To use java in developing android app, Java development kit (JDK) in android studio
has been installed.
4.3.2 XML
XML stands for Extensible Markup Language which is a markup language that defines
a set of rules for encoding documents in a format that is both human-
readable and machine-readable.
XML is used in the project to display and manage the GUI components. All the layout
of the project are defined by the XML. Besides these, defining the animation, color,
style, string, dimension, menu etc. have also done using XML. Similarly, the
configuration files are based on XML. The layout is created and described in XML
because by storing the user interface as XML file, it is easier to parse and the existing
code refactor tools can work without any changes. So, All the user interface or layout
and managing the components of the layout of the project has been done using XML.
The xml file is described inside android studio IDE.
4.3.4 Firebase
Firebase is a google based cloud service that permits you to make applications with no
server-side programming so that development turns out to be quicker and easier. With
Firebase, we don't have to stress over-provisioning servers or building REST APIs and
database because it has all the functions and provision provided by the backend/server
side of an application. The features of the firebase are as follows:
28
a) Firebase analytics
b) Real time database
c) Firebase authentication
d) Push notification
e) Firebase storage
f) Firebase hosting
g) Firebase cloud messaging
h) Firebase crash reporting
i) Firebase test lab for android
The application has used Firebase API to connect with the firebase. Firebase is used
mainly to provide email authentication and real time database in the application. The
application has used Firebase email and password based authentication method to let
users authenticate with Firebase using their email addresses and passwords, and to
manage their accounts. In addition to this, sending mail for the confirmation of account
registration and sending password reset email has also been done by the use of firebase
authentication. The email authentication feature has been used by using firebase
authentication. Firebase real time database is the cloud hosted database and the
application has used this real time database which is NoSQL cloud database. In this
database, data is stored as JSON and synchronized in real time to every connected
clients. The application has used the real time database by using Firebase real time
database API.
29
Chapter 5: Testing
Software testing is the process of evaluation a software item to detect differences
between given input and expected output. It also assesses the feature of a software item.
Testing assesses the quality of the product. Software testing is a process that should be
done during the development process.
5.1. Unit Testing
Unit testing is a software testing method by which individual units of source code, sets of
one or more computer program modules together with associated control data, usage
procedures, and operating procedures, are tested to determine whether they are fit for use.
Unit testing has been done testing individual activity of the application.
Each activity like registration, sign in, reset password, homepage, tenant details, property
details, account etc. has been tested individually. All the units testing has been done using
the AVD (android virtual device).
5.1.1 Test Case
a) For Sign up
Table 1: Test case for Sign up
Test
Case
ID
Test
Scenario
Test Steps Input test data Expected
Results
Actual
Results
Pass/
fail
TC-
1
Check
signup
activity
with valid
data
1) Open
App and go
to sign up
activity.
2) Fill up
the form
a) Name: Urgen
Sherpa
b) Email:
us_urgen@outl
ook.com
c) Sex: male
d) Date of
User should
get “account
successfully
created”
message and
redirected to
As
expecte
d
pass
30
with valid
data.
3) Click
create
account
button.
Birth:
2051/04/05
e) Address:
Boudha-05
f) Mobile no:
9803527331
g) Citizenship
no: 1001
h) Password:
123456
sign in
activity
TC-
2
Check
signup
Activity
with
invalid
data
1) Open
App and go
to sign up
activity.
2) Fill up
the form
with
invalid
data.
3) Click
create
account
button.
a) Name: Urgen
Sherpa
b) Email: Urgen
c) Sex: male
d) Date of
Birth:
2051/04/05
e) Address:
Boudha-05
f) Mobile no:
9803527331
g) Citizenship
no: 1001
h) Password:
123456
User should
get “Enter
valid email”
Message.
As
expecte
d
pass
31
b) For sign in
Table 2: Test case for Sign in
Test
Case
ID
Test
Scenario
Test Steps Input test
data
Expected
Results
Actual
Results
Pass/
fail
TC-
3
Check
sign in
activity
with
valid
data
1) Open App
and go to
sign in
activity.
2) Fill up the
form with
valid data.
3) Click sign
in button.
a) Email:
us_urgen@o
utlook.com
b) Password:
123456
User should
get “account
successfully
created”
message and
redirected to
home activity
As
expected
pass
TC-
4
Check
sign in
activity
with
invalid
data
1) Open App
and go to
sign in
activity.
2) Fill up the
form with
invalid data.
3) Click sign
in button.
a) Email:
Urgen
b) Password:
123456
User should
get “Enter
valid email”
Message.
As
expected
pass
32
c) For adding property
Table 3: Test case for adding property
Test
Case
ID
Test
Scenario
Test Steps Input test data Expected
Results
Actual
Results
Pass/
fail
TC-
5
Check
add
property
activity
with
valid
data
2) Fill up
the form
with valid
data.
3) Click
save
button.
a) Property name:
Boudha Villa
b) Property no:
20456
c) Property type:
apartment
d) Address:
Boudha,
e) Zone: Bagmati
f) District:
Kathmandu
g) Municipality:
Boudha
h) ward-no: 05
i)note: Test
property upload
User
should get
“property
successful
ly
created”
message
and
redirected
to home
activity
As
expected
pass
TC-
6
Check
signup
with
2) Fill up
the form
with
a) Property name:
Boudha Villa
b) Property no:
20456
c) Property type:
User
should get
“Enter
As
expected
pass
33
invalid
data
invalid
data.
3) Click
save
button.
apartment
d) Address:
Boudha,
e) Zone: 56
f) District:
Kathmandu
g) Municipality:
Boudha
h) ward-no: 05
i)note: Test
property upload
valid
zone”
Message.
d) For adding tenant
Table 4: Test case for adding tenant
Test
Case
ID
Test
Scenar
io
Test
Steps
Input test data Expected
Results
Actual
Results
Pas
s/fai
l
TC-
7
Check
add
tenant
activit
y with
valid
data.
2) Fill up
the form
with
valid
data.
3) Click
save
button.
a) Tenant name: John
Pradhan
b) Email:
john@gmail.com
c) Mobile no: 98-
8230247
d) Address: Boudha,
e) Zone: Bagmati
User
should
get
“tenant
successfu
lly
created”
message
and
redirecte
As
expected
pass
34
f) District: Kathmandu
g) Municipality:
Boudha
h) Ward-no: 05
i) Citizenship no: 20056
j) Father name: Ram
Pradhan
k) Marital status:
unmarried
l) Rent amount: 4500
m) Move in date:
2074/2/32
n) note: Test tenant
upload
d to
home
activity
TC-
8
Check
add
tenant
activit
y with
valid
data.
2) Fill up
the form
with
invalid
data.
3) Click
save
button.
a) Tenant name: John
Pradhan
b) Email: john
c) Mobile no: 98-
8230247
d) Address: Boudha,
e) Zone: Bagmati
f) District: Kathmandu
g) Municipality:
Boudha
h) Ward-no: 05
User
should
get
“Enter
valid
email”
Message.
As
expected
pass
35
i) Citizenship no: 20056
j) Father name: Ram
Pradhan
k) Marital status:
unmarried
l) Rent amount: 4500
m) Move in date:
2074/2/32
n) Note: Test tenant
upload.
5.2. Integration Testing
Integration testing is a software development process in which program units are
combined and tested as groups in multiple ways.
The integration testing of the application has been done by dividing the project in to
three modules. The first module which include the login, sign up and registration page
has been tested. Then the second module which include the adding/updating/deleting
and viewing part of the property and tenant renting the property has been done. At last,
the third module which include the user profile part like viewing the user profile, editing
the profile details and changing the email and password part has been tested. All the
modules testing has been made using the AVD (android virtual device).
36
5.3. System Testing
System Testing is a level of the software testing where a complete and integrated
software is tested.
The system testing has been performed by testing the whole application in virtual device
and real android device with and without the internet connection. The whole application
runs smoothly and without error with the internet connection. Without the internet
connection, the application cannot perform fully. Since the data is synchronized when
the application is connected to the internet, so without the internet connection the
application cannot function fully.
37
Chapter 6: Conclusion
6.1. Conclusion
Tenant screening is a cloud based mobile application that helps the property owners to
keep record of their properties and the tenants renting the property. The application has
been developed using android studio as IDE, java as main programming language, xml
as defining layout and backend part using the firebase. All the requirement and the
objectives of the project have been fulfilled by the application. The property owner can
access all the information of the property and the tenants that he/she had added in the
application through the application from anywhere around the world.
6.2. Future scope
Currently the android application has the features of adding the property and tenants
details and displaying them only. In future, the application will also include the features
of adding the income and expense details from the property which allows the property
owner to track the financial part of the property. Similarly, application will be provided
the platform to take feedback from the tenants.
38
REFERENCES
Tamada, R. 2016. Firebase Realtime Database CRUD Operation for Android. Available
at: https://www.simplifiedcoding.net/firebase-realtime-database-crud/ [Accessed 5
July. 2017].
Khan, B. 2017. Android working with Firebase Realtime Database. Available
at: https://www.androidhive.info/2016/10/android-working-with-firebase-realtime-
database/ . [Accessed 15 July. 2017].
Java T point. 2016. Android tutorial. Available
at: https://www.javatpoint.com/android-tutorial . [Accessed 24 June. 2017].
Tutorial point. 2016. Android Tutorial Available
at: https://www.tutorialspoint.com/android/index.htm. [Accessed 2 July. 2017].
Firebase. 2017. Android guides. Available
at: https://firebase.google.com/docs/android/setup . [Accessed 20 July. 2017].
Slideshare. 2017. E-Notice Application. Available
at: https://www.slideshare.net/kapoorpriyanka/report-on-enotice-app-an-android-
application . [Accessed 16 June. 2017].
Slidenerd. 2014. Android tutorial for beginners. Available at:
https://www.youtube.com/playlist?list=PLonJJ3BVjZW6hYgvtkaWvwAVvOFB7fkL
a . [Accessed 16 April. 2017].
Stellman, A. & Greene, J. (2005). Functional and Non-Functional Requirement. In
A.Stellman, & J. Greene, Applied Software Project Management (p.113). O’Reilly
Media. [Accessed 14 August. 2017].
Sadalage, P. 2014. NoSQL Databases: An overview. Available at:
https://www.thoughtworks.com/insights/blog/nosql-databases-overview . [Accessed
14 April. 2017].
39
APPENDICES
Appendix A
Screen shot of the application
Login Activity Home Activity
40
Sign up Activity
41
Tenant Detail Activity
42
Property Detail Activity Profile Activity
43
Appendix B
AndroidManifest.xml file
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.urgenism.tenantscreening">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".LoginActivity"
android:label="@string/app_name" />
<activity
android:name=".SignupActivity"
android:label="@string/signup" />
<activity android:name=".HomeActivity" />
<activity
android:name=".AddPropertyActivity"
android:label="@string/add_property" />
<activity
android:name=".AddTenantActivity"
android:label="@string/add_tenant" />
<activity
android:name=".ResetPasswordActivity"
android:label="@string/btn_reset_password" />
<activity
android:name=".PropertyListViewActivity"
android:label="@string/select_property" />
<activity
android:name=".TenantListViewActivity"
android:label="@string/select_the_tenants" />
<activity
android:name=".PropertyDetailActivity"
android:label="@string/property" />
<activity
android:name=".TenantDetailActivity"
android:label="@string/tenant" />
<activity
android:name=".EditPropertyDetailActivity"
android:label="@string/update_property" />
<activity
android:name=".EditTenantDetailActivity"
android:label="@string/update_tenant" />
<activity
android:name=".SelectPropertyA_Activity"
android:label="@string/select_property" />
<activity
android:name=".SelectPropertyB_Activity"
android:label="@string/select_property" />
<activity
android:name=".MyInformationActivity"
android:label="@string/profile" />
44
<activity
android:name=".EditUserInformationActivity"
android:label="@string/update_profile" />
<activity
android:name=".ChangeEmailActivity"
android:label="@string/update_email" />
<activity
android:name=".ChangePasswordActivity"
android:label="@string/update_password" >
</activity>
</application>
</manifest>
Firebase API
{
"project_info": {
"project_number": "749184387160",
"firebase_url": "https://tenantscreening-8751b.firebaseio.com",
"project_id": "tenantscreening-8751b",
"storage_bucket": "tenantscreening-8751b.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:749184387160:android:554492e2e1ab9345",
"android_client_info": {
"package_name": "com.example.urgenism.tenantscreening"
}
},
"oauth_client": [
{
"client_id": "749184387160-
casl4vesvjts17eauvom5gefimoqoj3s.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.example.urgenism.tenantscreening",
"certificate_hash": "ca153bfb6c16ccec68ed1cab41170f99e035eda4"
}
},
{
"client_id": "749184387160-
8jhaputs964hs4squ5insq1ceguuf0lv.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyDpn1eFUmCY0fE_ZhX2IBsOs3fssnSEuF0"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 2,
"other_platform_oauth_client": [
{
"client_id": "749184387160-
8jhaputs964hs4squ5insq1ceguuf0lv.apps.googleusercontent.com",
"client_type": 3
}
]
45
},
"ads_service": {
"status": 2
}
}
}
],
"configuration_version": "1"
}
Email authentication using firebase
auth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(LoginActivity.this, new
OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
progressBar.setVisibility(View.GONE);
if (!task.isSuccessful()) {
// there was an error
if (password.length() < 6) {
inputPassword.setError(getString(R.string.minimum_password));
} else {
Toast.makeText(LoginActivity.this,
getString(R.string.auth_failed), Toast.LENGTH_LONG).show();
}
} else {
checkIfEmailVerified();
}
}
});
private void checkIfEmailVerified()
{
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user.isEmailVerified())
{
// user is verified, so you can finish this activity or send user to
activity which you want.
Toast.makeText(LoginActivity.this, "Successfully logged in",
Toast.LENGTH_SHORT).show();
Intent intent = new Intent(LoginActivity.this, HomeActivity.class);
startActivity(intent);
finish();
overridePendingTransition(R.anim.push_left_in,
R.anim.push_left_out);
}
else
{
// email is not verified, so just prompt the message to the user and
restart this activity.
// NOTE: don't forget to log out the user.
FirebaseAuth.getInstance().signOut();
Toast.makeText(getApplicationContext(), "Please check your email for
confirmation!...", Toast.LENGTH_SHORT).show();
//restart this activity
}
}

More Related Content

What's hot

Final Year Project Presentation
Final Year Project PresentationFinal Year Project Presentation
Final Year Project PresentationSyed Absar
 
SRS For Online Store
SRS For Online StoreSRS For Online Store
SRS For Online StoreAhsan Rizwan
 
Android College Application Project Report
Android College Application Project ReportAndroid College Application Project Report
Android College Application Project Reportstalin george
 
School management System
School management SystemSchool management System
School management SystemHATIM Bhagat
 
Airline management system
Airline management systemAirline management system
Airline management systemSH Rajøn
 
LABRARY MANAGEMENT SYSTEM By ARPIT TRIPATHI
LABRARY MANAGEMENT SYSTEM By ARPIT TRIPATHILABRARY MANAGEMENT SYSTEM By ARPIT TRIPATHI
LABRARY MANAGEMENT SYSTEM By ARPIT TRIPATHIArpit Tripathi
 
Ignou MCA mini project report
Ignou MCA mini project reportIgnou MCA mini project report
Ignou MCA mini project reportHitesh Jangid
 
Chat Application | RSD
Chat Application | RSDChat Application | RSD
Chat Application | RSDRajon
 
Learning Management System-SRS Modified(Semi-Final)
Learning Management System-SRS Modified(Semi-Final)Learning Management System-SRS Modified(Semi-Final)
Learning Management System-SRS Modified(Semi-Final)Sharon Varghese
 
ONLINE FLAT BOOKING SERVICE MINOR PROJECT REPORT.
ONLINE FLAT BOOKING SERVICE MINOR PROJECT REPORT.ONLINE FLAT BOOKING SERVICE MINOR PROJECT REPORT.
ONLINE FLAT BOOKING SERVICE MINOR PROJECT REPORT.Lavkushpatkar
 
SRS example
SRS exampleSRS example
SRS examplegentzone
 
Synopsis of online Attendance System
Synopsis of online Attendance SystemSynopsis of online Attendance System
Synopsis of online Attendance SystemShyam Sundar Pandey
 
Android Project Presentation
Android Project PresentationAndroid Project Presentation
Android Project PresentationLaxmi Kant Yadav
 
Student Management System report
Student Management System reportStudent Management System report
Student Management System reportChandresh Prasad
 

What's hot (20)

Final Year Project Presentation
Final Year Project PresentationFinal Year Project Presentation
Final Year Project Presentation
 
SRS For Online Store
SRS For Online StoreSRS For Online Store
SRS For Online Store
 
Android College Application Project Report
Android College Application Project ReportAndroid College Application Project Report
Android College Application Project Report
 
School management System
School management SystemSchool management System
School management System
 
Airline management system
Airline management systemAirline management system
Airline management system
 
LABRARY MANAGEMENT SYSTEM By ARPIT TRIPATHI
LABRARY MANAGEMENT SYSTEM By ARPIT TRIPATHILABRARY MANAGEMENT SYSTEM By ARPIT TRIPATHI
LABRARY MANAGEMENT SYSTEM By ARPIT TRIPATHI
 
Ignou MCA mini project report
Ignou MCA mini project reportIgnou MCA mini project report
Ignou MCA mini project report
 
Chat Application | RSD
Chat Application | RSDChat Application | RSD
Chat Application | RSD
 
Internship report
Internship reportInternship report
Internship report
 
Learning Management System-SRS Modified(Semi-Final)
Learning Management System-SRS Modified(Semi-Final)Learning Management System-SRS Modified(Semi-Final)
Learning Management System-SRS Modified(Semi-Final)
 
Project report
Project reportProject report
Project report
 
ONLINE FLAT BOOKING SERVICE MINOR PROJECT REPORT.
ONLINE FLAT BOOKING SERVICE MINOR PROJECT REPORT.ONLINE FLAT BOOKING SERVICE MINOR PROJECT REPORT.
ONLINE FLAT BOOKING SERVICE MINOR PROJECT REPORT.
 
E farming
E farmingE farming
E farming
 
SRS example
SRS exampleSRS example
SRS example
 
Internship report on flutter lawyer app
Internship report  on flutter lawyer appInternship report  on flutter lawyer app
Internship report on flutter lawyer app
 
Online Job Portal
Online Job PortalOnline Job Portal
Online Job Portal
 
Synopsis of online Attendance System
Synopsis of online Attendance SystemSynopsis of online Attendance System
Synopsis of online Attendance System
 
Android Project Presentation
Android Project PresentationAndroid Project Presentation
Android Project Presentation
 
Web based booking a car taxi5
Web based booking a car taxi5Web based booking a car taxi5
Web based booking a car taxi5
 
Student Management System report
Student Management System reportStudent Management System report
Student Management System report
 

Similar to B.Sc.CSIT final year(7th semester) project on Tenant Screening

Ibm mobile first in action for mgovernment and citizen mobile services red
Ibm mobile first in action for mgovernment and citizen mobile services redIbm mobile first in action for mgovernment and citizen mobile services red
Ibm mobile first in action for mgovernment and citizen mobile services redbupbechanhgmail
 
Enabling mobile apps with ibm worklight application center red
Enabling mobile apps with ibm worklight application center redEnabling mobile apps with ibm worklight application center red
Enabling mobile apps with ibm worklight application center redbupbechanhgmail
 
Extending your business to mobile devices with ibm worklight
Extending your business to mobile devices with ibm worklightExtending your business to mobile devices with ibm worklight
Extending your business to mobile devices with ibm worklightbupbechanhgmail
 
Where tonight mobile application.pdf
Where tonight  mobile application.pdfWhere tonight  mobile application.pdf
Where tonight mobile application.pdfokorisolo
 
Bim deployment plan_final
Bim deployment plan_finalBim deployment plan_final
Bim deployment plan_finalHuytraining
 
ABAP_RESTful_Programming_Model_EN[1].pdf
ABAP_RESTful_Programming_Model_EN[1].pdfABAP_RESTful_Programming_Model_EN[1].pdf
ABAP_RESTful_Programming_Model_EN[1].pdfdeveloperabapsap
 
Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...Banking at Ho Chi Minh city
 
Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...Banking at Ho Chi Minh city
 
Software Requirement Specification on Online Purchasing System
Software Requirement Specification on Online Purchasing SystemSoftware Requirement Specification on Online Purchasing System
Software Requirement Specification on Online Purchasing Systemsabafarheen
 
Phase 1 of Predicting Payment default on Vehicle Loan EMI
Phase 1 of Predicting Payment default on Vehicle Loan EMIPhase 1 of Predicting Payment default on Vehicle Loan EMI
Phase 1 of Predicting Payment default on Vehicle Loan EMIVikas Virani
 
Tivoli data warehouse 1.2 and business objects redp9116
Tivoli data warehouse 1.2 and business objects redp9116Tivoli data warehouse 1.2 and business objects redp9116
Tivoli data warehouse 1.2 and business objects redp9116Banking at Ho Chi Minh city
 
Work Measurement Application - Ghent Internship Report - Adel Belasker
Work Measurement Application - Ghent Internship Report - Adel BelaskerWork Measurement Application - Ghent Internship Report - Adel Belasker
Work Measurement Application - Ghent Internship Report - Adel BelaskerAdel Belasker
 
A.R.C. Usability Evaluation
A.R.C. Usability EvaluationA.R.C. Usability Evaluation
A.R.C. Usability EvaluationJPC Hanson
 
Security in mobile banking apps
Security in mobile banking appsSecurity in mobile banking apps
Security in mobile banking appsAlexandre Teyar
 
Ibm mobile first strategy software approach
Ibm mobile first strategy software approachIbm mobile first strategy software approach
Ibm mobile first strategy software approachbupbechanhgmail
 
Securing your mobile business with ibm worklight
Securing your mobile business with ibm worklightSecuring your mobile business with ibm worklight
Securing your mobile business with ibm worklightbupbechanhgmail
 

Similar to B.Sc.CSIT final year(7th semester) project on Tenant Screening (20)

Ibm mobile first in action for mgovernment and citizen mobile services red
Ibm mobile first in action for mgovernment and citizen mobile services redIbm mobile first in action for mgovernment and citizen mobile services red
Ibm mobile first in action for mgovernment and citizen mobile services red
 
Enabling mobile apps with ibm worklight application center red
Enabling mobile apps with ibm worklight application center redEnabling mobile apps with ibm worklight application center red
Enabling mobile apps with ibm worklight application center red
 
Extending your business to mobile devices with ibm worklight
Extending your business to mobile devices with ibm worklightExtending your business to mobile devices with ibm worklight
Extending your business to mobile devices with ibm worklight
 
Where tonight mobile application.pdf
Where tonight  mobile application.pdfWhere tonight  mobile application.pdf
Where tonight mobile application.pdf
 
report
reportreport
report
 
Bim deployment plan_final
Bim deployment plan_finalBim deployment plan_final
Bim deployment plan_final
 
ABAP_RESTful_Programming_Model_EN[1].pdf
ABAP_RESTful_Programming_Model_EN[1].pdfABAP_RESTful_Programming_Model_EN[1].pdf
ABAP_RESTful_Programming_Model_EN[1].pdf
 
Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...
 
Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...
 
Software Requirement Specification on Online Purchasing System
Software Requirement Specification on Online Purchasing SystemSoftware Requirement Specification on Online Purchasing System
Software Requirement Specification on Online Purchasing System
 
Live chat srs
Live chat srsLive chat srs
Live chat srs
 
Phase 1 of Predicting Payment default on Vehicle Loan EMI
Phase 1 of Predicting Payment default on Vehicle Loan EMIPhase 1 of Predicting Payment default on Vehicle Loan EMI
Phase 1 of Predicting Payment default on Vehicle Loan EMI
 
Tivoli data warehouse 1.2 and business objects redp9116
Tivoli data warehouse 1.2 and business objects redp9116Tivoli data warehouse 1.2 and business objects redp9116
Tivoli data warehouse 1.2 and business objects redp9116
 
Work Measurement Application - Ghent Internship Report - Adel Belasker
Work Measurement Application - Ghent Internship Report - Adel BelaskerWork Measurement Application - Ghent Internship Report - Adel Belasker
Work Measurement Application - Ghent Internship Report - Adel Belasker
 
Project final
Project finalProject final
Project final
 
A.R.C. Usability Evaluation
A.R.C. Usability EvaluationA.R.C. Usability Evaluation
A.R.C. Usability Evaluation
 
Security in mobile banking apps
Security in mobile banking appsSecurity in mobile banking apps
Security in mobile banking apps
 
Ibm mobile first strategy software approach
Ibm mobile first strategy software approachIbm mobile first strategy software approach
Ibm mobile first strategy software approach
 
Abrek_Thesis
Abrek_ThesisAbrek_Thesis
Abrek_Thesis
 
Securing your mobile business with ibm worklight
Securing your mobile business with ibm worklightSecuring your mobile business with ibm worklight
Securing your mobile business with ibm worklight
 

Recently uploaded

Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
ROOT CAUSE ANALYSIS PowerPoint Presentation
ROOT CAUSE ANALYSIS PowerPoint PresentationROOT CAUSE ANALYSIS PowerPoint Presentation
ROOT CAUSE ANALYSIS PowerPoint PresentationAadityaSharma884161
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
 
Quarter 4 Peace-education.pptx Catch Up Friday
Quarter 4 Peace-education.pptx Catch Up FridayQuarter 4 Peace-education.pptx Catch Up Friday
Quarter 4 Peace-education.pptx Catch Up FridayMakMakNepo
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementmkooblal
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxEyham Joco
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 

Recently uploaded (20)

Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
ROOT CAUSE ANALYSIS PowerPoint Presentation
ROOT CAUSE ANALYSIS PowerPoint PresentationROOT CAUSE ANALYSIS PowerPoint Presentation
ROOT CAUSE ANALYSIS PowerPoint Presentation
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
 
9953330565 Low Rate Call Girls In Rohini Delhi NCR
9953330565 Low Rate Call Girls In Rohini  Delhi NCR9953330565 Low Rate Call Girls In Rohini  Delhi NCR
9953330565 Low Rate Call Girls In Rohini Delhi NCR
 
Quarter 4 Peace-education.pptx Catch Up Friday
Quarter 4 Peace-education.pptx Catch Up FridayQuarter 4 Peace-education.pptx Catch Up Friday
Quarter 4 Peace-education.pptx Catch Up Friday
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of management
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptx
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 

B.Sc.CSIT final year(7th semester) project on Tenant Screening

  • 1. ii ABSTRACT Tenant screening is a cloud based mobile application that helps the property owners to keep record of their properties and the tenants renting the property. It is an android application where the property owner can easily create their account and add the details of their properties and tenants renting the property. Those property details include the property name, property number, the type and its location and the tenant details include their name, email, mobile no. number, rent amount, Move in date and all the information present in their citizenship card. The application has been developed using android studio as IDE, java as main programming language, xml as defining layout, android built in layout editor to design layout and backend part using the firebase. Keywords: tenant, android, firebase
  • 2. iii TABLE OF CONTENTS ACKNOWLEDGEMENT.................................................................................................................i ABSTRACT................................................................................................................................... ii List of figures............................................................................................................................. vi List of Tables ............................................................................................................................ vii List of Abbreviations ............................................................................................................... viii Chapter 1: Introduction .............................................................................................................1 1.1. Background .....................................................................................................................1 1.2. Problem Statement.........................................................................................................1 1.3. Objectives .......................................................................................................................2 1.4. Scope...............................................................................................................................2 1.5. Limitation........................................................................................................................3 Chapter 2: Requirement Analysis and Feasibility Analysis ........................................................4 2.1. Requirement Analysis .....................................................................................................4 2.1.1. Functional Requirements.........................................................................................4 2.1.2. Non-functional Requirements .................................................................................6 2.2. Feasibility Analysis ..........................................................................................................7 2.2.1. Technical ..................................................................................................................7 2.2.2. Operational ..............................................................................................................8 2.2.3. Economic..................................................................................................................8 2.2.4. Schedule...................................................................................................................8 Chapter 3: System Design..........................................................................................................9 3.1. Module..........................................................................................................................10 3.1.1. Module 1:...............................................................................................................10 3.1.2. Module 2:...............................................................................................................10
  • 3. iv 3.1.3. Module 3:...............................................................................................................10 3.2. Database design............................................................................................................10 3.2.1. ER Diagram.............................................................................................................11 3.2.2 Database Schema....................................................................................................12 3.2.3 Data Format (JSON).................................................................................................13 3.3 User Interface Design.....................................................................................................15 3.3.1 User Interface Representation................................................................................16 3.4. Process Modelling.........................................................................................................17 3.4.1 Flowchart ................................................................................................................17 3.4.2 DFD..........................................................................................................................19 Chapter 4: Implementation .....................................................................................................23 4.1. Software development life cycle model .......................................................................23 4.1.1. Requirement and analysis......................................................................................24 4.1.2. Design.....................................................................................................................24 4.1.3. Coding/Implementation.........................................................................................24 4.1.4. Testing....................................................................................................................25 4.1.5. Maintenance and Documentation.........................................................................25 4.2. Tools..............................................................................................................................25 4.2.1 Draw.io....................................................................................................................25 4.2.2 Android studio 2.3.3 (IDE).......................................................................................25 4.2.3. Android SDK 26.0.1 ................................................................................................26 4.2.3 Android Virtual Device (AVD)..................................................................................26 4.3. Technology....................................................................................................................26 4.3.1. Java.........................................................................................................................26 4.3.2 XML .........................................................................................................................27 4.3.4 Firebase...................................................................................................................27 Chapter 5: Testing....................................................................................................................29
  • 4. v 5.1. Unit Testing...................................................................................................................29 5.1.1 Test Case .................................................................................................................29 5.2. Integration Testing........................................................................................................35 5.3. System Testing..............................................................................................................36 Chapter 6: Conclusion..............................................................................................................37 6.1. Conclusion.....................................................................................................................37 6.2. Future scope .................................................................................................................37 REFERENCES.............................................................................................................................38 APPENDICES.............................................................................................................................39 Appendix A...........................................................................................................................39 Screen shot of the application.........................................................................................39 Appendix B...........................................................................................................................43 AndroidManifest.xml file .................................................................................................43 Firebase API .....................................................................................................................44 Email authentication using firebase ................................................................................45
  • 5. vi List of figures Figure 1: Use case diagram before login .......................................................................5 Figure 2: Use case diagram after login .........................................................................6 Figure 3: Work Schedule ...............................................................................................8 Figure 4: System structure .............................................................................................9 Figure 5: System Architecture .......................................................................................9 Figure 6: ER diagram...................................................................................................11 Figure 7: Database Schema..........................................................................................12 Figure 8: JSON tree structure ......................................................................................13 Figure 9: JSON tree structure of user ..........................................................................14 Figure 10: JSON tree structure of property..................................................................14 Figure 11: JSON tree structure of tenant .....................................................................15 Figure 12: View and View group hierarchy ................................................................16 Figure 13: Flowchart....................................................................................................18 Figure 14: DFD context diagram .................................................................................19 Figure 15: Level 0 DFD...............................................................................................20 Figure 16: Level 1 DFD – (3.0) ...................................................................................21 Figure 17: Level 1 DFD – (4.0) ...................................................................................21 Figure 18: Level 1 DFD – (6.0) ...................................................................................22 Figure 19: Waterfall model..........................................................................................23
  • 6. vii List of Tables Table 1: Test case for Sign up......................................................................................29 Table 2: Test case for Sign in ......................................................................................31 Table 3: Test case for adding property ........................................................................32 Table 4: Test case for adding tenant ............................................................................33
  • 7. viii List of Abbreviations API Application Interface AVD Android Virtual Device DFD Data Flow Diagram DOB Date of Birth ER Entity Diagram ID Identity IDE Integrated Development Environment JDK Java Development Kit JSON Javascript Object Notation SDLC Software Development Life Cycle SDK Software Development Kit SQL Stuctured Query Language UI User Interface XML Extensible Markup Language
  • 8. 1 Chapter 1: Introduction 1.1. Background Tenant screening is a cloud based mobile application that helps the property owners to keep record of their properties and the tenants renting the property. It is an android application where the property owner can easily create their account and add the details of their properties and tenants renting the property. Those property details include the property name, property number, address and the income details and the tenant details include their name, email, mobile no. number, rent amount, Move in date and all the information present in their citizenship card. Tenant screening fulfills the need of mobile and digital record keeping system of the properties and the tenants renting the property. Since the application runs on android smartphones, it is accessible from anywhere around the world and the property owners can add, update and delete the information from anywhere. Internet connection is required in order to use this application and it supports the android version 4.3 and above it. The interface of this application is straightforward and roughly takes 5 seconds to get started. Adding the properties and tenant details on the application is easy, just click on the add property/tenant button and enter the details. Similarly viewing the details and updating it is easy. Here registration is must for all the property owners having this application in order to add and keep the record of their properties and the tenants. After registration, the property owners can use his/her registered email account and password to login in to the system. 1.2. Problem Statement The old fashioned way of keeping records on paper and file is troublesome and time consuming. There is a risk of files being damaged or destroyed with no back-up. Besides this, the file must be carried everywhere to access the details inside of it which is not possible and updating/modifying the details is troublesome. In addition to this, most of the property owners does not care about keeping the records of their properties
  • 9. 2 and tenants renting the property since paper record keeping things is troublesome, time consuming and not effective for them. Now a days, all record keeping things are moving in to the digital, mobile and cloud world. The old fashioned way of keeping the records on paper is slowly decreasing and people are moving into the digital cloud based services of storing and managing the records. The tenant screening android application fulfills the need of digital and mobile record keeping system. So, for this tenant screening has been developed in order to store and manage records of the properties and tenants on the internet which reduces the risk of lost data and provides access from any location. 1.3. Objectives The objectives of tenant screening android application are as follows:  To migrate the paper based record keeping system into android device based record keeping system.  To store and manage records of the properties and tenants on the cloud.  To provide access to properties and tenants information from any location through this application. 1.4. Scope The tenant screening is an android mobile application suitable for all the property owners. Specially, it is designed to facilitate the property owners to store and manage the properties and tenants record on the internet. The property owners having the android smartphones can easily install and use this app. This application is very easy and simple to understand. So, the property owners definitely want to have this application in their smartphone installed. This application would create a database which could acts as a backup of all the data of the house owner and the property.
  • 10. 3 1.5. Limitation Some of the limitation of this application are listed below:  Must require android version 4.3 and above version.  Internet connection required.  Property owner must know English language.
  • 11. 4 Chapter 2: Requirement Analysis and Feasibility Analysis 2.1. Requirement Analysis Requirement analysis is the process of precisely identifying, defining, and documenting the various requirements that are related to a particular business objective. Requirements gathering helps in clearly understanding the needs of the customer, defining the scope of the project, and assessing the timescales and resources required to complete it. There are two types of requirement which are as follows: 2.1.1. Functional Requirements In order to make the application functional, we require the following: a) Download mobile application A user should be able to download the mobile application either through google play store or similar service on the phone. The application should be free to download. b) User Registration Given that a user has downloaded the mobile application, then the user should be able to register through this mobile application. The user must provide username, email, mobile number, sex, citizenship no and password. c) User login Given that a user has registered, then the user should be able to log in the mobile application through his/her email and password. The login information will be stored on the phone and in the future the user should be logged in automatically. d) Reset Password Given that the user has registered, then the use should be able to retrieve his/her password by email. e) Home activity Given that the user is logged in to the mobile application, then the first page that is shown should be the home activity. The user get references to all other activities like
  • 12. 5 adding the properties, adding the tenants, accessing the property and tenants details through this activity. f) Add property and tenant The user should be able to add any numbers and type of properties and tenants renting that properties. g) Property details and tenants The user should be able to view the details of added properties and tenants. h) Edit the property and tenant details The user should be able to edit the details of the properties and tenants. i) Owner profile The user should be able to view their own profile, modify their details and change email and password. j) Logout The user should be able to logout of the system. Figure 1: Use case diagram before login
  • 13. 6 Figure 2: Use case diagram after login The above use case diagram also show the functional requirement of the application. A use case diagram is a graphic depiction of the interactions among the elements of a system. It is used in system analysis to identify, clarify, and organize system requirements. 2.1.2. Non-functional Requirements The non-functional requirements of this mobile application are as follows: a) Performance The performance requirement provide a details specification of the user interaction with the application and measurements placed on the application performance.
  • 14. 7 For the response time, it should not be more than 5 seconds if the user have a proper internet connection and for the fault tolerance, if the system loses internet connection or the systems gets some strange input, the user should be informed. b) Maintainability The application should be easy to extend. The code should be written in a way that it favors implementation of new functions. In addition to this, test environment should be built for the application to allow testing of the different functions. c) Look and feel The user interface should be light and easy to use. The bright color and multiple color theme should be discarded. The use should be informed correctly if he/she is doing anything wrong, d) Security There should be security of the communication between the user and system. Only authenticated users are allowed to view their respective databases. The security of creating account for the user must be maintained. No two users with same email and citizenship number should be created. 2.2. Feasibility Analysis Feasibility study is a test of system proposed according to its work ability, impact on the organization, ability to meet user needs, and effective use of resources. The feasibility study of this application had been carried out which are as follows: 2.2.1. Technical This android mobile application is technically feasible. The software and hardware requirement for the development of this application are not many and already available as free as open source. The work for the project is done with the current equipment and existing software technology. This application is supported by all android application having version 4.3.
  • 15. 8 2.2.2. Operational Operational feasibility is the measure of how well a proposed system solves the problems, and takes advantage of the opportunities identified during scope definition and how it satisfies the requirements identified in the requirements analysis phase of system development. This application is operationally feasible because this application solves the problem faced by the property owners that are mentioned as problem statement. Through this application property owners can store and manage the records of their property and tenants on the cloud. 2.2.3. Economic Economic feasibility is the analysis of a project's costs and revenues in an effort to determine whether or not it is logical and possible to complete. This application is economically feasible because this application is made using open source software and the time spend in the development of this application is 3 months. 2.2.4. Schedule The schedule for the development of the project are show in the figure below: Figure 3: Work Schedule
  • 16. 9 Chapter 3: System Design System design is the process of defining the architecture, components, modules, interfaces and data for a system to satisfy specified requirements. Design of the system brings down the knowledge of requirements and analysis to design the software product. Generally, this chapter deals with the module, database design, user interface design and the program design. For the designing of the application, various diagrams like use case diagram, schema diagram, ER diagram, DFD etc. have been used. Figure 4: System structure The above figure shows the general structure of application connection with the google based cloud service “firebase” in the presence of internet connection. Figure 5: System Architecture
  • 17. 10 3.1. Module A module is a software component or part of a program that contains one or more routines. One or more independently developed modules make up a program. The application is divided into three modules: 3.1.1. Module 1: The first module in the application is the login. In the login process, the user can input his email and password if he/she have already got an account, else the user should sign up by putting his name, email, sex, phone number, citizenship number, date of birth and address. Thus the user can have access to add properties and tenants, view their info etc. Furthermore, user can reset their password by sending reset messages to their email account. 3.1.2. Module 2: The second module in the application is the accessibility of the main features of the application after login. The features in this module include adding, viewing and editing property and tenant information in their account database. 3.1.3. Module 3: The third module in the application is viewing and updating the user details after login. In addition to this, the user can change his primary email account and password if he/she wants to login back into the system. 3.2. Database design Database design is the process of producing a detailed data model of database. This data model contains all the needed logical and physical design choices and physical storage parameters needed to generate a design in a data definition language, which can then be used to create a database. For the database design of the application, ER diagram, schema diagram, and the format of data on the firebase has been shown which are as follows:
  • 18. 11 3.2.1. ER Diagram An entity relationship model is a graphical representation of entities and their relationships to each other, typically used in computing in regard to the organization of data within databases or information systems. An entity is a piece of data- an object or concept about which data is stored and a relationship is how the data is shared between entities. Figure 6: ER diagram The above ER diagram shows the relationship between the Property owner, property and the tenants renting the property. Entities have been represented by the rectangle, attributes of an entity have been represented by the oval and the relationship between the entities have been represented by the diamond shape. The lines with arrow head represents that there is only one instance of an entity involved in the relationship and the arrowless lines represents that there is one or many instance of an entity. The underline word inside oval shape represents the application and the double oval shape attribute represents the multivalued attribute.
  • 19. 12 3.2.2 Database Schema A database schema is the skeleton structure that represents the logical view of the entire database and defines how the data is organized and how the relations among them are associated. It formulates all the constraints that are to be applied on the data and defines its entities and the relationship among them. It contains a descriptive detail of the database, which can be depicted by means of schema diagrams. The database schema of the application are as follows: Figure 7: Database Schema In above schema diagram, there are three database table property owner, property and tenants which has their own primary key and attributes. The connecting lines shows the relationship between the tables and the foreign key is used to link two tables together
  • 20. 13 3.2.3 Data Format (JSON) Firebase Database stores data as JSON objects and synchronized in real time to every connected client. Firebase real time database is NoSQL database which means that data is not stored as table format like the relational databases uses. Unlike a SQL database, there are no tables or records. When you add data to the JSON tree, it becomes a node in the existing JSON structure with an associated key. Data is stored as a key-value store. Key-value store implement a simple data model that pairs a unique key with an associated value. Figure 8: JSON tree structure
  • 21. 14 Figure 9: JSON tree structure of user Figure 10: JSON tree structure of property
  • 22. 15 Figure 11: JSON tree structure of tenant 3.3 User Interface Design User interface design is the process of designing user interfaces for computing devices and hardware so that they're easy for people to use. It's an interdisciplinary field that involves graphic designers, artists, programmers, psychologists and even anthropologists. The application user interface is defined by XML and built using a hierarchy of layouts (View Group Objects) and widgets (View Objects). Layouts are invisible containers that control how its child views are positioned on the screen. Widgets are UI components such as buttons and text boxes. Layout is built using android studio layout editor.
  • 23. 16 Figure 12: View and View group hierarchy 3.3.1 User Interface Representation In order to make user interface in android application many view groups and child views are used. The view groups and child views that will be used in the application are as follows: a) Relative layout Relative Layout is a view group that displays child views in relative positions. The position of each view can be specified as relative to sibling elements (such as to the left-of or below another view) or in positions relative to the parent view group area (such as aligned to the bottom, left or center). b) Linear layout Linear Layout is a view group that aligns all children in a single direction, vertically or horizontally. c) List View List View is a view group that displays a list of scrollable items. The list items are automatically inserted to the list using an Adapter that pulls content from a source such as an array or database query and converts each item result into a view that's placed into the list.
  • 24. 17 d) Scroll View A view group that allows the view hierarchy placed within it to be scrolled. Scroll view may have only one direct child placed within it. e) Image View Image view is a view in which displays image resources. f) Text View Text View is a user interface element (view) that displays text to the user. g) Edit Text Edit text is a user interface element (view) for entering and modifying text. h) Spinner Spinners is a view which provide a quick way to select one value from a set. In the default state, a spinner shows its currently selected value. Touching the spinner displays a dropdown menu with all other available values, from which the user can select a new one. i) Buttons A user interface element (view) the user can tap or click to perform an action. 3.4. Process Modelling Process modelling is used to describe how things must/should/could be done in contrast to the process itself which is really what happens. A process model is roughly an anticipation of what the process will look like. The process modelling of the application is done through Flowchart and DFD diagram. 3.4.1 Flowchart A flowchart is a type of diagram that represents the workflow or process, showing the steps as boxes of various kinds, and their order by connecting them with arrows.
  • 26. 19 The above Flowcharts has used simple geometric symbols and arrows to define relationships. The beginning or end of a program is represented by an oval. A process is represented by a rectangle, a decision is represented by a diamond and an I/O process is represented by a parallelogram. 3.4.2 DFD A data flow diagram (DFD) is a graphical representation of the “flow” of data through an information system, modelling its process aspects. A DFD is often used as a preliminary step to create an overview of the system without going into great detail, which can later be elaborated. Figure 14: DFD context diagram The above DFD is the Context Diagam of the application. The diagram has shown the relationship between the application and the external entity “property owner. The circle represents the process and the rectangle represents the external entity.”
  • 27. 20 Figure 15: Level 0 DFD The above figure is Level-0 DFD of the application. The main process is divided into the sign up, sign in, account, manage property, property, manage tenant and tenant processes.
  • 28. 21 Figure 16: Level 1 DFD – (3.0) The above figure is the level 1 DFD of process 3.0. The process 3.0 is further divided into view account, change email/password and edit account process. Figure 17: Level 1 DFD – (4.0) The above figure is the level 1 DFD of process 4.0. The process 4.0 is further divided into add property, update property and delete property process.
  • 29. 22 Figure 18: Level 1 DFD – (6.0) The above figure is the level 1 DFD of process 6.0. The process 6.0 is further divided into add tenant, update tenant and delete tenant process.
  • 30. 23 Chapter 4: Implementation The implementation phase of the software development refers to the final process of moving the solution from development status to production status. In this phase, Project developers begin building and coding the software. This phase is followed by the software development life cycle model used, tools used and the description of major classes/methods. 4.1. Software development life cycle model Software development life cycle is a process followed for a software project, within a software organization. It consists of a detailed plan describing how to develop, maintain, replace and alter or enhance specific software. The life cycle defines a methodology for improving the quality of software and the overall development process. The model of SDLC used in this project is the waterfall model. The waterfall model is comprised of series of very definite phases each one intended to be started sequentially only after the last has been completed, with one or more tangible deliverables produced at the end of each phase of the waterfall model of SDLC. Essentially, is starts with the heavy, documented, requirement-planning phase that outlines all the requirements for the project, followed by sequential phase of design, coding, test-casing, optional documentation, verification, validation and finally deployment/release. Figure 19: Waterfall model
  • 31. 24 4.1.1. Requirement and analysis Before developing the system, it is crucial for requirement collection and analysis. This phase was used to determine the requirements such as: who are target group for the system? How will they use the system? These were the type of questions that were answered during the requirements gathering phase. After requirement gathering was completed, these requirements were analyzed to determine whether or not these requirements can be measured, tested and most of all, incorporated to the proposed system. Once, requirements analysis was completed, the designing of the system was initiated. 4.1.2. Design In this phase, the actual design of the system takes place. The output of the design phase is the design document that acts as an input for all subsequent SDLC phases. The design of the app is simple and user friendly containing major activities, namely: a) Register b) Login c) Homepage d) Add property e) Property details f) Add tenant g) Tenant details h) User profile i) Reset password 4.1.3. Coding/Implementation Coding phase is carried out after the design phase. It includes the translation of the requirements specified in requirement phase into a logical structure that can be implemented in a programming language. The output of the design phase is a design document that acts as an input for all subsequent SDLC phases. The project is done using android studio as an integrated development environment (IDE) and implemented using the android virtual device (AVD). This emulator helped to implement the project
  • 32. 25 in real-like environment and sketch out the details of how it will work on real hardware. Each activity is linked with another and interconnectivity is transparent and smooth. 4.1.4. Testing After the code was developed in the coding phase, the codes were tested to check whether or not it complied with the requirements and that the code actually solved the needs that were addressed in the requirements phase. Testing of the project has been done on emulator and as well as real hardware. Testing has been done for the individual activities of the project. Errors that occurred were corrected and further debugging was performed. 4.1.5. Maintenance and Documentation Maintenance phase includes the implementation of changes that software might undergo over a certain period of time, or implementation of the new requirements and handling the residual errors that may exist in the software even after the testing phase. Maintenance of the project will be followed according to the changing requirements and trends. Similarly, documentation is the crucial part in the development of any project which has been done hand in hand with the development process wherever possible. 4.2. Tools 4.2.1 Draw.io Draw.io is completely free online diagram editor built around Google Drive that enables you to create flowcharts, UML, entity relation, network diagrams, mockups and more. ER diagram, schema diagram, use case diagram, activity diagram and DFD are all made using this online tools. 4.2.2 Android studio 2.3.3 (IDE) Android studio is an official integrated development environment specially designed for the development of the android application based on the JetBrains' IntelliJ IDEA
  • 33. 26 software. The android studio contains all the required functionality and tools required to create, compile, debug and deploy android applications. All the coding, designing and testing part of the project is done through android studio version 2.3.3. 4.2.3. Android SDK 26.0.1 The android software development kit (Android SDK) contains the necessary tools to create, compile and package Android applications. The android SDK contains required libraries, debugger, an emulator, android debug bridge for connecting virtual or real device and relevant documentation. For the development of the application, android SDK 26.01 has been used. 4.2.3 Android Virtual Device (AVD) An android Virtual Device (AVD) is an emulator configuration that allows developers to test the application by simulating the real device capabilities. The AVD can be configured by specifying the hardware and software options. AVD manager enables an easy way of creating and managing the AVD with its graphical interface. It can be created as many as it is needed, based on the types of device we want to test for. Google nexus 5.5 has been used as android virtual device for the application. 4.3. Technology 4.3.1. Java Java is a very popular object oriented programming language developed by Sun microsystems. In the development of the android application, java has been used as the main programming language because java is platform independent and secure which uses virtual machine to run its code, has powerful libraries which ease the developers to make android application easily, is simple and easy to learn and it has object oriented feature. In addition to this, the benefits of using java in android development are as follows:
  • 34. 27 a) There are a large number of developers already proficient in Java. b) Java has huge open source support, with many libraries and tools available to make developers life easier. c) Java protects you from many of the problems inherent in native code, like memory leaks, bad pointer usage, etc. d) Java allows developers to create sandbox applications, and create a better security model so that one bad App can't take down your entire OS. So, the functioning of all the layout defined by the xml in our project is done by java. To use java in developing android app, Java development kit (JDK) in android studio has been installed. 4.3.2 XML XML stands for Extensible Markup Language which is a markup language that defines a set of rules for encoding documents in a format that is both human- readable and machine-readable. XML is used in the project to display and manage the GUI components. All the layout of the project are defined by the XML. Besides these, defining the animation, color, style, string, dimension, menu etc. have also done using XML. Similarly, the configuration files are based on XML. The layout is created and described in XML because by storing the user interface as XML file, it is easier to parse and the existing code refactor tools can work without any changes. So, All the user interface or layout and managing the components of the layout of the project has been done using XML. The xml file is described inside android studio IDE. 4.3.4 Firebase Firebase is a google based cloud service that permits you to make applications with no server-side programming so that development turns out to be quicker and easier. With Firebase, we don't have to stress over-provisioning servers or building REST APIs and database because it has all the functions and provision provided by the backend/server side of an application. The features of the firebase are as follows:
  • 35. 28 a) Firebase analytics b) Real time database c) Firebase authentication d) Push notification e) Firebase storage f) Firebase hosting g) Firebase cloud messaging h) Firebase crash reporting i) Firebase test lab for android The application has used Firebase API to connect with the firebase. Firebase is used mainly to provide email authentication and real time database in the application. The application has used Firebase email and password based authentication method to let users authenticate with Firebase using their email addresses and passwords, and to manage their accounts. In addition to this, sending mail for the confirmation of account registration and sending password reset email has also been done by the use of firebase authentication. The email authentication feature has been used by using firebase authentication. Firebase real time database is the cloud hosted database and the application has used this real time database which is NoSQL cloud database. In this database, data is stored as JSON and synchronized in real time to every connected clients. The application has used the real time database by using Firebase real time database API.
  • 36. 29 Chapter 5: Testing Software testing is the process of evaluation a software item to detect differences between given input and expected output. It also assesses the feature of a software item. Testing assesses the quality of the product. Software testing is a process that should be done during the development process. 5.1. Unit Testing Unit testing is a software testing method by which individual units of source code, sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures, are tested to determine whether they are fit for use. Unit testing has been done testing individual activity of the application. Each activity like registration, sign in, reset password, homepage, tenant details, property details, account etc. has been tested individually. All the units testing has been done using the AVD (android virtual device). 5.1.1 Test Case a) For Sign up Table 1: Test case for Sign up Test Case ID Test Scenario Test Steps Input test data Expected Results Actual Results Pass/ fail TC- 1 Check signup activity with valid data 1) Open App and go to sign up activity. 2) Fill up the form a) Name: Urgen Sherpa b) Email: us_urgen@outl ook.com c) Sex: male d) Date of User should get “account successfully created” message and redirected to As expecte d pass
  • 37. 30 with valid data. 3) Click create account button. Birth: 2051/04/05 e) Address: Boudha-05 f) Mobile no: 9803527331 g) Citizenship no: 1001 h) Password: 123456 sign in activity TC- 2 Check signup Activity with invalid data 1) Open App and go to sign up activity. 2) Fill up the form with invalid data. 3) Click create account button. a) Name: Urgen Sherpa b) Email: Urgen c) Sex: male d) Date of Birth: 2051/04/05 e) Address: Boudha-05 f) Mobile no: 9803527331 g) Citizenship no: 1001 h) Password: 123456 User should get “Enter valid email” Message. As expecte d pass
  • 38. 31 b) For sign in Table 2: Test case for Sign in Test Case ID Test Scenario Test Steps Input test data Expected Results Actual Results Pass/ fail TC- 3 Check sign in activity with valid data 1) Open App and go to sign in activity. 2) Fill up the form with valid data. 3) Click sign in button. a) Email: us_urgen@o utlook.com b) Password: 123456 User should get “account successfully created” message and redirected to home activity As expected pass TC- 4 Check sign in activity with invalid data 1) Open App and go to sign in activity. 2) Fill up the form with invalid data. 3) Click sign in button. a) Email: Urgen b) Password: 123456 User should get “Enter valid email” Message. As expected pass
  • 39. 32 c) For adding property Table 3: Test case for adding property Test Case ID Test Scenario Test Steps Input test data Expected Results Actual Results Pass/ fail TC- 5 Check add property activity with valid data 2) Fill up the form with valid data. 3) Click save button. a) Property name: Boudha Villa b) Property no: 20456 c) Property type: apartment d) Address: Boudha, e) Zone: Bagmati f) District: Kathmandu g) Municipality: Boudha h) ward-no: 05 i)note: Test property upload User should get “property successful ly created” message and redirected to home activity As expected pass TC- 6 Check signup with 2) Fill up the form with a) Property name: Boudha Villa b) Property no: 20456 c) Property type: User should get “Enter As expected pass
  • 40. 33 invalid data invalid data. 3) Click save button. apartment d) Address: Boudha, e) Zone: 56 f) District: Kathmandu g) Municipality: Boudha h) ward-no: 05 i)note: Test property upload valid zone” Message. d) For adding tenant Table 4: Test case for adding tenant Test Case ID Test Scenar io Test Steps Input test data Expected Results Actual Results Pas s/fai l TC- 7 Check add tenant activit y with valid data. 2) Fill up the form with valid data. 3) Click save button. a) Tenant name: John Pradhan b) Email: john@gmail.com c) Mobile no: 98- 8230247 d) Address: Boudha, e) Zone: Bagmati User should get “tenant successfu lly created” message and redirecte As expected pass
  • 41. 34 f) District: Kathmandu g) Municipality: Boudha h) Ward-no: 05 i) Citizenship no: 20056 j) Father name: Ram Pradhan k) Marital status: unmarried l) Rent amount: 4500 m) Move in date: 2074/2/32 n) note: Test tenant upload d to home activity TC- 8 Check add tenant activit y with valid data. 2) Fill up the form with invalid data. 3) Click save button. a) Tenant name: John Pradhan b) Email: john c) Mobile no: 98- 8230247 d) Address: Boudha, e) Zone: Bagmati f) District: Kathmandu g) Municipality: Boudha h) Ward-no: 05 User should get “Enter valid email” Message. As expected pass
  • 42. 35 i) Citizenship no: 20056 j) Father name: Ram Pradhan k) Marital status: unmarried l) Rent amount: 4500 m) Move in date: 2074/2/32 n) Note: Test tenant upload. 5.2. Integration Testing Integration testing is a software development process in which program units are combined and tested as groups in multiple ways. The integration testing of the application has been done by dividing the project in to three modules. The first module which include the login, sign up and registration page has been tested. Then the second module which include the adding/updating/deleting and viewing part of the property and tenant renting the property has been done. At last, the third module which include the user profile part like viewing the user profile, editing the profile details and changing the email and password part has been tested. All the modules testing has been made using the AVD (android virtual device).
  • 43. 36 5.3. System Testing System Testing is a level of the software testing where a complete and integrated software is tested. The system testing has been performed by testing the whole application in virtual device and real android device with and without the internet connection. The whole application runs smoothly and without error with the internet connection. Without the internet connection, the application cannot perform fully. Since the data is synchronized when the application is connected to the internet, so without the internet connection the application cannot function fully.
  • 44. 37 Chapter 6: Conclusion 6.1. Conclusion Tenant screening is a cloud based mobile application that helps the property owners to keep record of their properties and the tenants renting the property. The application has been developed using android studio as IDE, java as main programming language, xml as defining layout and backend part using the firebase. All the requirement and the objectives of the project have been fulfilled by the application. The property owner can access all the information of the property and the tenants that he/she had added in the application through the application from anywhere around the world. 6.2. Future scope Currently the android application has the features of adding the property and tenants details and displaying them only. In future, the application will also include the features of adding the income and expense details from the property which allows the property owner to track the financial part of the property. Similarly, application will be provided the platform to take feedback from the tenants.
  • 45. 38 REFERENCES Tamada, R. 2016. Firebase Realtime Database CRUD Operation for Android. Available at: https://www.simplifiedcoding.net/firebase-realtime-database-crud/ [Accessed 5 July. 2017]. Khan, B. 2017. Android working with Firebase Realtime Database. Available at: https://www.androidhive.info/2016/10/android-working-with-firebase-realtime- database/ . [Accessed 15 July. 2017]. Java T point. 2016. Android tutorial. Available at: https://www.javatpoint.com/android-tutorial . [Accessed 24 June. 2017]. Tutorial point. 2016. Android Tutorial Available at: https://www.tutorialspoint.com/android/index.htm. [Accessed 2 July. 2017]. Firebase. 2017. Android guides. Available at: https://firebase.google.com/docs/android/setup . [Accessed 20 July. 2017]. Slideshare. 2017. E-Notice Application. Available at: https://www.slideshare.net/kapoorpriyanka/report-on-enotice-app-an-android- application . [Accessed 16 June. 2017]. Slidenerd. 2014. Android tutorial for beginners. Available at: https://www.youtube.com/playlist?list=PLonJJ3BVjZW6hYgvtkaWvwAVvOFB7fkL a . [Accessed 16 April. 2017]. Stellman, A. & Greene, J. (2005). Functional and Non-Functional Requirement. In A.Stellman, & J. Greene, Applied Software Project Management (p.113). O’Reilly Media. [Accessed 14 August. 2017]. Sadalage, P. 2014. NoSQL Databases: An overview. Available at: https://www.thoughtworks.com/insights/blog/nosql-databases-overview . [Accessed 14 April. 2017].
  • 46. 39 APPENDICES Appendix A Screen shot of the application Login Activity Home Activity
  • 49. 42 Property Detail Activity Profile Activity
  • 50. 43 Appendix B AndroidManifest.xml file <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.urgenism.tenantscreening"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".LoginActivity" android:label="@string/app_name" /> <activity android:name=".SignupActivity" android:label="@string/signup" /> <activity android:name=".HomeActivity" /> <activity android:name=".AddPropertyActivity" android:label="@string/add_property" /> <activity android:name=".AddTenantActivity" android:label="@string/add_tenant" /> <activity android:name=".ResetPasswordActivity" android:label="@string/btn_reset_password" /> <activity android:name=".PropertyListViewActivity" android:label="@string/select_property" /> <activity android:name=".TenantListViewActivity" android:label="@string/select_the_tenants" /> <activity android:name=".PropertyDetailActivity" android:label="@string/property" /> <activity android:name=".TenantDetailActivity" android:label="@string/tenant" /> <activity android:name=".EditPropertyDetailActivity" android:label="@string/update_property" /> <activity android:name=".EditTenantDetailActivity" android:label="@string/update_tenant" /> <activity android:name=".SelectPropertyA_Activity" android:label="@string/select_property" /> <activity android:name=".SelectPropertyB_Activity" android:label="@string/select_property" /> <activity android:name=".MyInformationActivity" android:label="@string/profile" />
  • 51. 44 <activity android:name=".EditUserInformationActivity" android:label="@string/update_profile" /> <activity android:name=".ChangeEmailActivity" android:label="@string/update_email" /> <activity android:name=".ChangePasswordActivity" android:label="@string/update_password" > </activity> </application> </manifest> Firebase API { "project_info": { "project_number": "749184387160", "firebase_url": "https://tenantscreening-8751b.firebaseio.com", "project_id": "tenantscreening-8751b", "storage_bucket": "tenantscreening-8751b.appspot.com" }, "client": [ { "client_info": { "mobilesdk_app_id": "1:749184387160:android:554492e2e1ab9345", "android_client_info": { "package_name": "com.example.urgenism.tenantscreening" } }, "oauth_client": [ { "client_id": "749184387160- casl4vesvjts17eauvom5gefimoqoj3s.apps.googleusercontent.com", "client_type": 1, "android_info": { "package_name": "com.example.urgenism.tenantscreening", "certificate_hash": "ca153bfb6c16ccec68ed1cab41170f99e035eda4" } }, { "client_id": "749184387160- 8jhaputs964hs4squ5insq1ceguuf0lv.apps.googleusercontent.com", "client_type": 3 } ], "api_key": [ { "current_key": "AIzaSyDpn1eFUmCY0fE_ZhX2IBsOs3fssnSEuF0" } ], "services": { "analytics_service": { "status": 1 }, "appinvite_service": { "status": 2, "other_platform_oauth_client": [ { "client_id": "749184387160- 8jhaputs964hs4squ5insq1ceguuf0lv.apps.googleusercontent.com", "client_type": 3 } ]
  • 52. 45 }, "ads_service": { "status": 2 } } } ], "configuration_version": "1" } Email authentication using firebase auth.signInWithEmailAndPassword(email, password) .addOnCompleteListener(LoginActivity.this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { progressBar.setVisibility(View.GONE); if (!task.isSuccessful()) { // there was an error if (password.length() < 6) { inputPassword.setError(getString(R.string.minimum_password)); } else { Toast.makeText(LoginActivity.this, getString(R.string.auth_failed), Toast.LENGTH_LONG).show(); } } else { checkIfEmailVerified(); } } }); private void checkIfEmailVerified() { FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); if (user.isEmailVerified()) { // user is verified, so you can finish this activity or send user to activity which you want. Toast.makeText(LoginActivity.this, "Successfully logged in", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(LoginActivity.this, HomeActivity.class); startActivity(intent); finish(); overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out); } else { // email is not verified, so just prompt the message to the user and restart this activity. // NOTE: don't forget to log out the user. FirebaseAuth.getInstance().signOut(); Toast.makeText(getApplicationContext(), "Please check your email for confirmation!...", Toast.LENGTH_SHORT).show(); //restart this activity } }