A full-featured Learning Management System (LMS) built using Django (DRF) and React, supporting student progress tracking, certificates, assignments, role-based access control, and a Semi-Admin Panel built on top of Django’s existing admin capabilities.
This platform supports both students and teachers, along with semi-admins who can moderate content, review teacher applications, and manage user access.
- JWT-based login and registration
- Custom user model with fields:
is_teacher,is_semi_admin,is_banned,is_verified- Profile image, banner image
- Phone number, date of birth, bio
- Profile page with avatar, bio, and role-based buttons
- Dashboard with:
- Enrolled courses (in-progress, completed)
- Certificates earned
- Course progress tracking
- Course detail pages with:
- Study material: videos, PDFs, text
- Graded work: assignments and submissions
- "Mark Complete" buttons for content tracking
- Instructors can upload:
- Assignment file (PDF, doc, etc.)
- Description & optional deadline
- Students can submit:
- Answer file + comments
- Teachers can grade:
- Upload corrected version
- Leave feedback and assign marks
- Late submission flags and grading dashboard
- Automatically generated certificates on 100% completion
- Manual approval-based certificates (application + review flow)
- Certificate generation in PDF
- Student and instructor certificate dashboards
- View all platform users
- Toggle:
is_bannedto restrict accessis_semi_adminto grant limited admin powers
- Application model includes:
- Education, skills, expertise, past experience
- Semi-admins can:
- View and filter applications
- Approve, reject, or hold
- (Optional) Auto-promote approved users to teachers
- List of all students
- See enrolled courses and certificates earned
- Ban/unban functionality via interface
- Courses have an
is_visibleflag - Semi-admins can:
- Hide or restore any course
- Hidden courses are excluded from:
- Listings
- Enrollments
- Student dashboards
- Django
- Django REST Framework
- Simple JWT
- PostgreSQL
- ReportLab / WeasyPrint (for PDF certificates)
- React
- Axios
- TailwindCSS
- React Router
# Backend
cd backend
python -m venv env
source env/bin/activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver
# Frontend
cd frontend
npm install
npm run dev| Role | Access |
|---|---|
| Student | Enroll in courses, track progress, earn certs |
| Teacher | Create courses, upload content & assignments |
| Semi-Admin | Moderate users & content, review applications |
| Superuser | Full access including Django Admin |
You are welcome to contribute! Just fork the repo, make your changes, and open a pull request.
MIT License