How maheshs-github/lms-project works
This is a dual-role learning management system: instructors create and submit courses, admins manage users and approve courses, and students browse, enroll, learn, track progress, review courses, and earn certificates. The React client serves these workflows through an Express REST API, with MongoDB-backed domain data and Socket.io real-time features. The graph preserves documented capabilities, but several route/controller and client-page connections are not shown in the excerpts; those uncertain links are omitted rather than inferred.
Main entry points: app.js API application · course.controller.js Course workflows · apiClient.js HTTP client · models Domain models
Components 21
React client
- Client entry
client/src/main.jsx - Role navigation
client/src/Routes/AppRoutes.jsx - Auth state
client/src/redux/AuthSlice.js - Learning experience
client/src/pages/student/StudentDashBoard.jsx - Course authoring
client/src/pages/instructor/NewCourse.jsx - Admin console
client/src/pages/admin/AdminDashboard.jsx - HTTP client
client/src/utils/apiClient.js
REST application
- API application
server/src/app.js - Identity endpoints
server/routes/user.routes.js - Authentication
server/middlewares/auth.middlewares.js
Learning services
- Course workflows
server/controllres/course.controller.js - Admin workflows
server/controllres/admin.controller.js - Course payments
server/controllres/payment.controller.js - Learning progress
server/controllres/progress.controller.js - Certification
server/controllres/certificate.controller.js - Live updates
server/socket/index.js
Persistence and integrations
- Domain models
server/models - Course cache
server/utils/cache.js - Redis
server/config/redis.js - Cloudinary media
server/utils/cloudinary.js
Other components
- Users
Connections 28
- Users → Client entry: uses
- Client entry → Role navigation: loads routes
- Client entry → Auth state: initializes state
- Users → Learning experience: learns and tracks
- Users → Course authoring: creates courses
- Users → Admin console: administers
- Learning experience → HTTP client: requests data
- Course authoring → HTTP client: submits courses
- Admin console → HTTP client: requests admin data
- HTTP client → API application: calls REST API
- API application → Identity endpoints: mounts routes
server/src/app.js - Identity endpoints → Authentication: guards requests
server/routes/user.routes.js - Identity endpoints → Domain models: handles identity data
server/routes/user.routes.js - API application → Course workflows: routes course requests
server/src/app.js - Course workflows → Domain models: reads and writes
server/controllres/course.controller.js - Course workflows → Cloudinary media: uploads thumbnails
server/controllres/course.controller.js - Course workflows → Course cache: invalidates catalog
server/controllres/course.controller.js - Course cache → Redis: uses cache store
server/utils/cache.js - API application → Admin workflows: routes admin requests
server/src/app.js - Admin workflows → Domain models: queries admin data
server/controllres/admin.controller.js - Admin workflows → Course cache: invalidates catalog
server/controllres/admin.controller.js - API application → Course payments: routes payment requests
server/src/app.js - API application → Learning progress: routes progress requests
server/src/app.js - API application → Certification: routes certificate requests
server/src/app.js - API application → Live updates: adds real-time layer
- Live updates → Domain models: uses user and message data
server/socket/index.js - Users → Course payments: pays for courses
- Learning progress → Certification: completion triggers