Skip to content
Zhiyuan-Wei edited this page Oct 11, 2023 · 22 revisions

High Level Analysis

High-Level Context Diagram

After selecting the "Finding roommates" option, the user will operate as a renter. The renter can create a roommate recruitment notice, specifying the duration of the notice, the location of the house, the number of desired roommates, and upload relevant pictures and basic information about the house.These options will be implemented through built-in selection boxes, and the renter can further add specific details through additional text descriptions. After posting a room listing, renters will get a list of recommended users based on the content of the listing, and the list will be arranged in decreasing order of matched score.

After selecting the "Find a house" option, the user will operate as a rentee.They can use filters to select their preferred location and duration of the lease. The search results will be displayed based on rentee’s preferences and the matching level between the rentee's information and the preferences of renters.The rentee can initiate a conversation request with the renter to request further communication and specific details.

Administrative access is achieved through a special login account. App administrators have the ability to make any consistent change in the database through the admin portal e.g. delete rental listings that do not meet community requirements. Admins can also sort the listing in specific order.

Epics

Manage Listings - Renter & Admins

Renter could manage and modify their listing anytime after them posted it. Renter need to login with password, and they can only modify the listings created by them.

  • As a renter, I want to login with my account name and password
  • As a renter, I want to click the 'Find a roommate' button to switch to renter mode.
  • As a renter, I want to post a listing so that rentee could view it.
  • As a renter, I want to modify my listings to change related information.
  • As a renter, I want to delete my listing when I do not need a roommate anymore.

Admins could manage all the listings that have been posted yet.

  • As a admins, I want to login with super account to work as Administrater.
  • As a admins, I want to inform the renter and delete listing when it is inappropriate for our community.
  • As a admins, I want to sort the list of listing so that I can search for the desired listing.

Account registration and management - Renter & Rentee

Renter could login with his account name and password. Clicking the button 'Find a roommate' to work as renter.

  • As a renter, I want to login with my account name and password
  • As a renter, I want to edit the related information in my profile.
  • As a renter, I want to verified my account
  • As a renter, I want to upload and modify the profile picture.
  • As a renter, I want to reset my password.

Rentee could login with his account name and password. Clicking the button 'Find a house' to work as rentee.

  • As a rentee , I want to login with my account name and password
  • As a rentee , I want to edit the related information in my profile.
  • As a rentee , I want to verified my account
  • As a rentee , I want to upload and modify the profile picture.
  • As a rentee , I want to reset my password.

Connnected and interacted with renter/rentee - Renter & Rentee

Rentee could initialize a request to have a conversation with renter. After renter accept it, rentee could talk with renter.

  • As a rentee, I want to iitialize a request to hvae conversation with renter, so that I can communicate with renter.
  • As a rentee, I want to chat with renter, so that I can learn about the related information in detail.

Renter could accept or reject the conversation request from rentee.

  • As a renter, I want to accept or reject the conversation request from rentee.
  • As a renter, I want to chat with rentee, so that I can show related information of my house in detail.

Personality Assessment Before Posting a Listing/Sending Match Request to a Listing - Renter & Rentee

Search and Interact with Listings - Rentee

Rentee could search for, sort and open the returned listings.

  • As a rentee, I want to serach for listings under customized conditions, so that I can see only the listings I want.
  • As a rentee, I want to sort listings according to some indexes, so that I can see the most suitable listings without wasting time on unsuitable ones.
  • As a rentee, I want to open listings and see the contents so that I can judge whether the room is suitable for me and connect to the renter.

Manage Users - Admin

Perform all consistent CRUD operations in database - Admin

High Level Design

Registration and Login

We plan to use existing Django libraries built for user registration and login

register drawio (1) login drawio

Manage Listings for Renter

RenterManageListingsHLD

Manage Listings for Rentee

RenteeManageListingsHLD

Renter - Rentee Interaction

RenterRenteeInteraction