FUNCTIONAL REQUIREMENTS:
- Users
- F1: The system allows users to self-register.
- F2: The system allows users to log in with authentication.
- F3: The system allows users to log out.
- F4: The system allows users to change their passwords.
- F5: A registered user can delete their account.
- F5.1: When deleting an account, all associated data is removed.
- F6: The system saves each user’s basic information, including full name, date of birth, phone number, and a brief description.
- F6.1: A user can edit their basic information.
- F7: Unauthenticated users can search for available properties.
- F8: Authenticated users can save advertisements to their "favorites" list.
- F9: Authenticated users can create advertisements for their own properties.
- F10: Authenticated users can update their own property advertisements.
- F11: Authenticated users can delete their own property advertisements.
- F12: Authenticated users can view their own advertisements list.
- F13: Authenticated users can view their list of favorite advertisements.
- Advertisements
- F14: Each advertisement must include a title, property picture(s), description, type (rent/sell), price, square meters, location, number of rooms, floor, total floors (if applicable), advertisement reference, state, owner, and a contact button.
- F15: The owner of an advertisement can change the state to "available," "reserved," or "sold/rented" directly from the "own advertisements" list.
- F16: When creating an advertisement, the system computes a recommended price based on the advertisement’s characteristics.
- F17: The system calculates the recommended price using the database, searching for properties with similar surface, number of rooms, and area.
- F18: The owner can click on a button when creating/updating the advertisement to consult the recommended price.
- Property Search
- F19: Users can search for properties by selecting the type (rent/sale).
- F20: Users can search for properties by selecting the location (county).
- F21: Users can filter search results by specifying a price range.
- F22: Users can filter search results by specifying a number of rooms range.
- F23: Users can filter search results by specifying city area(s).
- F24: A logged-in user can mark an advertisement as "not interested," moving it to the end of the result list.
- F25: The logged-in user can unmark the "not interested" option to set the advertisement as normal.
- F26: Sold/rented properties are kept in the database but do not appear in search results.
- F27: Available properties are shown before reserved ones in the search result list.
- F28: The system displays available properties not marked as "not interested," followed by reserved properties not marked as "not interested," then available properties marked as "not interested," and finally reserved properties marked as "not interested."
- F29: Users can click on an advertisement in the list to view its details.
- F30: When viewing an available advertisement, a user can click on the "contact" button to show the owner's phone number.
- F31: When viewing an available advertisement, the user can consult the recommended price of the property.
- F32: When viewing an available advertisement, the user can click on the owner's profile and view their profile data if the owner has active advertisements.
- F33: The system shows a list of 5 recommended properties on the advertisement page based on similarity.
- F34: The system calculates similarity using price, number of rooms, and surface area.
- Favorites & Past Searches
- F35: A logged-in user can add an advertisement to their favorites.
- F36: Sold/rented advertisements do not appear in the favorites list.
- F37: A logged-in user can remove a favorite advertisement.
- F38: The system saves the last 5 searches of a logged-in user.
- F39: The user can click on a past search to directly access the result list.
- General
- F40: The home page must display account access (login/logout and account details).
- F41: The home page must display a search box for advertisements.
- F42: Logged-in users can access their own advertisements list with one click.
- F43: Logged-in users can access their favorites list with one click.
- F44: Logged-in users can access their list of past searches with one click.
- F45: The system uses secure authentication protocols such as password encryption.
- F46: Unauthorized users cannot access other users' data.
Non-Functional Requirements •NF1: The system should display confirmation messages for successful actions (e.g., registration, login, ad creation) . •NF2: The system should include basic error handling, showing clear messages like “Invalid login details” etc. •NF3: Passwords should be hashed before storage to ensure basic security. •NF4: The user interface should have a consistent layout and color scheme across all pages •NF5: Form fields should have labels or placeholder text that disappears when typing, making forms user-friendly and easy to fill out. •NF6: All main buttons (e.g., "Submit," "Save") should be prominently colored to stand out and be easily identifiable.
Scrum Checklist:
- Delivering working, tested software every 4 weeks or less
- Delivering what the business needs most
- Process is continuously improving
- Team has a sprint backlog
- Demo happens after every sprint
- Team members sit together
- Timeboxed iterations (1 week)
- Have sprint planning meetings (we plan the next sprint at the end of the previous sprint)
- Retrospective happens after every sprint
- Have Definition of Done (DoD)
- Team has all skills needed to bring backlog items to Done
- Team members not locked into specific roles
- Iterations that are doomed to fail are terminated early
- Everyone on the team participates in estimating
- Estimate relative size (story points) rather than time
- Team has a Scrum Master (SM)
- PBL items are broken into tasks within a sprint and tasks are estimated
Don’t follow these practices:
- Clearly defined product owner (PO)
- Daily Scrum happens (we do it twice a week)
- PO has a product backlog (PBL) : so this a new project and there are no previous versions so that is why PO backlog is not needed
- Team has a sprint burndown chart: the project scope is limited and the team is small so all work is divided and done in every sprint
- You have a Chief Product Owner (if many POs) : we dont need a CPO
EPICS:
User Authentication and Profile Management. Requirement Numbers: FR 1.1, FR 1.2, FR 1.3, FR 1.4, FR 1.5, FR 1.6, FR 1.7, FR 1.8, FR5.7, NF6
Advertisement Management. Requirement Numbers: FR 1.10, FR 1.11, FR 1.12, FR 1.13, FR 1.14, FR 1.15, FR 2.1, FR 2.2, FR 2.3, FR 2.4, FR 2.5
Search and Filter Functionality. Requirement Numbers: F3.1, F3.2, F3.3, F3.4, F3.5, F3.6