SRS - Rokeya-Siddiqua/CSE327-Online-House-Rental-Management-System GitHub Wiki

SRS drive link

Chapter 1

Introduction

1.1 Purpose

Purpose of Software Requirements Specification (SRS) is to describe the specification and description of our project ”Online House Rental Management System”. This Software Requirements Specification illustrates, in clear terms, the system’s primary uses and required functionality so that the next developers can easily understand what we did and how to change anything if it is required. Our goal of this project to satisfy the needs of rental house owners and general people who want to find their desire house easily. As our technology is developing so fast and people are highly attracted with it, we thought that it can be the best platform to serve all around the city. And our city is growing rapidly and it is getting more harder for everyone to find the beautiful and planned neighborhoods. So it can be more beneficial for everyone to a find the desired house by staying at their own place.

1.2 Intended Audience

Online House Rental Management System is a platform where a person can easily find a suitable house within his requirements which will be offered by the admin. So we can consider our audience for this software is landlords, tenants and admins. As landlords need to rent their houses so they have to use this platform often. If any Tenant wants to know the available house and the other related information like price, structure of the flat, security, location details, they can know through this platform. Lastly we are considering admin as our audience because admin have to control these landlords and tenants information and have to manage the whole software.

1.3 Intended Use

This Software Requirements Specification (SRS) is designed for Software Designer, Software Developers, Soft-ware Tester and for Project Manager. Our software is about online house rent so landlords and tenants will mostly use this platform. First of all, we are considering landlord as owner of any house who will give the information of his vacant house and information is like design, size, price, facilities, location, security etc. Landlord will upload all the data in this software to rent his/her house. Secondly, tenants are a person who will search for their desire house. Tenant can search house by their requirement for example he/she can fixed location, price, range, which floor he/she wanted to stay, what kind of facility is they looking for etc. So landlord and tenants are the most intended user in this software.

1.4 Product Scope

House Rental Management System is a platform where a person can easily find a suitable house within his requirements (Location, Price, Number of bedrooms, Number of Toilets, Common Space etc.).

  • Users can change the language [Bangla/English] so that they can easily understand.

  • After seeing few available houses and knowing about us from our demo page, users can register in our app with less amount of money and then get membership.

  • Users can secure their account by log in, secret questions and privacy over their personal information.

  • Users can communicate with the admin through message, email, contact number.

  • Users can get help both online [voice assistant, ask questions] and offline [pdf/short video about how to do].

  • Users can update/change their information [name, contact number etc.], app background color.

  • A tenant can search for house according to his/her needs.

  • He will also get notifications about vacancies houses for rent wherever he will be located.

  • After seeing the details of the houses, he can like houses and check those from his liked list later.

  • He can also decorate the house virtually, view the house in google map, AR view and manually.

  • He can contact with the landlord to confirm for rent by sending him [landlord] an interested request.

  • After seeing the information of that tenant, the landlord can confirm/decline his request.

  • The tenant can pay all the bills including house rent from this platform through Bkash.

  • The tenant can pay his/her bill in any currency.

  • The landlord can store all the transaction history of payment of a tenant.

  • Admin can send reminders to tenants about upcoming payments and due date. Our app can automatically calculate and charge late fees and notify the tenant of late/missed payments.

  • The tenant can also complain about anything about his apartment through this app.

  • Users can give rating and feedback about our app.

Chapter 2

Overall Description

This section deals with a broad overview of the product explaining the functionalities and goals that the software aims to achieve. It also provides details on the dependencies, constraints, operating environment of the product along with user classes and characteristics, user needs and user manuals.

2.1 User Classes and Characteristics

There are three types of users of the platform. The admin (the administration of the business, organization etc.), tenant (a person who occupies land or property rented from a landlord) and the landlord (a man/woman who rents out land, a building, or accommodation).

The tenant and the landlord will be able to use the mobile app or the web app. They can use all the features the mobile app or the web app provides. But at first they have to Registration/Log in though.

Landlord: The owner of a house [landlord] will upload information about his house [house location, size, private/apartment, bedrooms, bathrooms, garage, contact number, service charge included/not, nearby, pets allowed/not, direction facing, tenant type, preferred visiting time, etc.] through this app which will be stored by the admin. He can also upload the pictures of his appointment through this app so that the tenant can have a visual idea of his [landlord] house. Moreover, after getting an notification from the tenant, the landlord can see the information of the tenant and store all the transaction history of payment of a tenant.

