How sagamdeep826-pixel/project-imovies works
IMovies is a cinema discovery and ticket-booking platform with real-time seat holds, QR ticket vouchers, cancellations/refunds, and an administrator portal. Moviegoers discover titles and local showtimes, select seats, check out, and receive a booking confirmation; administrators manage catalog, theatres, shows, and analytics. The graph follows the client entry point and API calls into the server, with booking persistence and seat updates shown where excerpts support them. Several feature pages and backend routes are unsampled, so README-described capabilities are retained without asserting unverified internal call chains.
Main entry points: App.jsx Web app · server.js HTTP and socket server · api.js API client · SeatSelectionPage.jsx Seat selection
Components 23
Moviegoer experience
- Web app
client/src/App.jsx - Authentication state
client/src/context/AuthContext.jsx - City selection
client/src/context/CityContext.jsx - Movie discovery
client/src/pages/HomePage.jsx - Movie details
client/src/pages/MovieDetailsPage.jsx - Theatre discovery
client/src/pages/TheatresPage.jsx - API client
client/src/services/api.js
Booking and live seats
- Seat selection
client/src/pages/SeatSelectionPage.jsx - Live seat socket
client/src/context/SocketContext.jsx - Checkout
client/src/pages/CheckoutPage.jsx - Ticket confirmation
client/src/pages/BookingConfirmationPage.jsx - User bookings
client/src/pages/UserDashboardPage.jsx
Cinema administration
- Admin portal
client/src/pages/AdminDashboardPage.jsx
API and domain services
- HTTP and socket server
server/src/server.js - Catalog and show services
server/src/controllers/movieController.js - Show and seat setup
server/src/controllers/showController.js - Booking and cancellation
server/src/controllers/bookingController.js - Authentication service
server/src/controllers/authController.js - Revenue analytics
server/src/controllers/analyticsController.js
Persistence and identity
- Domain records
server/src/models - MongoDB
server/src/config/db.js
Other components
- Moviegoer
- Cinema administrator
Connections 40
- Moviegoer → Web app: uses
- Web app → Movie discovery: routes to
client/src/App.jsx - Web app → Movie details: routes to
client/src/App.jsx - Web app → Seat selection: routes to
client/src/App.jsx - Web app → Checkout: routes to
client/src/App.jsx - Web app → Ticket confirmation: routes to
client/src/App.jsx - Web app → Theatre discovery: routes to
client/src/App.jsx - Web app → User bookings: routes to
client/src/App.jsx - Web app → Admin portal: routes to
client/src/App.jsx - Web app → Authentication state: provides
client/src/App.jsx - Web app → City selection: provides
client/src/App.jsx - Movie discovery → API client: requests data
- Movie details → API client: requests data
- Theatre discovery → API client: requests data
- Seat selection → API client: requests data
client/src/pages/SeatSelectionPage.jsx - Seat selection → Live seat socket: uses live updates
client/src/pages/SeatSelectionPage.jsx - Checkout → API client: submits booking
client/src/pages/CheckoutPage.jsx - User bookings → API client: loads bookings
client/src/pages/UserDashboardPage.jsx - Admin portal → API client: manages cinema
client/src/pages/AdminDashboardPage.jsx - Authentication state → API client: authenticates
client/src/context/AuthContext.jsx - City selection → API client: loads cities
client/src/context/CityContext.jsx - API client → HTTP and socket server: calls API
client/src/services/api.js - HTTP and socket server → Catalog and show services: mounts routes
server/src/server.js - HTTP and socket server → Show and seat setup: mounts routes
server/src/server.js - HTTP and socket server → Booking and cancellation: mounts routes
server/src/server.js - HTTP and socket server → Authentication service: mounts routes
server/src/server.js - HTTP and socket server → Revenue analytics: mounts routes
server/src/server.js - HTTP and socket server → MongoDB: connects
server/src/server.js - HTTP and socket server → Live seat socket: serves live seat events
- Catalog and show services → Domain records: reads and writes
server/src/controllers/movieController.js - Show and seat setup → Domain records: creates shows and seats
server/src/controllers/showController.js - Booking and cancellation → Domain records: records bookings and payments
server/src/controllers/bookingController.js - Booking and cancellation → HTTP and socket server: broadcasts seat changes
server/src/controllers/bookingController.js - Authentication service → Domain records: uses users
server/src/controllers/authController.js - Cinema administrator → Admin portal: manages
- Admin portal → Revenue analytics: views metrics
- MongoDB → Domain records: persists
- Moviegoer → Seat selection: selects seats
- Seat selection → Checkout: continues booking
- Checkout → Ticket confirmation: confirms purchase