The following table outlines the functional requirements for the Cleanwarts application, where students join houses and participate in cleaning tasks around the university campus.
| Requirement ID | Description | User Story | Expected Behavior/Outcome |
|---|---|---|---|
| FR001 | User Registration & House Join | As a student, I want to register and select my house so I can start contributing to my house's points. | The system should allow users to register by entering name, email, mobile number, and selecting one of the four Hogwarts houses. House choice should be locked. |
| FR002 | Login / Authentication | As a returning student, I want to log in so I can access my account and continue contributing. | The system should allow returning users to log in using email/password or OTP and fetch their house and profile info. |
| FR003 | House Chatroom | As a user, I want to chat with members of my house so we can coordinate cleaning efforts. | Each house should have a dedicated real-time chatroom visible only to its members. Messages should display sender name and timestamp. |
| FR004 | View Campus Map | As a user, I want to see a map of the campus with zones marked as clean or dirty so I know where to clean. | The system should show a map with color-coded markers (e.g., red = needs cleaning, green = cleaned). |
| FR005 | Request a Zone to be Cleaned | As a user, I want to request a cleaning task if I see an area that needs attention. | Users can click a “Request Cleaning” button on the map and submit a title, description, and pinpoint a location. Red marker appears for that zone. |
| FR006 | Upload Before/After Images | As a user, I want to submit proof of cleaning a zone so that we earn points. | Users select a zone from the map and upload before/after images of the cleaned area. Data is stored and set to "pending review". |
| FR007 | Task Verification (Admin/Manual) | As an admin, I want to approve or reject submitted cleaning tasks so that points are awarded fairly. | Admins can view submitted photos and mark tasks as "approved" or "rejected". Approved tasks change marker to green and trigger point updates. |
| FR008 | House Points Leaderboard | As a user, I want to see which house is leading so I can contribute more to help my house win. | The system should show a live leaderboard ranking all houses based on accumulated points. |
| FR009 | Individual Leaderboard | As a user, I want to see top individual contributors within my house so I get recognition. | The system should display a leaderboard of users within a house, sorted by individual points. |
| FR010 | Home Dashboard | As a user, I want a central place to see my house score and access other features quickly. | After login, the user sees their name, house, current house score, and buttons for Map, Chat, Task Upload, and Leaderboards. |
| FR011 | Magic-Themed UI/UX | As a user, I want the app to feel magical and Hogwarts-inspired so it’s fun and engaging. | UI should include house colors, Hogwarts-style font (e.g., MedievalSharp), sparkles, and transitions that fit the theme. |
| FR012 | View My Completed Tasks (Optional) | As a user, I want to see a history of my verified tasks so I can track my contributions. | A personal "My Tasks" page shows a list of zones the user has cleaned, with before/after images and date. |
| FR013 | Logout | As a user, I want to securely log out of my account. | The app should allow users to log out and clear session data, redirecting to the login page. |