Tenant: The tenant will search the house according to his/her needs in the option provided by the app. The result will be shown via list view in the portal. He will also get notifications about vacancies houses for rent wherever he will be stayed. His/her liked houses will be saved in the Liked House list as history. He can also decorate the house virtually, view the house in google map, AR view and manually, contact with the landlord to confirm for rent and give payment using this app.

Admin: The administrator will take product data from the landlord and store it. The admin will also approve the search request asked by the tenant and display the results of the houses on the portal via list view. The main function of the admin is to only maintain the software and update it in favor of the users whenever necessary.

2.2 User Needs

Understandable language: The user may have problem understanding language [English/Bangla]. For this, the app will be given the option to change the language so that the user can use the app easily.

Easily understandable app structures: The app will be arranged in such a way that the users find this app very friendly and usable. For example, if an user wants to do a function but can't find the right tools [buttons] or can't understand how to do that, he may lose interest in the app. That's why the product functions must be heavily user dependent.

Registration and log in: To secure users identity, at first they have to register [name, address, NID, email, contact number, picture, finger print, 2/3 secret questions]. After the registration is completed he/she have to log in again as well as 2 secret questions will be asked for the security purpose. Users can also get a membership by staying with us to get extra privileges.

Search: Search option is the most essential and most useful function for a user. Whenever a user encounters a problem, he can first look for help through it. This way, an user will be able to use the app more effortlessly.

    **Search for internal buttons:** If the user can't find any internal buttons, at first he will query using the search option. 

    **Search for houses:** The tenant will search the houses according to his/her needs. The result will be shown via list view in the portal. 
               
                **Location wise:** The tenant can search his house only location wise. 
                         
                          **Residential wise:** The tenant can search his house residential wise [private/apartment/duplex]. 
                         
                          **Range wise:** The tenant can search his house his range wise. 
                         
                          **House size wise:** The tenant can search his house house size wise [square/feet or square/meter]. 
                         
                          **Bedroom number:** The tenant can search his house bedroom number wise.

Notifications: Wherever a tenant will be stayed/located, notifications of the vacancies houses for rent in that particular area will be shown. When a tenant searches his requirements through app, the app will also show some suggest houses which can be suitable for him depending on his requirements.

Communication: This rental management system app will build a communication between the tenant and the landlord through various medium.

    **Message:** The tenant can message the admin for additional queries about the houses. He can also send message the owner for confirmation of renting.

   **Contact number:** The tenant can also contact with the landlord through admin in case of emergency.

   **Email:** The tenant can also send an email to the admin for any queries. 

   **Live chat:** The tenant can also chat with the admin live if he faces any problem in our app and he can also ask for help.

Pay bill: The tenant can pay all the bills including house rent from this platform.

 **How to pay:** Payment procedure will be given as a pdf to help the tenant. 

 **Pay now:** The tenant will pay his rent through Bkash using this app.

Change currency: Tenant can pay their bill in any currency[tk/dollar].

   **How to change:**Change procedure will be given as a pdf to help the tenant. 

   **Change now:** This will change the currency in tk and show it in Bkash.

Security: The first demand of a user is to insure his security.

  • The personal information of a user provided by him must be secured [privacy].

  • The admin must verify the user's information like the given NID, email address valid or not during registration.

  • The user may have face deception from the landlord/tenant [fraud]. So the information provided by the users must be reliable and accurate. The admin must insure that by verifying through finger print/face recognition.

  • The landlord must be informed by the admin about the previous address/background of the tenant.

  • The house rent confirmation and cash transaction/payment methods must be faithful/loyal. After the cash transaction has completed the admin must provide a valid receipt to the tenant.

  • After log in using email and password, the users may be asked 2/3 secret questions by the admin while entering the app so that different person can't use his profile. Those questions will be generated by the user himself during registration.

Help:

**Online:**

    **Voice assistant:** If any new user face any difficulties finding our tools/buttons in the app, this voice assistant will help him/her how to use this app, where to find the buttons, how he/she have to fulfill his/her requirements. 

    **Search/ask questions:** Some frequently asked questions by the users will be given in the search/ask questions option so that the user can easily find his answer. 


