# deepacknavaraj1404-coder/moviebooking architecture

> Architecture diagram of the GitHub repository deepacknavaraj1404-coder/moviebooking, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/deepacknavaraj1404-coder/moviebooking
- Repository: https://github.com/deepacknavaraj1404-coder/moviebooking

## Overview

CineVerse is a movie-ticket booking platform: visitors browse and search films, inspect details and trailers, authenticate, and book showtime seats; users can revisit or cancel bookings, while administrators manage the catalog and verify tickets. The React app communicates through an API client with Express routes, which use a shared store; the README documents MongoDB with an in-memory fallback. The graph preserves documented theater, showtime, review, and admin capabilities. Several client components and backend routes were not sampled, so uncertain internal calls are omitted.

Main entry points: [`client/src/App.jsx`](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/App.jsx) (App coordinator), [`server/src/server.js`](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/server.js) (Express API), [`server/src/services/store.js`](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/services/store.js) (Data store), [`server/src/middleware/auth.js`](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/middleware/auth.js) (Access control)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Customer web app"]
  node_app["App coordinator<br/>[App.jsx]"]
  node_authcontext["Auth state<br/>[AuthContext.jsx]"]
  node_moviebrowse["Movie browsing<br/>[MovieGrid.jsx]"]
  node_details["Movie details"]
  node_bookingui["Booking flow<br/>[BookingModal.jsx]"]
  node_mybookings["My bookings"]
  node_adminui["Admin portal<br/>[AdminPortal.jsx]"]
  node_authui["Sign-in form<br/>[AuthModal.jsx]"]
  node_trailers["Trailer player<br/>[TrailerModal.jsx]"]
  node_apiclient["API client<br/>[api.js]"]
end

subgraph group_api["API and workflows"]
  node_express["Express API<br/>[server.js]"]
  node_authroutes["Authentication<br/>[authRoutes.js]"]
  node_movieroutes["Movie catalog<br/>[movieRoutes.js]"]
  node_theaterroutes["Theaters<br/>[theaterRoutes.js]"]
  node_showtimeroutes["Showtimes<br/>[showtimeRoutes.js]"]
  node_bookingroutes["Bookings<br/>[bookingRoutes.js]"]
  node_adminroutes["Admin operations<br/>[adminRoutes.js]"]
  node_reviewroutes["Movie reviews<br/>[reviewRoutes.js]"]
  node_authmiddleware["Access control<br/>[auth.js]"]
end

subgraph group_data["Persistence"]
  node_store["Data store<br/>[store.js]"]
  node_dbconfig["Database connection<br/>[db.js]"]
end

node_visitor(("Moviegoer"))
node_mongodb[("MongoDB")]

node_visitor -->|"uses"| node_app
node_app -->|"loads movies"| node_apiclient
node_app -->|"renders"| node_moviebrowse
node_app -->|"opens"| node_details
node_app -->|"opens booking"| node_bookingui
node_app -->|"opens bookings"| node_mybookings
node_app -->|"shows admin"| node_adminui
node_app -->|"opens trailer"| node_trailers
node_app -->|"renders"| node_authui
node_authui -->|"submits credentials"| node_authcontext
node_authcontext -->|"requests auth"| node_apiclient
node_express -->|"mounts"| node_authroutes
node_express -->|"mounts"| node_movieroutes
node_express -->|"mounts"| node_theaterroutes
node_express -->|"mounts"| node_showtimeroutes
node_express -->|"mounts"| node_bookingroutes
node_express -->|"mounts"| node_adminroutes
node_express -->|"mounts"| node_reviewroutes
node_express -->|"connects"| node_dbconfig
node_authroutes -->|"reads and writes"| node_store
node_movieroutes -->|"reads and writes"| node_store
node_bookingroutes -->|"reads and writes"| node_store
node_adminroutes -->|"reads"| node_store
node_reviewroutes -->|"reads and writes"| node_store
node_authroutes -->|"protects profile"| node_authmiddleware
node_bookingroutes -->|"protects bookings"| node_authmiddleware
node_adminroutes -->|"guards admin"| node_authmiddleware
node_movieroutes -->|"guards mutations"| node_authmiddleware
node_dbconfig -->|"connects"| node_mongodb

