Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
# 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.
---
## Testing
The system should include the data for at least 10 valid issues.
You are required to create the following accounts to allow the system to be tested. All accounts should have the password `p455w0rd`:
1. `user1`
2. `user2`
3. `council`
---
## Stage 1
The core functionality consists of three screens.
### Part 1
The home screen should be viewable whether a `user` is logged in or not and should display all the issues that have been flagged by all the `users`, this should include:
1. A brief title
2. The location of the issue
3. The status of the issue, one of the following:
1. new
2. verified
3. resolved
### Part 2
if a `user` is logged in they should see a link or button on the home screen to allow them to add a new issue, this should include:
1. The brief title.
2. The location of the issue (provided as a valid postcode).
3. A detailed, multi-line, formatted description.
4. An optional photo uploaded from their computer.
### Part 3
If a logged-in `user` selects one of the issues on the home screen they should be taken to an **issues detail** screen that should display:
1. The information provided by the `user` raising the issue (see last point)
2. A **resolve** link or button that allows a user to take charge of resolving the issue and this should update the issue status displayed on the home screen. This link or button should not be visible to the `user` who raised the issue.
3. If a `user` has clicked on the **resolve** link or button, the `user` who raised the issue should see a **resolved** link or button so they can confirm the issue has been resolved. This should update the issue status displayed on the home screen.
---
## Stage 2
The intermediate tasks require you to make changes to the functionality:
1. 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)
2. The local `council` would like to use this app to allow them to prioritise the work the repair teams are scheduled to do:
1. 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.
2. Any jobs fixed by this team should be flagged as resolved by the `council`.
---
## Stage 3
1. Some of the users will engage with the system. To encourage this you will be implementing gamification elements:
1. Each time a `user` reports or verify an issue they get 10 points.
2. Each time an issue is resolved as fixed by the original `user`, they gets 20 points and the `user` who fixed the issue gets 50 points.
3. The home page should display the top 10 `users` with the highest scorer at the top.
2. Each time an issue is fixed, an email should be sent to the `user` who raised the issue, this should include:
1. The issue name, description and photo.
2. A link to the details page.
3. A button to click to resolve the issue.
----
## Extras
In some assignment briefs you are given marks for the appropriate use of media and using sensors built into the user's device.
### Sensors
In some assignment briefs you are given marks for the appropriate use of sensors and sensor data. You should be implementing:
1. When an issue is added, instead of the location being added manually this should be based on the user's current location.
2. When the user is prompted to upload a photo they should be given the option of using the device camera (if available).
3. The home screen should display a map showing the locations of all the unresolved issues:
1. Clicking on a pin should show a summary bubble showing the brief title and the person who flagged it.
2. Clicking on this should send the viewer to the issues detail screen.
### Media
In the requirements listed above you need to provide the user with the ability to upload photos. For the extra media marks you will need to expand this by:
1. Providing the user with the choice of uploading photos, video clips or audio clips.
2. Giving users the option to directly capture images, audio and video clips using the built-in camera and/or microphone if available.
### Data
There are lots of online RESTful APIs you can make use of when developing this system. You should consider:
1. [LocationIQ](https://locationiq.com)