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

Survey Tool

A tool that can be used to carry out surveys. All questions use the same scale that is used by the University Module Surveys. All surveys and results should be stored in a database. For the purposes of this project there should be at least 5 sensible questions.

  1. Strongly Disagree (1 point)
  2. Disagree (2 points)
  3. Neither agree nor disagree (3 points)
  4. Agree (4 points)
  5. Strongly agree (5 points)

Testing

You are required to create the following accounts to allow the system to be tested. All accounts should have the password p455w0rd:

  1. student1
  2. student2
  3. student3
  4. student4
  5. admin (this is only needed if you attempted the stage 3 functionality).

Students 1-3 should have completed the survey(s) but user 4 should have not attempted any of them.


Stage 1

The core functionality consists of three screens.

Part 1

The home screen should display details of the survey. Make sure this data is being stored in a database and is not just static text on the page:

  1. The name of the survey
  2. A short summary paragraph
  3. If the user has not completed the survey there should be a start button or link
  4. If the survey has been completed the screen should show the score.

Part 2

When the user starts a survey they should be shown the first question. At the bottom of the screen there should be a next button or link which loads the next question into the same template. On the last question screen the link or button should say finish and this should take the user back to the home screen.

Part 3

Clicking on a survey that has already been complete should display a single screen showing the survey questions and the answers the user gave together with the total score at the end. It should not allow the user to take the survey for a second time.


Stage 2

The interediate tasks require you to make changes to the functionality by supporting multiple surveys:

  1. The home screen should display a list or grid of all the surveys that are currently open with the following information being displayed. Each survey should have:
    1. A release date (the survey link should be disabled or hidden until this date).
    2. A close date (the survey link should be disabled or hidden after this date).
    3. The status of the survey (not started, in progress, completed).
    4. Details of how many users have completed each survey.
  2. After the close date clicking on a survey should show how many users chose each response for each question. This should be displayed as a bar or pie chart for each question.

Stage 3

  1. The admin user should be able to add and delete surveys.
  2. The admin user should be able to add, edit and delete questions in each survey.
  3. The survey should be hidden from participants whilst it is being created and editied.
  4. Once a survey is ready it can be made public but at this point the questions can't be edited.

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 a person completes a survey it should capture their geo-location and store it with the responses.
  2. The person organising the survey should be able to see a map showing the locations of those who completed it:
    1. Clicking on a pin should show a callout with the person's name and photo.
    2. Clicking the callout should take the quiz organiser to a page displaying that person's responses.

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