Skip to content
Permalink
f264d8c92b
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
112 lines (67 sloc) 4.94 KB
# E-Learning Tool
Build an online e-learning tool to teach someone about git.
---
## 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. `teacher1`
4. `teacher2`
---
## Feature 1
All users should share the same login screen but some users should be flagged as teachers in the database. The homepage should not be visible if not logged in.
If someone logs in with a teaching account they should see an **Add content** link or button on the homepage.
The _Add Content_ screen should allow the teacher to create a new page of content. It should ask for:
1. The content title.
2. The content as multiline text. The teacher should be able to enter the content using _markdown_ formatting.
3. An optional image.
When the data is added to the database, the following extra information should be added without the user needing to provide it:
1. The username of the person adding the content.
2. The date and time of when the content was added.
> 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
If a student logs in they should see a summary of the learning content displayed on the homepage. For each piece of learning content added they should see:
1. The title.
2. The date added.
3. The username of the teacher who added it.
4. A status indicator (defaults to **not accessed**.
4. A **View content** button or link.
Clicking on one of the buttons should take the student to a page showing the full learning content for the topic clicked on. Accessing the learning content should set the appropriate status indicator to **viewed**.
## Feature 3
You will be adding a multiple-choice question to each piece of learning content.
If a teacher is logged in they should see an **Edit question** button next to the **View content** button but only for learning content added by that teacher. Clicking the button takes them to a screen where they can add or edit the question. If there was an existing question set for the learning content the current question details should be displayed.
The screen should provide:
1. A multiline textbox where the teacher can write their question in markdown syntax.
2. An optional image.
3. Four textboxes where they can write down alternative answers.
4. There should be a radio button next to each answer so the teacher can indicate which answer is correct.
At this stage the students should not be able to access the questions.
## Feature 4
When a student logs in they should see the appropriate question at the end of the learning material. The four answers should be displayed in a random order.
When the student has chosen their answer their choice should be indicated along with a message telling them if they were correct. They should not be able to change their answer.
On the home page, each summary should indicate whether the question has been answered and whether it was correct or not.
## Feature 5
There should be some summary percentage stats on the student homepage showing:
1. The number of pages of content viewed.
2. The number of tests attempted.
3. The average score.
If a teacher views the homepage is should show for each piece of learning content:
1. How many students have viewed.
2. How many students have attempted the tests.
3. The overall pass rate.
----
## 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)