How adithyasai3/cineverse works
CineVerse is a movie-ticket booking platform with a React client and a modular Express API. The main customer journey is catalogue and showtime discovery, live seat selection, temporary seat hold, payment, booking confirmation, and booking history; administration manages catalogue, theatres, screens, and shows. The README documents the backend’s layered modules, Redis/PostgreSQL concurrency safeguards, and transactional notification outbox. Sampled source confirms application assembly, booking/payment controller calls, and auth behavior; some feature wiring below follows explicit README documentation rather than sampled implementation.
Main entry points: app.ts Express app · prisma.ts PostgreSQL · payments Payments · bookings Booking engine
Components 18
Web client
- Booking UI
frontend/src/App.tsx - Customer and admin pages
frontend/src/pages - API services
frontend/src/services
API and identity
- Express app
src/app.ts - Authentication
src/modules/auth - Request and observability middleware
src/middlewares
Discovery and venue
- Movie catalogue
src/modules/movies - Theatres and screens
src/modules/theatres - Shows and seats
src/modules/shows
Booking and payment
- Booking engine
src/modules/bookings - Payments
src/modules/payments
Delivery and state
- Notifications
src/modules/notifications - PostgreSQL
src/lib/prisma.ts - Redis
src/lib/redis.ts
Other components
- Customer
- Platform admins
- Payment gateway
- Email delivery
Connections 25
- Customer → Booking UI: uses
- Platform admins → Booking UI: manages
- Booking UI → Customer and admin pages: renders
- Customer and admin pages → API services: requests
- API services → Express app: calls API
- Express app → Request and observability middleware: passes requests
- Express app → Authentication: dispatches
- Express app → Movie catalogue: dispatches
- Express app → Theatres and screens: dispatches
- Express app → Shows and seats: dispatches
- Express app → Booking engine: dispatches
- Express app → Payments: dispatches
- Express app → Notifications: dispatches
- Authentication → PostgreSQL: reads/writes
- Movie catalogue → PostgreSQL: reads/writes
- Movie catalogue → Redis: caches listings
- Theatres and screens → PostgreSQL: reads/writes
- Shows and seats → PostgreSQL: reads/writes
- Booking engine → PostgreSQL: holds and confirms
- Booking engine → Redis: locks seats
- Payments → PostgreSQL: records payment
- Payments → Booking engine: confirms atomically
- Payments → Payment gateway: initiates payment
- Notifications → PostgreSQL: polls outbox
- Notifications → Email delivery: dispatches email