A full-featured Course Management System (CMS) built with FastAPI, supporting course creation, assessments, user roles, content delivery, progress tracking, and administrative tools.
- Create and organize courses
- Upload multimedia content (PDFs, videos, presentations)
- Lesson planning and structuring
- Syllabus management
- Student and instructor authentication
- Role-based access control (Admin / Teacher / Student)
- User grouping by departments, batches, and classes
- Access online learning resources
- Interactive lessons (videos, quizzes, text modules)
- Forums and discussion channels
- Announcements and notifications
- Auto-graded quizzes
- Assignments with grading and feedback
- Exam scheduling and basic proctoring support
- Student progress tracking
- Internal messaging system
- Forums, discussion boards
- Email and notification system
- Integrated live classes (Zoom/Teams-ready)
- Student performance reports
- Attendance tracking
- Course analytics dashboard
- Downloadable certificates
- Course catalog management
- Scheduling and calendar
- Payment support (if needed)
- Compliance-ready structure
- Backend: FastAPI
- Database: SQLite / PostgreSQL
- ORM: SQLAlchemy
- Auth: OAuth2 + JWT
- Environment: Python 3.x
course_management_system/
│
├── app/
│ ├── main.py # FastAPI entry point
│ ├── database.py # DB configuration
│ ├── models.py # SQLAlchemy models
│ ├── schemas.py # Pydantic schemas
│ ├── crud.py # Database operations
│ ├── auth.py # Authentication logic
│ ├── dependencies.py # Dependencies injection
│ │
│ ├── routers/ # Route handlers
│ │ ├── auth.py
│ │ ├── admin.py
│ │ ├── courses.py
│ │ ├── lessons.py
│ │ ├── assessments.py
│ │ ├── tracking.py
│ │ ├── notifications.py
│ │ ├── forum.py
│ │ └── users.py
│
├── requirements.txt
├── reset_db.py
├── verify_cms.py
└── .gitignore
git clone https://github.com/Malikabriq/course-management-system.git
cd course-management-systempython -m venv venv
venv\Scripts\activate # Windowspip install -r requirements.txtuvicorn app.main:app --reloadServer will start at:
http://127.0.0.1:8000
FastAPI automatically generates interactive docs:
- Swagger UI:
/docs - ReDoc:
/redoc
This project is licensed under the MIT License.
Contributions are welcome! Feel free to fork the repo and open pull requests.
If you like this project, give it a star on GitHub!