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 be visible without needing to log in. If logged in the user should see a New survey link or button that takes them to the New Survey screen. Here they can create a new survey by completing the form and supplying the following data:

  1. The survey name.
  2. A multiline description of the survey that accepts markdown formatting.

Although not part of the form, the following data should be inserted into the database:

  1. The username of the currently logged-in user.
  2. The date and time the survey was created.

Part 2

Logged in users should see a My surveys link or button. This takes them to the My Surveys screen which lists all the surveys they have created. This should display for each survey:

  1. The name of the survey.
  2. The date it was created (but not the time).
  3. The number of questions in the survey (see below).

Next to each there should be an Add question link or button. This takes them to a screen where they can add a new question. Each question includes the following data:

  1. The question title.
  2. A multiline description of the question that accepts markdown formatting.

Although not part of the form, the following data should be inserted into the database:

  1. The id of the survey the question should be added to.
  2. The date and time the question was created.

Part 3

The Homepage should show the names of all the surveys created in the app. Against each survey name should be the number of questions in the survey.


Stage 2

Next to each survey on the Homepage should be a Take survey link or button. Clicking this should take the user to the Survey page. This is a single page that displays each question in the survey one after the other.

For each question it displays:

  1. The question name.
  2. The question description with any markdown replaced with html.
  3. Radio buttons for the 5 standard responses (see top of this page).

At the bottom of the page there is a Submit survey button or link. This processes and saves the survey data and returns the user to the Homepage.

If the user has completed a surveym the Take survey button should not be shown. Instead this should show the average score the user awarded during the survey (see top of this page for values).


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