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

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.


Testing

The system should include the data for at least 5 valid questions and each question must contain at least 3 answers containing sensible comments posted from from valid user accounts (see below).

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. user3

Stage 1

The core functionality consists of three screens:

Part 1

The home screen should be visible without needing to log in should display a list of the questions that users have asked. This should include:

  1. The title
  2. A short multi-line summary of no more than 250 characters.
  3. The username of the person asking the question.
  4. The status from the following:
    1. unanswered (no-one has provided an answer).
    2. answered (there is at least one answer provided).
    3. solved (the person asking the question has flagged an answer as correct).

Part 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 of no more than 250 characters.
  3. A detailed, formatted, multi-line description of the question.
  4. an optional image (screenshot or photo) that should be uploaded from their computer.

Part 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, formatted 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