**Offline:**

     **Pdf/slideshow: **The product will provide users with in-app slideshow instructions to run the users through the basics which he can download. 

     **Short video:** The product will provide users a short video tutorial demonstrating the final software product which he can download. 

Settings:

Profile: The personal information like name, address, NID, finger print, contact number etc. of a user will be shown in his/her profile. The users can change/update those.

Privacy: Some personal information like NID, contact number, finger print etc. of a user can be hide.

Color: The user can also change the background color of the app.

Liked houses: The houses the tenant liked will be save as a history so that he can find those whenever he wants.

Feedback and Ratings: The user can give his feedback about the app. He can also rate the app.

Complain: The users can also complain about anything about his apartment through this app.

Alert notification: The tenant has to upload all his information and document through this app before 1 month of rent a house.

2.3 Operating Environment

Platform: Android app.

Operating System: Any system that supports a modern web browser. For this project, we are using windows 10. Software: Android studio.

Database Configuration: Google firebase/xxampp/wrokbench.

2.4 Constraints

  • The developed system must work in both window and Linux.

  • The implementation language must be in java.

  • This problem must be solved in 2 months with the given amount.

  • User’s current training/education level must be given.

2.5 Assumptions

  • The users can understand English/Bengali language.

  • The users have latest smart phone/tab.

  • The application will be used mostly on high-end or latest phones as for a few years as the hardware requirement can only be met on those phones.

  • Phones with good camera will be providing the best performance as plane detection depends on the picture quality of the camera.

  • Proper browser should be used for the web app and a stable internet connection is required.

  • Users have some basic ideas of operating this kind of app.

Chapter 3

Requirements

3.1 Functional Requirements [User Story]

1. As a new user

I want to register my account

So that, I can get benefited by this app.

  • Confirmation/Acceptance:

–Open the application or website

–Click on Registration

–Enter all the information

–Click on Register

(a)Success

-“Remember me” ticked – store cookie/automatic login next time.

–“Remember me” not ticked – force login next time.

(b)Failure

–Email not match with regex, show error: Please provide a valid email

–Password is less than 6 digits, show error: Password must include at least 6 digits time.

–Any field left blank, show error: All the fields must be filled up.

–User type not selected, default type will be buyer.

2. As a registered user

I want to change my password

So that, I can keep my account secure.

  • Confirmation/Acceptance:

–Open the profile tab

–Click on Setting

–Click on ChangePassword

–Enter the new password

–Enter the old password

–Click on Save

(a)Success

•“Congratulations!

your password has been changed. Thanks!” - pop up will show.

(b)Failure

•Old password may not match with the given password [now], show error: Please provide your old password correctly.

•New password is less than 6 digits, show error: Password must include at least 6 digits time.

•Any field left blank, show error: All the fields must be filled up

3. As an ancient user

I want to set privacy on my essential personal information

So that, I can keep my personal information secure.

  • Confirmation/Acceptance:

–Open the profile tab

–Click on Setting

–Choose the information you want to hide

–Click on Privacy

–Set privacy as only me

–Click on Save

(a)Success

•Change has been successful - pop up will show.

(b)Failure

•Some fields can’t be hide, show error: You can’t hide this information. Please select another one.

•Any field left blank, show error: All the fields must be filled up

4. As a user

I want to get a receipt of money transaction

So that, I can insure that the payment process is reliable and protected.

  • Confirmation/Acceptance:

–Open the PayNow option

–Click on Bkash

–Enter your Bkash ID

–Enter the amount

–Enter your password

–Press and hold on Send money

–Transaction receipt will be shown

(a)Success

•Money transaction has been successful - pop up will show.

–A receipt will show with a option if the user wants to print it or not.

(b)Failure

•Invalid Bkash ID / password, show error: Please check your Bkash ID/password again.

•Internet connection lost, show error: Please check your internet connection.

•Any field left blank, show error: All the fields must be filled up.

3.1.1 Tenant perspective

1. As a user

I want to search for house

So that, I can easily find my favorite house with location.

  • Small Sub User Story: As a registered tenant I want to be recommended houses So that, I can easily find my intended house with my given location.

  • Confirmation/Acceptance:

