Skip to content
Permalink
be5eddc1a0
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
99 lines (59 sloc) 5.38 KB
# E-Learning Tool
Build an online e-learning tool to teach someone about git. All the teaching materials should be stored in the database alongside all of the quiz questions. You will need to populate this database with at least 5 pages of valid learning content and five sensible multiple-choice quiz questions.
---
## Testing
The system should include valid content and quiz questions.
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. `teacher` (only required for stage 2 functionality).
---
## Stage 1
The core functionality requires you to develop a set of teaching materials to help someone learn how to use the `git` commands. This includes 10 screens of content plus 10 multiple-choice questions.
### Part 1
The home screen should display a link to the _unit_ of teaching content. Clicking this displays the first page of content which consists of a block of formatted text and an optional image. At the bottom of each page there are two buttons:
1. The one on the left takes the `student` back to the previous page of content.
2. The one on the right takes the `student` to the next page of content.
The right-hand button on the last page of content takes the user back to the home screen.
### Part 2
Instead of taking the `student` back to the home page, the right-hand button on the lat page of teaching content takes the student to the first page of the multiple-choice quiz.
As soon as the `student` chooses an answer they should see a link or button at the bottom of the page to take them to the next question. The button on the last question page should take the `student` to a **grade** screen that displays their score as a percentage.
This **grade** screen should have a link or button to take the user back to the **home screen**.
### Part 3
The `student` must achieve a grade of at least **40%** to pass the unit. If they achieve less than this the **results** screen must explain what happened and the link or button should take the `student` back to the start of the learning content where they can have another attempt.
The home screen should display the student's highest score for the unit as well as the number of attempts. The `student` can view the learning content and attempt the quiz as many times as they want but their official grade is the first score of 40%+.
---
## Stage 2
The intermediate tasks require you to make changes to the functionality by allowing the admin user to edit the resources and add new ones.
1. There should be one account flagged up as `teacher`. They log in using the same login page but will see additional functionality:
1. They should see a link or button on each learning content page that takes them to a screen to edit the detailed, multi-line, formatted chunk of learning content and update the image if needed
2. There should also be a link or button to insert a new page of content immediately after the current one
3. They should be able to add new multi-choice questions to the quiz and edit the existing ones
2. When a user has completed a quiz multiple times, the home page should display both the highest and the average score. Any person with a high score of less than 40% should be clearly flagged as having failed.
3. At the end of each quiz attempt the user should receive an email with their high and average scores and clearly indicating whether they have passed or failed. There should be a link to the home screen.
---
## Stage 3
1. Rather then only allowing multiple choice questions, the admin should be able to add:
1. True/false questions (only two predetermined choices).
2. Short answer questions (where the user has to enter text) which should be case-insensitive.
2. The admin user should be able to access a reporting screen which includes for each user:
1. Their full name and details.
2. their scores (average and best) for each quiz.
3. Admn users should be able to add new topics. which includes:
1. Pages of learning materials.
2. A dedicated quiz.
----
## 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. Each time a user starts a quiz the system should capture their current location and store this along with the quiz name and score for that attempt.
2. When the admin user views the reporting screen this should include a map that shows where each attempt was taken from. Selecting a pin should show the name of the user, topic, score and date.
3. Each topic should generate a QR code that can be sent to the user. Scanning this code with their device camera (if available) takes them to the topic start (or the last part of the topic they accessed).
### 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)