How ajaydewangan1100/lms_backend_practice works
This repository is an Express backend for a video-based learning management system. A client request enters through the app’s mounted API routes; user routes support registration, sign-in and account recovery, while course routes expose course and lecture operations, including subscriber-gated lectures. Learners can create, verify and cancel subscriptions; administrators can view payment and user statistics. An internal authorization layer applies cookie/JWT authentication and role or subscriber checks, while persistence, media uploads and contact email use external services. The user controller’s detailed implementation was not sampled; its documented capabilities are represented without inferring its internal calls.
Main entry points: app.js Express app · auth.middleware.js Auth middleware · user.model.js User model · user.routes.js User routes
Components 20
API entry
- Express app
app.js
Identity and access
- User routes
routes/user.routes.js - User controller
controllers/user.controlller.js - Auth middleware
middlewares/auth.middleware.js - User model
models/user.model.js
Courses and lectures
- Course routes
routes/course.routes.js - Course controller
controllers/course.controller.js - Course model
models/course.model.js - Upload middleware
middlewares/multer.middleware.js
Billing and administration
- Payment routes
routes/payment.routes.js - Payment controller
controllers/payment.controller.js - Payment model
models/payment.model.js
Contact support
- Misc routes
routes/miscellaneous.routes.js - Misc controller
controllers/miscellaneous.controller.js - Email sender
utils/sendEmail.js
Other components
- API client
- MongoDB
- Cloudinary
- Razorpay
- Mail service
Connections 28
- API client → Express app: sends requests
- Express app → User routes: mounts user API
- Express app → Course routes: mounts course API
- Express app → Payment routes: mounts payment API
- Express app → Misc routes: mounts misc API
- User routes → Auth middleware: checks access
- User routes → Upload middleware: processes avatars
- User routes → User controller: dispatches
- User controller → User model: account operations
- User model → MongoDB: reads and writes
- Course routes → Auth middleware: checks access
- Course routes → Upload middleware: processes media
- Course routes → Course controller: dispatches
- Course controller → Course model: course operations
- Course model → MongoDB: reads and writes
- Course controller → Cloudinary: uploads media
- Payment routes → Auth middleware: checks access
- Payment routes → Payment controller: dispatches
- Payment controller → User model: updates subscription
- Payment controller → Payment model: records payment
- Payment model → MongoDB: writes payment
- Payment controller → Razorpay: manages subscriptions
- Misc routes → Auth middleware: checks admin access
- Misc routes → Misc controller: dispatches
- Misc controller → User model: counts users
- Misc controller → Email sender: sends contact email
- Email sender → Mail service: delivers email
- Auth middleware → User model: checks subscriber