# vanthang-lvt/tram_phim_backup architecture

> Architecture diagram of the GitHub repository vanthang-lvt/tram_phim_backup, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vanthang-lvt/tram_phim_backup
- Repository: https://github.com/vanthang-lvt/tram_phim_backup

## Overview

Trạm Phim is a movie-ticket booking application with customer booking and payment flows plus an administrator console. Customers browse films and showtimes, select seats, create a booking, and complete QR payment; accounts and booking history support that journey. The frontend routes screens and calls a Spring backend, which exposes domain APIs backed by MySQL. The README also documents payment confirmation, email tickets, room/seat management, and reporting. Backend source was not sampled, so those documented capabilities are shown as subsystems without asserted internal call paths.

Main entry points: [`FE_TramPhim/cineaura-login/cineaura-login/src/App.tsx`](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/App.tsx) (Application routes), [`BE_TramPhim/servermovie/servermovie/demo/src/main/java/com/example/controller`](https://github.com/vanthang-lvt/tram_phim_backup/tree/main/BE_TramPhim/servermovie/servermovie/demo/src/main/java/com/example/controller) (Spring Boot API), [`FE_TramPhim/cineaura-login/cineaura-login/src/api/auth.ts`](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/api/auth.ts) (Authentication API client), [`FE_TramPhim/cineaura-login/cineaura-login/src/api/movies.ts`](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/api/movies.ts) (Movie API client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_customer["Customer booking"]
  node_catalog["Film discovery<br/>[MovieListPage.tsx]"]
  node_movie_detail["Movie details"]
  node_showtime_ui["Showtime browsing<br/>[ShowtimePage.tsx]"]
  node_seat_ui["Seat selection"]
  node_payment_ui["Payment screen<br/>[PaymentPage.tsx]"]
  node_account_ui["Account screens<br/>[RegisterPage.tsx]"]
  node_home_ui["Home discovery<br/>[HomePage.tsx]"]
  node_profile_ui["Booking history<br/>[ProfilePage.tsx]"]
end

subgraph group_frontend["Web application"]
  node_router["Application routes<br/>[App.tsx]"]
  node_session[("Session storage<br/>[session.ts]")]
  node_auth_api["Authentication API client<br/>[auth.ts]"]
  node_movie_api["Movie API client<br/>[movies.ts]"]
  node_showtime_api["Showtime API client<br/>[showtimes.ts]"]
  node_booking_api["Booking API client<br/>[bookings.ts]"]
end

subgraph group_backend["Backend services"]
  node_backend["Spring Boot API"]
  node_movie_service["Film and genre services<br/>[MovieService.java]"]
  node_booking_service["Booking and cleanup"]
  node_payment_service["QR payment"]
  node_webhook_service["Payment confirmation"]
  node_email_service["Ticket email<br/>[EmailService.java]"]
  node_mysql[("MySQL database<br/>[bookticket68.sql]")]
end

subgraph group_admin["Administration"]
  node_admin_dashboard["Dashboard and reports"]
  node_admin_movies["Film management"]
  node_admin_showtimes["Showtime management"]
  node_admin_rooms["Room and seat management"]
  node_admin_revenue["Revenue reports"]
end

subgraph group_integrations["External services"]
  node_sepay{{"SePay"}}
  node_vietqr{{"VietQR"}}
  node_brevo{{"Brevo SMTP"}}
  node_google{{"Google Login"}}
end

node_visitor(("Customer"))
node_admin_actor(("Administrator"))

node_visitor -->|"opens app"| node_router
node_admin_actor -->|"opens console"| node_router
node_router -->|"routes to"| node_home_ui
node_router -->|"routes to"| node_catalog
node_router -->|"routes to"| node_movie_detail
node_router -->|"routes to"| node_showtime_ui
node_router -->|"routes to"| node_seat_ui
node_router -->|"routes to"| node_payment_ui
node_router -->|"routes to"| node_account_ui
node_router -->|"routes to"| node_profile_ui
node_router -->|"routes to"| node_admin_dashboard
node_router -->|"routes to"| node_admin_movies
node_router -->|"routes to"| node_admin_showtimes
node_router -->|"routes to"| node_admin_rooms
node_router -->|"routes to"| node_admin_revenue
node_home_ui -->|"fetches listings"| node_movie_api
node_catalog -->|"loads films"| node_movie_api
node_movie_detail -->|"loads film"| node_movie_api
node_movie_detail -->|"loads showtimes"| node_showtime_api
node_showtime_ui -->|"loads schedules"| node_showtime_api
node_seat_ui -->|"loads seats"| node_showtime_api
node_seat_ui -->|"creates booking"| node_booking_api
node_payment_ui -->|"checks payment"| node_booking_api
node_profile_ui -->|"loads history"| node_booking_api
node_account_ui -->|"registers account"| node_auth_api
node_auth_api -->|"HTTP auth"| node_backend
node_movie_api -->|"HTTP film requests"| node_backend
node_showtime_api -->|"HTTP schedule requests"| node_backend
node_booking_api -->|"HTTP booking requests"| node_backend
node_backend -.->|"persists domain data"| node_mysql
node_backend -.->|"delegates film work"| node_movie_service
node_backend -.->|"delegates bookings"| node_booking_service
node_booking_service -.->|"prepares QR payment"| node_payment_service
node_sepay -.->|"sends payment notice"| node_webhook_service
node_webhook_service -.->|"triggers ticket email"| node_email_service
node_payment_service -.->|"creates QR"| node_vietqr
node_email_service -.->|"sends via SMTP"| node_brevo
node_auth_api -.->|"Google credential login"| node_google
node_admin_movies -->|"HTTP film administration"| node_backend
node_admin_showtimes -->|"HTTP schedule administration"| node_backend
node_admin_dashboard -.->|"loads statistics"| node_backend
node_admin_rooms -.->|"manages room seats"| node_backend
node_admin_revenue -.->|"loads revenue reports"| node_backend
node_auth_api -.->|"stores login result"| node_session
node_visitor -->|"signs in or registers"| node_account_ui

click node_router "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/App.tsx"
click node_catalog "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/MovieListPage.tsx"
click node_movie_detail "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/MovieDetailPage.tsx"
click node_showtime_ui "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/ShowtimePage.tsx"
click node_seat_ui "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/SeatSelectionPage.tsx"
click node_payment_ui "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/PaymentPage.tsx"
click node_account_ui "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/RegisterPage.tsx"
click node_home_ui "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/HomePage.tsx"
click node_profile_ui "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/ProfilePage.tsx"
click node_session "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/auth/session.ts"
click node_auth_api "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/api/auth.ts"
click node_movie_api "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/api/movies.ts"
click node_showtime_api "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/api/showtimes.ts"
click node_booking_api "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/api/bookings.ts"
click node_backend "https://github.com/vanthang-lvt/tram_phim_backup/tree/main/BE_TramPhim/servermovie/servermovie/demo/src/main/java/com/example/controller"
click node_movie_service "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/BE_TramPhim/servermovie/servermovie/demo/src/main/java/com/example/service/MovieService.java"
click node_booking_service "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/BE_TramPhim/servermovie/servermovie/demo/src/main/java/com/example/service/BookingServiceImpl.java"
click node_payment_service "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/BE_TramPhim/servermovie/servermovie/demo/src/main/java/com/example/service/VietQrPaymentService.java"
click node_webhook_service "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/BE_TramPhim/servermovie/servermovie/demo/src/main/java/com/example/service/SePayWebhookService.java"
click node_email_service "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/BE_TramPhim/servermovie/servermovie/demo/src/main/java/com/example/service/EmailService.java"
click node_admin_dashboard "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/admin/AdminDashboardPage.tsx"
click node_admin_movies "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/admin/AdminMoviesPage.tsx"
click node_admin_showtimes "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/admin/AdminShowtimesPage.tsx"
click node_admin_rooms "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/admin/AdminRoomSeatPage.tsx"
click node_admin_revenue "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/admin/AdminRevenuePage.tsx"
click node_mysql "https://github.com/vanthang-lvt/tram_phim_backup/blob/main/DataBase/bookticket68.sql"

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_catalog,node_movie_detail,node_showtime_ui,node_seat_ui,node_payment_ui,node_account_ui,node_home_ui,node_profile_ui toneBlue
class node_router,node_session,node_auth_api,node_movie_api,node_showtime_api,node_booking_api toneAmber
class node_backend,node_movie_service,node_booking_service,node_payment_service,node_webhook_service,node_email_service,node_mysql toneMint
class node_admin_dashboard,node_admin_movies,node_admin_showtimes,node_admin_rooms,node_admin_revenue toneRose
class node_sepay,node_vietqr,node_brevo,node_google,node_visitor,node_admin_actor toneIndigo
```

## Components

### Customer booking

- [Film discovery](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/MovieListPage.tsx): `FE_TramPhim/cineaura-login/cineaura-login/src/pages/MovieListPage.tsx`
- [Movie details](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/MovieDetailPage.tsx): `FE_TramPhim/cineaura-login/cineaura-login/src/pages/MovieDetailPage.tsx`
- [Showtime browsing](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/ShowtimePage.tsx): `FE_TramPhim/cineaura-login/cineaura-login/src/pages/ShowtimePage.tsx`
- [Seat selection](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/SeatSelectionPage.tsx): `FE_TramPhim/cineaura-login/cineaura-login/src/pages/SeatSelectionPage.tsx`
- [Payment screen](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/PaymentPage.tsx): `FE_TramPhim/cineaura-login/cineaura-login/src/pages/PaymentPage.tsx`
- [Account screens](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/RegisterPage.tsx): `FE_TramPhim/cineaura-login/cineaura-login/src/pages/RegisterPage.tsx`
- [Home discovery](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/HomePage.tsx): `FE_TramPhim/cineaura-login/cineaura-login/src/pages/HomePage.tsx`
- [Booking history](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/ProfilePage.tsx): `FE_TramPhim/cineaura-login/cineaura-login/src/pages/ProfilePage.tsx`

### Web application

- [Application routes](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/App.tsx): `FE_TramPhim/cineaura-login/cineaura-login/src/App.tsx`
- [Session storage](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/auth/session.ts): `FE_TramPhim/cineaura-login/cineaura-login/src/auth/session.ts`
- [Authentication API client](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/api/auth.ts): `FE_TramPhim/cineaura-login/cineaura-login/src/api/auth.ts`
- [Movie API client](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/api/movies.ts): `FE_TramPhim/cineaura-login/cineaura-login/src/api/movies.ts`
- [Showtime API client](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/api/showtimes.ts): `FE_TramPhim/cineaura-login/cineaura-login/src/api/showtimes.ts`
- [Booking API client](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/api/bookings.ts): `FE_TramPhim/cineaura-login/cineaura-login/src/api/bookings.ts`

### Backend services

- [Spring Boot API](https://github.com/vanthang-lvt/tram_phim_backup/tree/main/BE_TramPhim/servermovie/servermovie/demo/src/main/java/com/example/controller): `BE_TramPhim/servermovie/servermovie/demo/src/main/java/com/example/controller`
- [Film and genre services](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/BE_TramPhim/servermovie/servermovie/demo/src/main/java/com/example/service/MovieService.java): `BE_TramPhim/servermovie/servermovie/demo/src/main/java/com/example/service/MovieService.java`
- [Booking and cleanup](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/BE_TramPhim/servermovie/servermovie/demo/src/main/java/com/example/service/BookingServiceImpl.java): `BE_TramPhim/servermovie/servermovie/demo/src/main/java/com/example/service/BookingServiceImpl.java`
- [QR payment](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/BE_TramPhim/servermovie/servermovie/demo/src/main/java/com/example/service/VietQrPaymentService.java): `BE_TramPhim/servermovie/servermovie/demo/src/main/java/com/example/service/VietQrPaymentService.java`
- [Payment confirmation](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/BE_TramPhim/servermovie/servermovie/demo/src/main/java/com/example/service/SePayWebhookService.java): `BE_TramPhim/servermovie/servermovie/demo/src/main/java/com/example/service/SePayWebhookService.java`
- [Ticket email](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/BE_TramPhim/servermovie/servermovie/demo/src/main/java/com/example/service/EmailService.java): `BE_TramPhim/servermovie/servermovie/demo/src/main/java/com/example/service/EmailService.java`
- [MySQL database](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/DataBase/bookticket68.sql): `DataBase/bookticket68.sql`

### Administration

- [Dashboard and reports](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/admin/AdminDashboardPage.tsx): `FE_TramPhim/cineaura-login/cineaura-login/src/pages/admin/AdminDashboardPage.tsx`
- [Film management](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/admin/AdminMoviesPage.tsx): `FE_TramPhim/cineaura-login/cineaura-login/src/pages/admin/AdminMoviesPage.tsx`
- [Showtime management](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/admin/AdminShowtimesPage.tsx): `FE_TramPhim/cineaura-login/cineaura-login/src/pages/admin/AdminShowtimesPage.tsx`
- [Room and seat management](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/admin/AdminRoomSeatPage.tsx): `FE_TramPhim/cineaura-login/cineaura-login/src/pages/admin/AdminRoomSeatPage.tsx`
- [Revenue reports](https://github.com/vanthang-lvt/tram_phim_backup/blob/main/FE_TramPhim/cineaura-login/cineaura-login/src/pages/admin/AdminRevenuePage.tsx): `FE_TramPhim/cineaura-login/cineaura-login/src/pages/admin/AdminRevenuePage.tsx`

### External services

- **SePay**
- **VietQR**
- **Brevo SMTP**
- **Google Login**

### Other components

- **Customer**
- **Administrator**

## Connections

- Customer → Application routes: opens app (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/App.tsx`)
- Administrator → Application routes: opens console (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/App.tsx`)
- Application routes → Home discovery: routes to (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/App.tsx`)
- Application routes → Film discovery: routes to (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/App.tsx`)
- Application routes → Movie details: routes to (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/App.tsx`)
- Application routes → Showtime browsing: routes to (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/App.tsx`)
- Application routes → Seat selection: routes to (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/App.tsx`)
- Application routes → Payment screen: routes to (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/App.tsx`)
- Application routes → Account screens: routes to (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/App.tsx`)
- Application routes → Booking history: routes to (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/App.tsx`)
- Application routes → Dashboard and reports: routes to (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/App.tsx`)
- Application routes → Film management: routes to (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/App.tsx`)
- Application routes → Showtime management: routes to (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/App.tsx`)
- Application routes → Room and seat management: routes to (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/App.tsx`)
- Application routes → Revenue reports: routes to (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/App.tsx`)
- Home discovery → Movie API client: fetches listings (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/pages/HomePage.tsx`)
- Film discovery → Movie API client: loads films (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/pages/MovieListPage.tsx`)
- Movie details → Movie API client: loads film (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/pages/MovieDetailPage.tsx`)
- Movie details → Showtime API client: loads showtimes (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/pages/MovieDetailPage.tsx`)
- Showtime browsing → Showtime API client: loads schedules (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/pages/ShowtimePage.tsx`)
- Seat selection → Showtime API client: loads seats (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/pages/SeatSelectionPage.tsx`)
- Seat selection → Booking API client: creates booking (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/pages/SeatSelectionPage.tsx`)
- Payment screen → Booking API client: checks payment (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/pages/PaymentPage.tsx`)
- Booking history → Booking API client: loads history (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/pages/ProfilePage.tsx`)
- Account screens → Authentication API client: registers account (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/pages/RegisterPage.tsx`)
- Authentication API client → Spring Boot API: HTTP auth (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/api/auth.ts`)
- Movie API client → Spring Boot API: HTTP film requests (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/api/movies.ts`)
- Showtime API client → Spring Boot API: HTTP schedule requests (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/api/showtimes.ts`)
- Booking API client → Spring Boot API: HTTP booking requests (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/api/bookings.ts`)
- Spring Boot API → MySQL database: persists domain data
- Spring Boot API → Film and genre services: delegates film work
- Spring Boot API → Booking and cleanup: delegates bookings
- Booking and cleanup → QR payment: prepares QR payment
- SePay → Payment confirmation: sends payment notice (evidence: `README.md`)
- Payment confirmation → Ticket email: triggers ticket email (evidence: `README.md`)
- QR payment → VietQR: creates QR (evidence: `README.md`)
- Ticket email → Brevo SMTP: sends via SMTP (evidence: `README.md`)
- Authentication API client → Google Login: Google credential login (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/api/auth.ts`)
- Film management → Spring Boot API: HTTP film administration (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/pages/admin/AdminMoviesPage.tsx`)
- Showtime management → Spring Boot API: HTTP schedule administration (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/pages/admin/AdminShowtimesPage.tsx`)
- Dashboard and reports → Spring Boot API: loads statistics
- Room and seat management → Spring Boot API: manages room seats
- Revenue reports → Spring Boot API: loads revenue reports
- Authentication API client → Session storage: stores login result (evidence: `FE_TramPhim/cineaura-login/cineaura-login/src/auth/session.ts`)
- Customer → Account screens: signs in or registers
