Skip to content
Permalink
02ea1ad2dc
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
70 lines (47 sloc) 3.68 KB
# Frequently Asked Questions
Build a knowledge-base system where users can post and answer questions. You can choose the topic. Some suggestions might include University procedures or NodeJS.
## Stage 1
The core functionality consists of three screens:
1. The home screen should display a list of the questions that users have asked. This should include:
1. The title
2. The summary
3. The status (has the question been answered)
2. There should be a button or link on the homepage that takes users to a screen where they can ask their own questions. They should supply:
1. A brief title
2. A short multi-line summary
3. A detailed, formatted, multi-line description of the question
4. an optional image (screenshot or photo)
3. If the user clicks on one of the titles on the homepage they should be taken to the details page which includes the following features:
1. The title, summary and description of the problem
2. A multiline input box to allow users to answer the question.
3. If the logged-in user was the one who posted the question they should be able to flag one of the answers as correct.
## Stage 2
The intermediate tasks require you to make changes to the functionality:
1. To help users locate answers you will need to implement keyword tags. Each question must provide between one and five keywords. The user should be given the choice of choosing any existing tag or, if the one they one is not available, be able to add their own.
2. The homepage should include a list of all the keywords currently used in the FAQ and, for each keyword, the number of questions that used that tag. Clicking on one of these should filter the list of questions to only include those that used that tag.
3. If someone posts an answer to a question posted by a user they should receive an email notification which includes:
1. The original question
2. The proposed answer
3. A link to the question details page
## Stage 3
Now you will need to implement a gamification points system:
1. Any user that posts a question receives 5 points per answer posted by other users (only once per user).
2. Any answer flagged as correct wins the poster 50 points.
3. When a user logs in they should see their score on the home screen.
4. The home screen should display the names of the users with the 10 highest scores.
5. The avatar of a user with one of the top 10 scores should include a gold star.
----
## 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 selecting an avatar image, the user should be given the option of using the device camera (if available).
2. Each question should be flagged with the location of the person posting (country and region only).
3. Each question should be a map showing the locations where the original question was posted from as well as where the answers were from. Clicking a pin should show their name, avatar and the first part of the message. Selecting this should display the entire message.
### 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)