How hiteshdotcom/courseapp-backend works
This is a Node/Express backend for an online course platform. Clients reach user, course, payment, and order endpoints; routes dispatch to controllers, which perform authentication, account/course operations, payments, and order handling. Controllers use Mongoose models for users, courses, and orders. The sampled code also shows course search/filtering, reviews and admin management, profile/media uploads, and password-reset email. The README is empty; unsampled route and database wiring is represented only where supported by the source index.
Main entry points: app.js Express app · userController.js Account controller · courseController.js Course controller · user.js JWT auth
Components 21
API entry
- Express app
app.js - User routes
routes/user.js - Course routes
routes/course.js - Payment routes
routes/payment.js - Order routes
routes/order.js
Identity
- Account controller
controllers/userController.js - JWT auth
middlewares/user.js - User model
model/user.js - Token cookies
utils/cookieToken.js - Reset email
utils/emailHelper.js
Course platform
- Course controller
controllers/courseController.js - Course model
model/course.js - Search and paging
utils/whereClause.js
Commerce
- Payment controller
controllers/paymentController.js - Order controller
controllers/orderController.js - Order model
model/order.js
Other components
- API client
- Cloud media
- Stripe
- Razorpay
- MongoDB
Connections 28
- API client → Express app: sends requests
app.js - Express app → User routes: mounts routes
app.js - Express app → Course routes: mounts routes
app.js - Express app → Payment routes: mounts routes
app.js - Express app → Order routes: mounts routes
app.js - User routes → Account controller: dispatches to
routes/user.js - User routes → JWT auth: checks login
routes/user.js - Course routes → Course controller: dispatches to
routes/course.js - Course routes → JWT auth: checks roles
routes/course.js - Payment routes → Payment controller: dispatches to
routes/payment.js - Payment routes → JWT auth: checks login
routes/payment.js - Order routes → Order controller: dispatches to
routes/order.js - Order routes → JWT auth: checks login
routes/order.js - Account controller → User model: reads and writes
controllers/userController.js - Account controller → Token cookies: issues tokens
controllers/userController.js - Account controller → Reset email: sends reset email
controllers/userController.js - Account controller → Cloud media: uploads photos
controllers/userController.js - JWT auth → User model: loads user
middlewares/user.js - Course controller → Course model: reads and writes
controllers/courseController.js - Course controller → User model: populates owner
controllers/courseController.js - Course controller → Search and paging: filters listings
controllers/courseController.js - Course controller → Cloud media: uploads course files
controllers/courseController.js - Payment controller → Stripe: creates intents
controllers/paymentController.js - Payment controller → Razorpay: creates orders
controllers/paymentController.js - Order controller → Order model: reads and writes
controllers/orderController.js - User model → MongoDB: persists records
- Course model → MongoDB: persists records
- Order model → MongoDB: persists records