A web-based Learning Management System (LMS) built with Django to enhance teaching and learning experiences. This system enables educational institutions to manage courses, students, and learning materials effectively. It offers role-based access for Admins, Teachers, and Students, providing automated progress tracking, interactive learning tools, and scalable course management.
- Student Enrollment: Manage student registration and update student details.
- Attendance Management: Track and monitor student attendance.
- Gradebook: Record, view, and modify students' grades.
- Role-Based Access Control: Admin, teachers, and students have different access rights.
- Class Management: Create and manage class schedules.
- Reports: Generate reports for student progress, attendance, and performance.
- Responsive UI: Mobile-friendly design using HTML/CSS or integrated frontend frameworks.
- Course Management: Create, organize, and manage courses with modules and lessons.
- Interactive Learning: Upload learning materials, quizzes, and assignments.
- Automated Progress Tracking: Track student progress and course completion.
- Backend: Django (Python) v5.x, Django ORM
- Frontend: HTML5, CSS3, JavaScript, Bootstrap v5.x (or any integrated UI libraries)
- Database: PostgreSQL v16.x (SQLite v3.x for development)
- Version Control: Git v2.x
- Deployment: Nginx v1.25.x, Gunicorn v21.x
- Testing: Django's built-in testing framework (Django 5.x)
Learning-Management-System-LMS/ Home/
│
├── manage.py # Django project manager script
├── db.sqlite3 # SQLite database (for development)
│
├── dean/ # App handling dean-related functionalities
├── dept/ # App for department management
├── env/ # Virtual environment (should be in .gitignore)
├── Home/ # App managing home dashboard or landing page
├── home_auth/ # App handling home authentication (login, etc.)
├── management/ # App for administrative management
├── media/ # Directory for uploaded media files
├── others/ # Miscellaneous functionalities or modules
├── schedule/ # App managing schedules/timetables
├── school/ # App for school-wide settings or operations
├── static/ # Static files (CSS, JS, images)
├── student/ # App managing student-related functionalities
├── subject/ # App for subjects/courses management
├── teacher/ # App managing teacher-related functionalities
└── templates/ # HTML templates for all apps
Follow these steps to set up the project locally:
git clone https://github.com/Jashkaran-joshi/Learning-Management-System-LMS.git
cd Learning-Management-System-LMS
cd Homepython -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activatepip install -r requirements.txtUpdate the DATABASES configuration in Home/settings.py to match your database setup.
python manage.py migratepython manage.py createsuperuserpython manage.py runserverVisit http://localhost:8000 to access the app.
Create a .env file for sensitive environment configurations:
DEBUG=True
SECRET_KEY='your_secret_key'
DATABASE_URL=postgres://user:password@localhost:5432/your_db_nameMake sure to configure settings for production, including static files, security, and email backend.
Use the following credentials to log in with different roles:
1. Admin
Username: admin@gmail.com
Password: admin@gmail.com
2. Teacher
Username: teacher@gmail.com
Password: teacher@gmail.com
3. Student
Username: student@gmail.com
Password: student@gmail.com
You can run the unit tests with Django's built-in testing framework:
python manage.py testThis will run all the tests located in the tests.py files of your Django apps.