Users are of 3 types
- Instructor
- Student
- Admin
Note: Create new course is only visible for Instructor
Couldn't complete design of assignment section
- Stats of all assignments and total grade
- Can be calculated automatically by Calculate Total Grades in Course page or uploaded manually by instructor

- Unfortunately the project couldn't be deployed on Heroku
- Assets folder is not completely uploaded (ig it needs LFS will try it later)
- Couldn't complete linking and designing of DMs and Discussion Forum (btw implementation complete)
- Assignments section couldn't be designed completely
You have learnt about backend engineering with Django in our session. Now use it to create a web application by yourself!
You must have used Moodle in your courses, where both instructors and students login, and for each course, the instructor uses the platform to share resources, send announcements, release grades, conduct quizzes and what not!
Your task is to create your own such a learning management system using Django, where you can add functionalities as per your own creativity!
- Users (to store auth logic, and models for
Instructor,Student,Course,Admin) - Grades (to store logic for sharing grades for any assessment, and models for let's say a class
Grade) - Documents (for Instructor to upload
Docslike lecture notes for the course) - Quizzes (this can have models for a
QuestionBankcontainingQuestion's which form aQuiz) - Communication (to work on features like Course-wide
Announcements,Replying in threads to announcements, sending personalMessages)
Try to implement as many features as you can, but make sure to plan the structure of the project and database schemas well!
- Deploy on Heroku
- Create documentation for any RESTful APIs created with documenter on postman
- Markdown support for Communication
- Email: For registration, password reset, notifications, instructor custom message
- Bulk upload from CSV for grades, quizzes
- Generating PDF: Print digitally signed transcript
- Add security features for the quizzes
- FORK this repository, by clicking the "Fork" button on top right
clonethe forked repo into your machine, andcdinto the Repo Folder such that you are in same directory level asmanage.py- If on macOS, run
python3 -m venv env, otherwisepython -m venv env - Now activate the virtual environment by
source env/bin/activate - See if the environment is correctly set by running
pip list, it should be mostly empty - Install dependencies with
pip install -r requirements.txt - We have already started a dummy project called
DevClubLMSfor you - Now, you can use
python manage.py runserverto start the dev server orpython manage.py startapp <appname>to create a new app inside this project - After completing the assignment, append instructions to run your project, along with explanation of features etc in this README
- It would be nice if you can host it on Heroku and also give a documentation of each endpoint through postman
- Finally submit with your details in the Google Form
- You do NOT need to make any pull requests to this repo
- Slides used in the session
- Introduction to Python and Django by Programming With Mosh
- Detailed Django Tutorials by Corey Schafer
- Mozilla's Tutorials on Server Side Programming with Django
- Django Official Docs
- Talk on how Instagram uses Django at production, and also the time when Justin Beiber almost crashed Instagram!
- Advice on Backend Engineering by Hussein Nasser
- Guide for Deploying Python apps on Heroku
- Guide for Postman Documenter

















