Web Application Development: Coursework
Allocation
This coursework is worth 100% of the marks for module CHC5054.
Specification
Your task is to develop and test the full stack for a simple web-based Learning Management System designed to facilitate the management, delivery, and tracking of educational courses.
· instructors can upload Lectures, submit assessments, and mark student assignments.
· students can enrol, view course content, and submit assignments, progress tracking, and discussion forums.
· Administrator creates and manage accounts for instructors, students, courses and other admins
The following is the basic functionality to implement:
● Home Page: On visiting the first page of the site, user should be redirected to login page if not logged in, otherwise he should be able to see the course list for the student, upload list for instructor.
- Admins should have access to user, courses, lectures management (creation, editing, deletion).
- Instructors should see their courses, student lists, and lecture management options.
- Students should see their enrolled courses, grades, and upcoming assignments.
● It is up to admin to create/edit/delete and assign a course for only one instructor.
● An “Add lecture” button when an instructor wants to create a lecture (name, description) and another “Add file” button to upload add one resource (word/pdf file).
● Students can look over the offered courses and request to be enrolled in those they would like to take enrol students in courses
● Instructors and students can communicate with each other through messaging
● Notifications: Receive alerts for new announcements, deadlines.
● Search Functionality: Search for courses, lecture, and other users within the system.
Admin:
· Course Enrollment: Assign a course to an instructor, enrol students in courses
Instructor:
· Course management: create course content, including lectures, and assignments, an instructor can only edit his own courses.
· Assignment Management: Create and manage assignments (name, files, deadline) all students enrolled in the same course will be assigned automatically
· Grading and Feedback: access students’ submission, grade and provide feedback
Student:
· Course Enrollment: Look over the offered courses and request to be enrolled in those they would like to take (only administrators can decide whether to accept or enroll a student).
· Content Access: Access enrolled courses, lectures, assignments.
· Submission: Submit assignments, within specified deadlines.
· Feedback and Grades: Receive feedback and grades on assignments and assignments.
The marks available for each of these areas of functionality are divided based on the sections of the coursework, as described below. Simply writing code to meet the specification by any means will not earn full marks.
Your web site must run in a Python virtual environment built by running the following commands from a Command Prompt in a suitable working directory:
pip install virtualenv
virtualenv webtest
cd webtest
scripts\activate
pip install flask mysql-connector-python
It is recommended that you also use this virtual environment for development. Regardless, you must test your site within the virtual environment before submitting it. This is the virtual environment in which your code will be tested by the assessor. If it does not work, marks will not be awarded.
In addition to the libraries in the above virtual environment, you may use the jQuery library for JavaScript, but may not use any other frameworks or libraries. This means that you may not use libraries that are “Flask extensions” if they are not installed with Flask.
(Please do not send e-mails asking if you can use other extension libraries; the answer is no. The purpose of the coursework is to understand how JavaScript and server interaction work at the lowest level possible, not in terms of abstractions created by higher level code.)
Your website must be built using HTML 5 and ECMAscript 6 on the client, and Flask, MySQL and Python 3 on the server.