A fully responsive Learning Management System with models for Organisation, Teacher and Student.
Description
The project is a web application built using Django, a high-level Python web framework. It provides a comprehensive platform for managing user profiles, organizations, teachers, students, courses, and related entities. The application facilitates collaboration, learning, and progress tracking in an educational setting.
Table of Contents
Features
- User registration and login system.
- Creation and management of user profiles with personal information and social media links.
- Creation and management of organizations with descriptions, locations, websites, and founding years.
- Creation and management of teachers with associated profiles, organizations, qualifications, and research interests.
- Creation and management of students with associated profiles and departments.
- Categorization of courses using tags.
- Creation and management of courses with associated organizations, teachers, tags, descriptions, and course content.
- Enrollment of students in courses.
- Creation and management of modules within courses with associated videos and notes.
- Uploading and management of videos with associated modules and courses.
- Commenting and sub-commenting on videos and courses.
- Creation and management of notes on videos, modules, and courses.
- Tracking user progress in courses and overall course progress.
- Creation and management of quizzes associated with videos.
- Creation and management of quiz questions and answers.
- Monitoring user quiz attempts.
Installation
We need to Download a number of libraries and also create an environment before running the site.
Step 1: Create an environment outside the PilotLMS folder to keep the settings local to this project, Then activate it.. reference below
https://docs.python.org/3/library/venv.html
Step 2: Create the Folder and clone the project, now Change directory into FOLDER_NAME
git clone (https://github.com/ayushsaxenagithub/PilotLMS.git)
cd FOLDER_NAME
Step 3: Install the requirements for the project using the command...
pip install -r requirements.txt
Step 4: To activate the server
python manage.py migrate
Step 4: To collectstatic files
python manage.py collectstaicfiles
Step 6: To activate the server
python manage.py runserver
Step 7 : Open your web browser and visit http://localhost:8000 to access the application.
Usage
- Register a new user account or log in with an existing account.
- Create a profile and fill in the necessary details.
- Create organizations and add descriptions, locations, websites, and founding years.
- Add teachers and students, linking them to their respective profiles and organizations.
- Categorize courses using tags.
- Create courses, specifying the associated organization, teacher, tags, descriptions, and course content.
- Enroll students in courses.
- Create modules within courses and add videos and notes.
- Upload videos, specifying the associated module and course.
- Interact with videos and courses by leaving comments and sub-comments.
- Create notes on videos, modules, and courses.
- Track user progress in courses and monitor overall course progress.
- Create quizzes associated with videos and add questions and answers.
- Monitor user attempts and quiz results.
Users Functionality
Student
- Login/Signup using tokens and cookies
- Dashboard to view courses and their progress
- Quiz popups within videos
- Doubt section
- Personal Notes
Teacher
- Teacher Dashboard for administering student progress and analytics
- Teacher domain within his Organization
- Setup quizes for students
organization
- Has the power to appoint a user as an instructor
- Has a domain specific to itself only accesible to its teachers
- Every teacher should belong to an onganisation
Technologies
The project is built using the following technologies:
- Python
- Django - Web framework
- Django REST Framework - Web API framework
- SQLite - Database
Front-end:
Authentication:
- Django Authentication - User authentication and authorization
File Storage:
- Amazon S3 (or any other storage service)
Contributing
Contributions are welcome! If you find any issues or have suggestions for improvements, please feel free to create a pull request.
Screenshots