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.
---
## Feature 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.
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.
> To demonstrate this feature and to prove that the form works correctly you will need to show that the data is being persisted correctly, either by running a database query or an API call depending on the platform and technology you are using.
## Feature 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 **Edit** link or button. This takes them to a screen where they can add and remove survey questions.
On this screen there should be an **Add question** link or button that allows for a new question to be added. This will prompt for 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.
As each question is added, its title should be displayed on the screen together with a **Remove** link or button. Clicking on this should remove the question from the screen.
## Feature 3
The home page should display a list of all the active surveys. If the user is logged in they should see a **Take survey** link or button but this should not be displayed of the user is not logged in or they have already taken the survey.
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.
At the top of the page the user should see the name of the survey and the description. If the description contains any markdown formatting this should be rendered as HTML.
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).
## Feature 4
When a user is logged in and viewing the **My surveys** page they should see a **Responses** link or button next to each survey. Clicking on this takes them to responses screen.
At the top of the screen they should see the title and description as well as the number of people who have takn the survey.
Under this, each question should be listed showing title, description and average score (see top of this page) as well as how many people chose each of the responses.
---
## 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](https://locationiq.com)