–Open the home page

–Click on Tenant

–Enter the location in the search option

–Click on Search

(a)Success

•Results will be shown via list view in the portal.

(b)Failure

•Invalid location, show error: Please enter the location again.

•Search field left blank, show error: The field must be filled up.

2. As a user as tenant

I want to see the houses in AR view

So that, I can see the product in real time with the camera of the mobile app.

  • Confirmation/Acceptance:

–Open the tenant page

–Open the house view details page

–Click on ARview

–Exit from the view

(a)Success

•House will be shown as AR view.

(b)Failure

•Not enough light, show error: The environment doesn’t have enough light to find a surface.Please wait till environment changes, before showing the product.

•Internet connection lost, show error: Please check your internet connection.

3. As a user as tenant

I want to get the details of the house

So that, I can get some idea about that house.

  • Confirmation/Acceptance:

–Select the house

–Click on ViewDetails

(a)Success

•Detailed information of that house will be shown.

(b)Failure

•House details not downloaded in time limit of 30 seconds, show error: Couldn’t connect to server, please check your internet connection and try again later.

-Appear Retry button.

4. As a user

I want to discuss with other people which location is good for living

So that, I can get nearer hospital facilities and can educate my children by admitting into good school.

  • Confirmation/Acceptance:

–Open the home page

–Enter the location

–Click on Search

(a)Success:

•Result will be shown

(b)Failure:

•Invalid address, show error: Couldn’t connect to server, please check your internet connection and try again later.

5. As a user as a tenant

I want to decorate my home

So that, my house looks good and organised.

  • Confirmation/Acceptance:

–Open the house details page

–Click on Decorate

(a)Success:

•Result will be shown

(b)Failure:

•Weak internet, show error: please check your internet connection and try again later.

6. As a user as a satisfied tenant

I want to rate this app

So that, others can know more about this and get their desire home.

  • Confirmation/Acceptance:

–Open the demo page

–Click on Rate

–Click on Enter

(a)Success:

•Rating is completed

(b)Failure:

•Invalid source, show error: Please log in first.

7. As a user as tenant

I want to convert dollar into tk

So that, I can see how much i have to pay.

  • Confirmation/Acceptance:

–Open the tenant page

–Enter the rent in dollar

–Click on Convert

–Exit

(a)Success:

•Converted Successfully

(b)Failure:

•Could not convert, show error: Please choose the proper currency.

8. As a user as tenant

I want to get a membership card

So that, I can get all the privileges.

  • Confirmation/Acceptance:

–Open the login page

–Click on Membership

–Exit

(a)Success:

•Successfully become a member

(b)Failure:

•Invalid source, show error: Please try again.

9. As a user

I want to see a flat which is faced in south

So that, I can get proper sun light and fresh air.

  • Confirmation/Acceptance:

–Open the home page

–Enter the location

–Click on Search

–exit

(a)Success:

•Result will be shown

(b)Failure:

•Invalid address, show error: The house you are looking are not available in this region please enter the address again.

3.1.2 Landlord perspective

1. As a user as landlord

I want to send reminders to tenants about upcoming payments and due date

So that, it can automatically calculate and charge late fees and notify the tenant of late/missed payments.

  • Confirmation/Acceptance:

–Open the reminder page

–Click on Reminder

–exit

(a)Success

•Successfully send alert message.

(b)Failure

•Weak internet connection, show error: Please check your internet connection and try again.

2. As a user as landlord

I want to show some new flats which is in minimum range

So that, any family can afford it.

  • Confirmation/Acceptance:

–Open the tenant page

–Enter the range

–Click on Search

–exit

(a)Success

•Result will be shown.

(b)Failure

•Invalid range, show error: Please try again.

3. As a user as a landlord

I want to verify some information of tenants

So that, I can prevent my land from crime and ensure the security.

  • Confirmation/Acceptance:

–Open the interested request from tenant

–Click on Confirm or Decline

–exit

(a)Success

•Successfully verified.

(b)Failure

•Invalid result, show error: Could not verified and Please try again.

4. As a user as a landlord

I want to give my land to any married couple or a family

So that, strangers can not access my land unnecessarily.

  • Confirmation/Acceptance:

