MyLMS

MyLMS is a Learning Management System (LMS) - a simple online platform for learning and education. It aims to condense and smoothen the workflow between teachers and students, providing a shared digital medium as a learning space.

Overview

The project consists of three unique users (teacher, student, admin). It contains 9 base pages - Login, Register, Updates, Lessons, Resources, Assignments, Submissions, Forum, Notifications. These will be explained in further detail below.

Features

Students:

Teachers

Admin

Notifications

Relevant Files

This section will explain the files and its corresponding pages. For more details on the page features, refer to the section above.

HTML Templates

  1. layout.html
    • contains navbar, header and meta scripts
  2. index.html
    • root path that contains the main ‘Updates’ page
  3. assignments.html
    • ‘Assignments’ page, allows teachers to create assignments
  4. submission.html
    • ‘Assignments’ sub-page, displays the homework and submission details.
  5. forum.html
    • ‘Forums’ page with search bar, subject navigation, list of posts and option to create a post
  6. forum_post.html
    • ‘Forums’ sub-page, displays selected forum post with replies and option to reply
  7. lessons.html
    • ‘Video Lessons’ page that displays lessons for each subject and allows teachers to create lessons
  8. lesson.html
    • ‘Video Lessons’ sub-page, displays selected video lesson
  9. login.html
    • login page that displays error messages (e.g. ‘not yet approved’)
  10. register.html
    • registration page where users can choose their subjects and roles
  11. notification.html
    • ‘Notification’ page which lists all notifications pertaining to the logged-in user.
  12. resources.html
    • ‘Resources’ page that shows all resources by subject

models.py

Contains all Models:

  1. User:
  1. Update
  2. Resource
  3. Assignment
  4. Submission
  5. Subject
  6. Post
  7. Comment
  8. Lesson
  9. Notification

forms.py

Contains all form classes that are built for creating the model objects.

urls.py

Contains all traversable path patterns.

views.py

List of views for the application. Handles the logic for HTTP requests and form submissions and renders the appropriate HTML template accordingly.

static files

Project Justification

This project has features inspired by the previous projects (i.e. search bar in 'wiki', post updates in 'network'), but it carries its own distinction and a wider complexity. The distinguishing features include, but are not exclusive to:

  1. Delegated user roles with specific permissions (teacher, student, admin)
  2. Uploading of files (resources, submissions page)
  3. Asynchronous deletion of files (resources page)
  4. Notification system (notifications page)
  5. Embedding external videos (lessons page)
  6. Assignment-tracking (assignments page)
  7. Mobile-responsiveness

It utilizes 10 Django models, with numerous Many-To-Many fields. It also employs datetime formatting, with a JavaScript datepicker to set the deadline of assignments. In terms of UI, it was designed for a simple look/feel, with seamless navigation between the different parts. Interrelating multiple components and user-types to create a functioning Learning Management System thus gives shape to the intricate complexity of this project.