This is a Learning Management System (LMS) built with Django and Django REST Framework.
It provides APIs and backend functionality for managing administrators, instructors, students, courses, assignments, materials, and submissions.
- Custom
Usermodel with roles:- Admin
- Instructor
- Student
- Role-based access using custom DRF permissions.
- Admin can:
- Create courses with title, description, and prerequisites.
- Assign instructors to courses.
- Instructors can:
- Upload course materials.
- Create assignments.
- Students can:
- Enroll in courses.
- Access materials.
- Submit assignments.
- Support for file uploads in assignment submissions.
- Files stored in the
/mediadirectory.
- CRUD endpoints for:
- Users
- Courses
- Enrollments
- Course Materials
- Assignments
- Submissions
- Role-based access control for each resource.
- Backend: Django 3.x, Django REST Framework
- Database: PostgreSQL
- Auth: Django built-in authentication
- Storage: Media files served locally in development
lms_project/ │ ├── accounts_app/ │ ├── models.py # Custom user model, courses, enrollments, materials, assignments, submissions │ ├── serializers.py # DRF serializers │ ├── views.py # DRF viewsets │ ├── urls.py # API routing │ ├── permissions.py # Role-based permissions │ ├── lms_project/ │ ├── settings.py # Project configuration │ ├── urls.py # Global URLs │ ├── media/ # Uploaded files ├── requirements.txt └── manage.py