How git-aryan07/movieticketbooking works
QuickShow is a MERN movie-ticket booking application. Moviegoers browse movies and showtimes, choose seats, pay through Stripe, and manage bookings and favorites; administrators manage shows and review booking analytics. The backend also synchronizes Clerk users and runs booking-expiry, confirmation, reminder, and new-show email workflows. Frontend-to-API details and webhook internals are only partially sampled, so those connections are limited to documented or visible entry points.
Main entry points: server.js Express server · App.jsx React application · index.js Event workflows · Booking.js MongoDB models
Components 27
Customer experience
- React application
frontend/src/App.jsx - Movie discovery
frontend/src/pages/Home.jsx - Movie details
frontend/src/pages/MovieDetails.jsx - Seat selection
frontend/src/pages/SeatLayout.jsx - My bookings
frontend/src/pages/MyBookings.jsx - Favorites
frontend/src/pages/Favorite.jsx
Admin operations
- Admin screens
frontend/src/pages/admin/Layout.jsx - Dashboard
frontend/src/pages/admin/Dashboard.jsx - Show management
frontend/src/pages/admin/AddShows.jsx - Booking management
frontend/src/pages/admin/ListBookings.jsx
Backend API
- Express server
backend/server.js - Movie and show API
backend/controllers/showController.js - Booking API
backend/controllers/bookingController.js - User account API
backend/controllers/userController.js - Admin API
backend/controllers/adminController.js - Stripe webhook
backend/controllers/stripeWebhooks.js - Auth middleware
backend/middleware/auth.js
Data and workflows
- MongoDB models
backend/models/Booking.js - Event workflows
backend/inngest/index.js - Email delivery
backend/configs/nodeMailer.js
Other components
- Moviegoer
- Administrator
- Clerk
- Stripe
- TMDB
- MongoDB
- Email service
Connections 34
- Moviegoer → React application: uses
- Administrator → React application: uses
- React application → Movie discovery: routes
- React application → Movie details: routes
- React application → Seat selection: routes
- React application → My bookings: routes
- React application → Favorites: routes
- React application → Admin screens: routes
- Admin screens → Dashboard: routes
- Admin screens → Show management: routes
- Admin screens → Booking management: routes
- React application → Express server: API requests
- Express server → Movie and show API: dispatches
- Express server → Booking API: dispatches
- Express server → User account API: dispatches
- Express server → Admin API: dispatches
- Express server → Stripe webhook: dispatches
- Express server → Auth middleware: uses
- Movie and show API → MongoDB models: reads/writes
- Booking API → MongoDB models: reads/writes
- User account API → MongoDB models: reads
- Admin API → MongoDB models: reads
- Movie and show API → TMDB: fetches titles
- Booking API → Stripe: creates checkout
- Booking API → Event workflows: sends expiry event
- Movie and show API → Event workflows: sends show event
- Event workflows → MongoDB models: reads/writes
- Event workflows → Email delivery: sends notifications
- Event workflows → Email service: delivers email
- Express server → Event workflows: serves functions
- Express server → Clerk: auth middleware
- Event workflows → Clerk: syncs user events
- Stripe → Express server: webhook events
- Email delivery → Email service: sends