click node_app "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/App.jsx"
click node_authcontext "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/context/AuthContext.jsx"
click node_moviebrowse "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/components/MovieGrid.jsx"
click node_details "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/components/MovieDetailsModal.jsx"
click node_bookingui "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/components/BookingModal.jsx"
click node_mybookings "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/components/MyBookingsModal.jsx"
click node_adminui "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/components/AdminPortal.jsx"
click node_authui "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/components/AuthModal.jsx"
click node_trailers "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/components/TrailerModal.jsx"
click node_apiclient "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/services/api.js"
click node_express "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/server.js"
click node_authroutes "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/routes/authRoutes.js"
click node_movieroutes "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/routes/movieRoutes.js"
click node_theaterroutes "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/routes/theaterRoutes.js"
click node_showtimeroutes "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/routes/showtimeRoutes.js"
click node_bookingroutes "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/routes/bookingRoutes.js"
click node_adminroutes "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/routes/adminRoutes.js"
click node_reviewroutes "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/routes/reviewRoutes.js"
click node_authmiddleware "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/middleware/auth.js"
click node_store "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/services/store.js"
click node_dbconfig "https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/config/db.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_authcontext,node_moviebrowse,node_details,node_bookingui,node_mybookings,node_adminui,node_authui,node_trailers,node_apiclient toneBlue
class node_express,node_authroutes,node_movieroutes,node_theaterroutes,node_showtimeroutes,node_bookingroutes,node_adminroutes,node_reviewroutes,node_authmiddleware,node_mongodb toneAmber
class node_store,node_dbconfig toneMint
class node_visitor toneIndigo
```

## Components

### Customer web app

- [App coordinator](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/App.jsx): `client/src/App.jsx`
- [Auth state](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/context/AuthContext.jsx): `client/src/context/AuthContext.jsx`
- [Movie browsing](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/components/MovieGrid.jsx): `client/src/components/MovieGrid.jsx`
- [Movie details](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/components/MovieDetailsModal.jsx): `client/src/components/MovieDetailsModal.jsx`
- [Booking flow](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/components/BookingModal.jsx): `client/src/components/BookingModal.jsx`
- [My bookings](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/components/MyBookingsModal.jsx): `client/src/components/MyBookingsModal.jsx`
- [Admin portal](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/components/AdminPortal.jsx): `client/src/components/AdminPortal.jsx`
- [Sign-in form](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/components/AuthModal.jsx): `client/src/components/AuthModal.jsx`
- [Trailer player](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/components/TrailerModal.jsx): `client/src/components/TrailerModal.jsx`
- [API client](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/client/src/services/api.js): `client/src/services/api.js`

### API and workflows

- [Express API](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/server.js): `server/src/server.js`
- [Authentication](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/routes/authRoutes.js): `server/src/routes/authRoutes.js`
- [Movie catalog](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/routes/movieRoutes.js): `server/src/routes/movieRoutes.js`
- [Theaters](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/routes/theaterRoutes.js): `server/src/routes/theaterRoutes.js`
- [Showtimes](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/routes/showtimeRoutes.js): `server/src/routes/showtimeRoutes.js`
- [Bookings](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/routes/bookingRoutes.js): `server/src/routes/bookingRoutes.js`
- [Admin operations](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/routes/adminRoutes.js): `server/src/routes/adminRoutes.js`
- [Movie reviews](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/routes/reviewRoutes.js): `server/src/routes/reviewRoutes.js`
- [Access control](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/middleware/auth.js): `server/src/middleware/auth.js`

### Persistence

- [Data store](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/services/store.js): `server/src/services/store.js`
- [Database connection](https://github.com/deepacknavaraj1404-coder/moviebooking/blob/main/server/src/config/db.js): `server/src/config/db.js`

### Other components

- **Moviegoer**
- **MongoDB**

## Connections

- Moviegoer → App coordinator: uses
- App coordinator → API client: loads movies
- App coordinator → Movie browsing: renders
- App coordinator → Movie details: opens
- App coordinator → Booking flow: opens booking
- App coordinator → My bookings: opens bookings
- App coordinator → Admin portal: shows admin
- App coordinator → Trailer player: opens trailer
- App coordinator → Sign-in form: renders
- Sign-in form → Auth state: submits credentials
- Auth state → API client: requests auth
- Express API → Authentication: mounts
- Express API → Movie catalog: mounts
- Express API → Theaters: mounts
- Express API → Showtimes: mounts
- Express API → Bookings: mounts
- Express API → Admin operations: mounts
- Express API → Movie reviews: mounts
- Express API → Database connection: connects
- Authentication → Data store: reads and writes
- Movie catalog → Data store: reads and writes
- Bookings → Data store: reads and writes
- Admin operations → Data store: reads
- Movie reviews → Data store: reads and writes
- Authentication → Access control: protects profile
- Bookings → Access control: protects bookings
- Admin operations → Access control: guards admin
- Movie catalog → Access control: guards mutations
- Database connection → MongoDB: connects
