Task breakdown - katkes/better_call_soen_soen341projectF2023 GitHub Wiki
Broker
Backend:
-
Broker shall request property visit through a form on the website and receive confirmation when the property visit request is processed and delivered to the posting's user (seller/landlord).
-
Broker shall create a property listing with information about the property.
-
Broker shall edit and/or remove a property listing upon need.
-
Broker shall receive offers made on postings by other users.
-
Broker shall submit offers to properties and receive confirmation when the request is processed by the server and received by the posting's user (seller/landlord).
-
Broker shall receive offers made on postings they created.
-
Broker shall have access to a reschedule visit option allowing them to request an updated visit time, and this shall be received by the posting's user.
-
Broker shall save listing for later viewing.
Frontend:
-
Broker submits an offer on a posting and shall receive confirmation when the offer is processed by the server and delivered to the posting's user (seller/landlord).
-
Broker shall search through all the postings available on the site's database and filter through them based on size, price (a range from max to min), location, number of bedrooms (X rooms or more), number of toilets, amenities available (air conditioning, fireplace, pool, patio, Wi-Fi, and more details to be determined later), type of property. The filter must update dynamically within 2 seconds, and the search may update dynamically but shall have a process time of no more than a second.
Database:
-
Database must store 4 different collections of data, profiles, property listings, visit requests, offers made on postings/listings.
=>Profiles: -Database must store each user's information in a unique profile (name, phone number, email, password and status(renter, buyer, broker or administrator ), favorites).
-Profile shall contain 3 associated lists/collections (a newly created profile will has no relation with any other collection of data) of data: listing, visit requests and offers.
=>Property listings: -Database must store each Property listings uniquely. Listings includes photos, address, size, amenities, number of bedroom/toilets, type, status(for rent or for sale) and association to the user who made listing.
=>visit requests: -Database must store each visit request uniquely. Visit requests must contain a date and a time. Visit requests have 2 associations, a listing and profile of the user who initiated the request.
=>offers: -Database must store each offer uniquely. Offers can only be made on listings with a for sale status. Offers contain a price and have 2 associations, a listing and profile of the user who initiated the offer.
Homebuyer
Backend:
-
Search for the property
- a. Implement the logic to process user-entered specifications (location, size, etc.) and return a list of relevant properties.
- b. Handle filter changes and apply them to the existing list of properties, returning an updated list.
-
Request a visit to a property
- a. Implement the functionality to handle visitation requests, including storing the request details and notifying the relevant parties.
- b. Send confirmation notifications for visitation requests.
-
Search for brokers
- a. Implement the logic to retrieve and display a list of registered brokers.
- b. Retrieve and display properties associated with a selected broker.
Frontend:
-
Search for the property
- Create the user interface for entering property specifications and applying filters.
- Display the list of relevant properties based on the user's specifications.
-
Save favorites
- Create a user interface for favouriting and saving properties.
- Create a section for viewing favourited properties.
-
Request a visit to a property
- Design the UI for viewing a property and requesting a visit.
- Display confirmation messages for successful visitation requests.
-
Search for brokers
- Design the UI for searching and viewing registered brokers.
- Display the list of properties associated with a selected broker.
-
Mortgage Calculator
- Design the UI for entering income and accessing the mortgage calculator.
- Display the estimated monthly payments based on the user-entered loan amount and interest rate.
Database:
-
Property Data
- Store information about properties, including location, size, amenities, etc.
-
User Data
- Store user information, including favourited properties and visitation requests.
-
Broker Data
- Store information about registered brokers, including their associated properties.
-
Visitation Requests
- Store details of visitation requests, including property details, user information, and confirmation status.
-
Mortgage Calculator Data
- Store user-entered income, loan amount, and interest rate for calculating monthly payments.
Renter
Backend:
-
Search for the property
- a. Implement the logic to process user-entered specifications (location, size, etc.) and return a list of relevant properties.
- b. Handle filter changes and apply them to the existing list of properties, returning an updated list.
-
Request a visit to a property
- a. Implement the functionality to handle visitation requests, including storing the request details and notifying the relevant parties.
- b. Send confirmation notifications for visitation requests.
-
Search for brokers
- a. Implement the logic to retrieve and display a list of registered brokers.
- b. Retrieve and display properties associated with a selected broker.
Frontend:
-
Search for the property
- Create the user interface for entering property specifications and applying filters.
- Display the list of relevant properties based on the user's specifications.
-
Save favorites
- Create a user interface for favouriting and saving properties.
- Create a section for viewing favourited properties.
-
Request a visit to a property
- Design the UI for viewing a property and requesting a visit.
- Display confirmation messages for successful visitation requests.
-
Search for brokers
- Design the UI for searching and viewing registered brokers.
- Display the list of properties associated with a selected broker.
Database:
-
Property Data
- Store information about properties, including location, size, amenities, etc.
-
User Data
- Store user information, including favourited properties and visitation requests.
-
Broker Data
- Store information about registered brokers, including their associated properties.
-
Visitation Requests
- Store details of visitation requests, including property details, user information, and confirmation status.
System Administrator
-
Administrator shall create new accounts.
-
Administrator shall update information inside all user profiles.
-
Administrator shall read through all profiles on the website.
-
Administrator shall delete any profile.