How aadityaraj25/mediaapi works
repoB is an Express user-account backend: clients register or authenticate, then use protected account, profile, image, and history endpoints. The principal path runs from mounted user routes through JWT/upload middleware into controller operations, with Mongoose-backed user data and optional Cloudinary image storage. README-described capabilities are included, though some controller internals and model implementations were not sampled; those links are limited to documented behavior or visible calls.
Main entry points: user.controllers.js User controllers · user.routes.js User routes · app.js Express app · user.models.js User model
Components 18
HTTP entry
- Server startup
src/index.js - Express app
src/app.js - User routes
src/routes/user.routes.js - JWT guard
src/middlewares/auth.middleware.js - Upload middleware
src/middlewares/multer.middleware.js
Account workflows
- User controllers
src/controllers/user.controllers.js
Persistence
- User model
src/models/user.models.js - Subscription model
src/models/subscription.models.js - Video model
src/models/video.models.js - MongoDB
- DB connector
src/config/db.js
External services
- Cloudinary uploader
src/utils/cloudinary.js - Cloudinary
- Temporary uploads
Shared infrastructure
- API responses
src/utils/apiResponse.js - API errors
src/utils/apiErrors.js - Async wrapper
src/utils/asyncHandler.js
Other components
- API client
Connections 19
- API client → Express app: sends requests
- Server startup → DB connector: connects at startup
- DB connector → MongoDB: opens connection
- Server startup → Express app: starts listener
- Express app → User routes: mounts routes
- User routes → User controllers: dispatches handlers
- User routes → JWT guard: guards protected routes
- User routes → Upload middleware: parses image uploads
- JWT guard → User model: loads account
- User controllers → User model: queries and updates
- User controllers → Cloudinary uploader: uploads images
- Upload middleware → Temporary uploads: writes temporary files
- Cloudinary uploader → Cloudinary: sends image files
- User controllers → API responses: formats results
- User controllers → API errors: raises failures
- User controllers → Async wrapper: wraps handlers
- User model → MongoDB: persists user records
- Subscription model → MongoDB: stores subscriptions
- Video model → MongoDB: stores videos