–Open the interested request from tenant

–If the tenant type matched Click on Confirm else Decline

–exit

(a)Success

•Command successful.

(b)Failure

•Not successful, show error: Please try again.

3.1.3 Admin perspective

1. As an admin

I want to view the admin dashboard

So that, I can update some records if necessary.

  • Confirmation/Acceptance:

–Change order status

–View order details

–Check for any complain

–Click on Save

–Exit that page

(a)Success

•Updated successfully.

(b)Failure

•No order to view.

2. As an admin

I want to view the category menu

So that, I can add new, remove or edit existing categories if necessary.

  • Confirmation/Acceptance:

–Create a new category

–Edit existing category

–Remove existing category

–Click on Save

–Exit that page

(a)Success

•Updated successfully.

(b)Failure

•No category to edit/delete

•Category Limit reached, no more category can be added.

3. As an admin

I want to view the product menu

So that, I can add new, remove or edit existing products if needed.

  • Confirmation/Acceptance:

–Create a new Product

–Edit existing Product

–Remove existing Product

–Add product description

–Add 2D images of the product

–Click on Save

–Exit that page

(a)Success

•Updated successfully.

(b)Failure

•No product to edit/delete

•Product capacity reached: no more products can be added!

•Invalid file uploaded for 2D image: Please upload a valid file!

•File size too big: File is too large to upload

Non Functional Requirements

Performance Requirements

The requirements in this section provide a detailed specification of the user interaction with the software and measurements placed on the system performance.

  • Prominent search feature

TITLE: Prominent search feature

OVERVIEW: The search feature should be prominent and easy to find for the user.

PURPOSE: In order to for a user to find the search feature easily.

  • Usage of the search feature

TITLE: Usage of the search feature

OVERVIEW: The different search options should be evident, simple and easy to understand.

PURPOSE: In order to for a user to perform a search easily.

  • Usage of the result in the list view

TITLE: Usage of the result in the list view

OVERVIEW: The results displayed in the list view should be user friendly and easy to understand. Selecting an element in the result list should only take one click.

PURPOSE: In order to for a user to use the list view easily.

  • The reliable accuracy of the information

TITTLE: The reliable accuracy of the information

OVERVIEW: All of the provided information by the system must be accurate, reliable and trustworthy to the users.

PURPOSE: In order to for a user to have faith in our system and get accurate information.

  • Response time

TAG: Response Time

GIST: The fastness of the search

SCALE: The response time of a search

METER: Measurements obtained from 1000 searches during testing.

MUST: No more than 2 seconds 100% of the time.

WISH: No more than 1 second 100% of the time.

  • System dependability

TAG: System Dependability

GIST: The fault tolerance of the system.

SCALE: If the system loses the connection to the Internet, the user should be informed.

METER: Measurements obtained from 1000 hours of usage during testing.

MUST: 100 percent of the time.

Safety Requirements

To ensure no data is lost in case the user decides to change devices or if the user's device is extensively damaged all data will be stored in cloud storage. This will allow safe storage and easy accessibility from anywhere.

Security Requirements

The System shall not disclose any personal information about the users. The Application shall not grant access to an unauthorized user and the Application shall not communicate with any other devices or servers while in use by the user.

Software Quality Attributes

The requirements in this section specify the required reliability, availability, and maintainability of the software system.

Business Rules

The system will have two different editions based on the business models.

  • Freemium :

This version of the app which will be available for the general masses will contain all the basic features described above. This specific version will also contain advertisement in forms of banners or short video clips. User will be able to remove advertisement buy purchasing the add free subscription which will be offered after successful registration to the app.

  • Enterprise edition:

This version will be designed specifically for small or large scale businesses and will be subscription based. In addition to the basic features the version will provide extra features such as multiple user access, finance analytics etc.

Appendices

Appendix A

Glossary

API: Application Protocol Interface. This is the part of a program that lets other programs or services interact with the data in the former and viceversa.

Framework: It is like the base of a program that provides generic functionality but can be custom built for specific purposes.

Backend: The part of an app service that works behind the scenes away from the user's device, usually in the cloud (server computer owned by the company)

Proprietary: Owned by that particular company/person etc.

Appendix B

Analysis Models

We plan to include class diagrams after the prototype is finished.