How quartz1605/coursesellingwebsitebackend works
This is an Express REST backend for a course-selling platform. Users and admins sign up or log in, then use role-protected endpoints: admins manage courses, users browse and purchase them, and users retrieve purchases. The route modules own validation, authentication checks, and database operations; db.js defines the MongoDB models. The README documents the main capabilities, while the graph’s wiring is based on sampled source; the /purchase route is empty and is not shown as a working capability.
Main entry points: index.js Express server · user.js User routes · admin.js Admin routes · db.js Data models
Components 12
HTTP entry
- Express server
index.js
Identity and access
- User routes
routes/user.js - Admin routes
routes/admin.js - User JWT guard
middlewares/userMiddleware.js - Admin JWT guard
middlewares/adminMiddleware.js - Shared JWT guard
middlewares/middleware.js - JWT library
Course catalog
- Course listing
routes/courses.js
Purchases and persistence
- Data models
db.js - MongoDB
Other components
- User
- Admin
Connections 18
- User → Express server: sends requests
- Admin → Express server: sends requests
- Express server → User routes: mounts /user
- Express server → Admin routes: mounts /admin
- Express server → Course listing: mounts /
- Express server → MongoDB: connects
- User routes → User JWT guard: guards requests
- Admin routes → Admin JWT guard: guards requests
- Course listing → Shared JWT guard: guards listing
- User JWT guard → JWT library: verifies tokens
- Admin JWT guard → JWT library: verifies tokens
- Shared JWT guard → JWT library: verifies tokens
- User routes → JWT library: signs login token
- Admin routes → JWT library: signs login token
- User routes → Data models: reads and writes
- Admin routes → Data models: reads and writes
- Course listing → Data models: reads courses
- Data models → MongoDB: persists records