Local Community
A local council wants to build a community hub to allow local residents to both raise issues and proactively help to solve them.
Stage 1
The core functionality consists of three screens:
- The home screen should display all the issues that have been flagged by the users, this should include:
- A brief title
- The location of the issue
- The status of the issue (new, verified, resolved)
- There should be a link or button on the home screen to allow a resident to add new issues, this should include:
- The brief title
- The location of the issue
- A detailed, multi-line, formatted description.
- An optional photo
- If a user selects one of the issues on the home screen they should be taken to am issues detail screen that should display:
- The issue details (see last point)
- An action link or button that allows a user to take charge of resolving the issue.
- The original poster should also see a resolved link or button so they can confirm the issue has been resolved.
Stage 2
The intermediate tasks require you to make changes to the functionality:
- A verify button that allows a user to verify that this is a valid issue (the button should be hidden from the user who initially posted the issue)
- The local council would like to use this app to allow them to prioritise the work the repair teams are scheduled to do:
- There should be way for users to be identified as council workers to be able to log in and see a list of the jobs in order of distance from their current location.
- Any jobs fixed by this team should be flagged as resolved by the council.
Stage 3
- Some of the users will engage with the system. To encourage this you will be implementing gamification elements:
- Each time a user reports or verify an issue they get 10 points.
- Each time an issue is resolved as fixed by the original reporter, the reporter gets 20 points and the person who fixed the issue gets 50 points.
- The home page should display the top 10 users with the highest scorer at the top.
- Each time an issue is fixed, an email should be sent to the person who raised the issue, this should include:
- The issue name, description and photo.
- A link to the details page.
- A button to click to resolve the issue.