How nahiyanasir/cinematube works
This is an Express/Prisma backend for a media-catalog service with user accounts, media discovery, social lists and reviews, and paid access through media purchases or subscriptions. The principal workflow is a client request entering the app, being dispatched to a feature route/controller, handled by a service, and returned as an API response; authenticated actions also use user identity. The tree and sampled code support the review and auth flows in detail, while several other feature links are based on their module structure. No README was provided, so undocumented capabilities and unsampled integrations are not inferred.
Main entry points: index.ts Route registry · prisma.ts Prisma client · auth.service.ts Auth service · auth.controller.ts Auth controller
Components 25
API entry
- Express app
src/app.ts - Route registry
src/app/routes/index.ts - Auth middleware
src/app/middlewares/checkAuth.ts - Error handling
src/app/middlewares/globalError.ts - Prisma client
src/app/lib/prisma.ts - Response helpers
src/app/modules/shared/sendResponse.ts
Identity and users
- Auth controller
src/app/modules/auth/auth.controller.ts - Auth service
src/app/modules/auth/auth.service.ts - Auth provider
src/app/lib/auth.ts - Token utilities
src/app/utils/token.ts - User controller
src/app/modules/user/user.controller.ts - User service
src/app/modules/user/user.service.ts
Catalog and engagement
- Media feature
src/app/modules/media/media.service.ts - Genre feature
src/app/modules/genre/genre.service.ts - Review feature
src/app/modules/review/review.service.ts - Watchlist feature
src/app/modules/watchList/watchList.service.ts - Bookmarks
src/app/modules/bookmark/bookmark.service.ts - Favourites
src/app/modules/favourite/favourite.service.ts
Payments and access
- Media payments
src/app/modules/payment/payment.service.ts - Subscriptions
src/app/modules/subscription/sub.service.ts - Stripe config
src/app/config/stripe.config.ts
Administration
- Contact messages
src/app/modules/contact/contact.service.ts - Admin operations
src/app/modules/admin/admin.service.ts
Other components
- API client
- Application database
Connections 36
- API client → Express app: sends request
- Express app → Route registry: mounts routes
- Route registry → Auth middleware: guards requests
- Auth middleware → Auth controller: dispatches auth
- Auth controller → Auth service: calls
- Auth service → Auth provider: calls auth API
- Auth service → Token utilities: creates tokens
- Auth service → Prisma client: reads/writes users
- Auth service → Prisma client: reads/writes sessions
- Route registry → User controller: dispatches user
- User controller → User service: calls
- User service → Prisma client: accesses user data
- Route registry → Media feature: dispatches media
- Route registry → Genre feature: dispatches genres
- Route registry → Review feature: dispatches reviews
- Review feature → Prisma client: reads/writes reviews
- Review feature → Prisma client: updates media ratings
- Route registry → Watchlist feature: dispatches watchlist
- Route registry → Bookmarks: dispatches bookmarks
- Route registry → Favourites: dispatches favourites
- Route registry → Media payments: dispatches payments
- Route registry → Subscriptions: dispatches subscriptions
- Subscriptions → Stripe config: uses config
- Route registry → Contact messages: dispatches contact
- Route registry → Admin operations: dispatches admin
- Media feature → Prisma client: accesses catalog
- Genre feature → Prisma client: accesses genres
- Watchlist feature → Prisma client: accesses lists
- Bookmarks → Prisma client: accesses bookmarks
- Favourites → Prisma client: accesses favourites
- Media payments → Prisma client: accesses payments
- Contact messages → Prisma client: accesses messages
- Admin operations → Prisma client: accesses admin data
- Prisma client → Application database: queries
- Auth controller → Response helpers: formats response
- User controller → Response helpers: formats response