This is a minimal Learning Management System that allow instructors to create and manage courses, while students can enroll in courses, complete lessons, and track their learning progress in real time. The system is designed with proper authentication, role-based access control, and accurate progress tracking.
https://learning-management-system-olive-rho.vercel.app/
- React (Vite)
- Tailwind CSS
- Axios
- React Router
- Node.js
- Express.js
- JWT Authentication
- Role-based Authorization
- MongoDB Atlas
- Frontend: Vercel
- Backend: Render
- Create courses
- Add video or text lessons
- View enrolled students' progress
- Dashboard to manage courses
- Browse/Explore available courses
- Enroll in courses
- View lessons
- Mark lesson as complete
- Track course completion percentage
- Accurate lesson completion tracking
- Duplicate completion prevention
- Course-level percentage calculation
- Instructor-level progress visibility
- JWT-based authentication
- Role-based middleware (Student/Instructor)
- Protected routes on both frontend and backend
- Secure CORS configuration
- Persistent login on refresh
The Github repository includes a Postman Collection containing all API endpoints:
- Authentication
- Courses
- Lessons
- Enrollment
- Progress
- Dashboards
- Controllers
- Routes
- Middlewares (Auth + Role)
- Models
- Config
- app.js
- server.js
- Components (Navbar, ProtectedRoute, Course card, Lesson list)
- Pages (Student, Instructor, Login, Register)
- Context API (Auth management)
- Axios API configuration
- Course creation workflow ✔️
- Lesson creation workflow ✔️
- Enrollment system ✔️
- Completion tracking ✔️
- Instructor Dashboard ✔️
- Student Dashboard ✔️
- Deployment ✔️
- API Documentation (Postman Collection) ✔️
Ali Raza Full Stack (MERN) Developer