# acostaamericonicolas/cine_acosta architecture

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

- Interactive diagram: https://gitdiagram.com/acostaamericonicolas/cine_acosta
- Repository: https://github.com/acostaamericonicolas/cine_acosta
- Video tour (about a minute): https://gitdiagram.com/acostaamericonicolas/cine_acosta/video

## Overview

Cine Acosta is a cinema web app covering film discovery, ticket and candy sales, customer accounts, staff ticket validation, and administrative operations. The main public journey is routed through the home, film-detail, purchase, and receipt/search screens; the README documents seat selection, payment, coupons, points, and candy as purchase capabilities. Groups reflect these user areas plus shared access and backend services. Feature-level wiring is only sampled at the router, so the graph shows route dispatch rather than presumed component-to-service calls.

Main entry points: [`cine/src/app/app.routes.ts`](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/app.routes.ts) (Application routes), [`cine/src/app/features/publico/compra/compra.ts`](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/publico/compra/compra.ts) (Ticket purchase), [`cine/src/app/app.ts`](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/app.ts) (Application shell), [`cine/src/app/features/cliente/cliente.routes.ts`](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/cliente/cliente.routes.ts) (Customer routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public cinema"]
  node_public_home["Home and catalog<br/>[home.ts]"]
  node_film_detail["Film details"]
  node_purchase["Ticket purchase<br/>[compra.ts]"]
  node_seat_map["Seat selection<br/>[mapa-butacas.ts]"]
  node_payment["Candy and payment<br/>[paso-pago.ts]"]
  node_candy_step["Candy selection<br/>[paso-candy.ts]"]
  node_receipt["Receipt and QR<br/>[comprobante.ts]"]
  node_purchase_lookup["Guest purchase lookup<br/>[buscar-compra.ts]"]
  node_login["Login and registration<br/>[login.ts]"]
end

subgraph group_customer["Customer account"]
  node_customer_routes["Customer routes<br/>[cliente.routes.ts]"]
  node_profile["Profile and rewards<br/>[perfil.ts]"]
  node_purchase_history["Purchase history<br/>[mis-compras.ts]"]
end

subgraph group_operations["Staff and administration"]
  node_employee_routes["Employee routes<br/>[empleado.routes.ts]"]
  node_validation["Ticket validation<br/>[validacion.ts]"]
  node_admin_routes["Admin routes<br/>[admin.routes.ts]"]
  node_admin_features["Cinema administration"]
end

subgraph group_shared["Shared application"]
  node_routes["Application routes<br/>[app.routes.ts]"]
  node_app_root["Application shell<br/>[app.ts]"]
  node_app_config["Application configuration<br/>[app.config.ts]"]
  node_service_worker["PWA service worker<br/>[ngsw-worker.js]"]
end

subgraph group_backend["Backend services"]
  node_auth_service["Authentication<br/>[auth.ts]"]
  node_alert_service["Sales alerts<br/>[alertas.ts]"]
  node_live_catalog["Live catalog<br/>[catalogo-vivo.ts]"]
  node_supabase_client["Supabase client<br/>[supabase.ts]"]
end

node_visitor(("Visitor"))
node_customer_actor(("Customer"))
node_employee_actor(("Employee"))
node_admin_actor(("Administrator"))
node_supabase[("Supabase")]

node_visitor -->|"opens"| node_routes
node_customer_actor -->|"opens"| node_routes
node_employee_actor -->|"opens"| node_routes
node_admin_actor -->|"opens"| node_routes
node_routes -->|"loads"| node_public_home
node_routes -->|"loads"| node_film_detail
node_routes -->|"loads"| node_purchase
node_routes -->|"loads"| node_receipt
node_routes -->|"loads"| node_purchase_lookup
node_routes -->|"loads"| node_login
node_routes -->|"loads"| node_customer_routes
node_customer_routes -->|"loads"| node_profile
node_customer_routes -->|"loads"| node_purchase_history
node_routes -.->|"loads"| node_employee_routes
node_employee_routes -->|"loads"| node_validation
node_routes -.->|"loads"| node_admin_routes
node_admin_routes -->|"loads"| node_admin_features
node_purchase -->|"uses"| node_seat_map
node_purchase -->|"includes"| node_candy_step
node_purchase -->|"includes"| node_payment
node_app_root -->|"reads session"| node_auth_service
node_app_root -->|"checks alerts"| node_alert_service
node_app_root -->|"observes catalog"| node_live_catalog
node_auth_service -->|"uses"| node_supabase_client
node_supabase_client -->|"connects"| node_supabase
node_app_config -->|"registers"| node_service_worker

click node_routes "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/app.routes.ts"
click node_public_home "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/publico/home/home.ts"
click node_film_detail "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/publico/detalle-pelicula/detalle-pelicula.ts"
click node_purchase "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/publico/compra/compra.ts"
click node_seat_map "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/shared/componentes/mapa-butacas/mapa-butacas.ts"
click node_payment "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/publico/compra/paso-pago/paso-pago.ts"
click node_candy_step "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/publico/compra/paso-candy/paso-candy.ts"
click node_receipt "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/publico/comprobante/comprobante.ts"
click node_purchase_lookup "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/publico/buscar-compra/buscar-compra.ts"
click node_login "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/publico/login/login.ts"
click node_customer_routes "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/cliente/cliente.routes.ts"
click node_profile "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/cliente/perfil/perfil.ts"
click node_purchase_history "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/cliente/mis-compras/mis-compras.ts"
click node_employee_routes "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/empleado/empleado.routes.ts"
click node_validation "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/empleado/validacion/validacion.ts"
click node_admin_routes "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/admin/admin.routes.ts"
click node_admin_features "https://github.com/acostaamericonicolas/cine_acosta/tree/main/cine/src/app/features/admin"
click node_app_root "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/app.ts"
click node_auth_service "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/services/auth.ts"
click node_alert_service "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/services/alertas.ts"
click node_live_catalog "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/services/catalogo-vivo.ts"
click node_supabase_client "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/services/supabase.ts"
click node_app_config "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/app.config.ts"
click node_service_worker "https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/public/ngsw-worker.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_public_home,node_film_detail,node_purchase,node_seat_map,node_payment,node_candy_step,node_receipt,node_purchase_lookup,node_login toneBlue
class node_customer_routes,node_profile,node_purchase_history,node_supabase toneAmber
class node_employee_routes,node_validation,node_admin_routes,node_admin_features toneMint
class node_routes,node_app_root,node_app_config,node_service_worker toneRose
class node_auth_service,node_alert_service,node_live_catalog,node_supabase_client,node_visitor,node_customer_actor,node_employee_actor,node_admin_actor toneIndigo
```

## Components

### Public cinema

- [Home and catalog](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/publico/home/home.ts): `cine/src/app/features/publico/home/home.ts`
- [Film details](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/publico/detalle-pelicula/detalle-pelicula.ts): `cine/src/app/features/publico/detalle-pelicula/detalle-pelicula.ts`
- [Ticket purchase](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/publico/compra/compra.ts): `cine/src/app/features/publico/compra/compra.ts`
- [Seat selection](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/shared/componentes/mapa-butacas/mapa-butacas.ts): `cine/src/app/shared/componentes/mapa-butacas/mapa-butacas.ts`
- [Candy and payment](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/publico/compra/paso-pago/paso-pago.ts): `cine/src/app/features/publico/compra/paso-pago/paso-pago.ts`
- [Candy selection](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/publico/compra/paso-candy/paso-candy.ts): `cine/src/app/features/publico/compra/paso-candy/paso-candy.ts`
- [Receipt and QR](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/publico/comprobante/comprobante.ts): `cine/src/app/features/publico/comprobante/comprobante.ts`
- [Guest purchase lookup](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/publico/buscar-compra/buscar-compra.ts): `cine/src/app/features/publico/buscar-compra/buscar-compra.ts`
- [Login and registration](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/publico/login/login.ts): `cine/src/app/features/publico/login/login.ts`

### Customer account

- [Customer routes](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/cliente/cliente.routes.ts): `cine/src/app/features/cliente/cliente.routes.ts`
- [Profile and rewards](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/cliente/perfil/perfil.ts): `cine/src/app/features/cliente/perfil/perfil.ts`
- [Purchase history](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/cliente/mis-compras/mis-compras.ts): `cine/src/app/features/cliente/mis-compras/mis-compras.ts`

### Staff and administration

- [Employee routes](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/empleado/empleado.routes.ts): `cine/src/app/features/empleado/empleado.routes.ts`
- [Ticket validation](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/empleado/validacion/validacion.ts): `cine/src/app/features/empleado/validacion/validacion.ts`
- [Admin routes](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/features/admin/admin.routes.ts): `cine/src/app/features/admin/admin.routes.ts`
- [Cinema administration](https://github.com/acostaamericonicolas/cine_acosta/tree/main/cine/src/app/features/admin): `cine/src/app/features/admin`

### Shared application

- [Application routes](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/app.routes.ts): `cine/src/app/app.routes.ts`
- [Application shell](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/app.ts): `cine/src/app/app.ts`
- [Application configuration](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/app.config.ts): `cine/src/app/app.config.ts`
- [PWA service worker](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/public/ngsw-worker.js): `cine/public/ngsw-worker.js`

### Backend services

- [Authentication](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/services/auth.ts): `cine/src/app/services/auth.ts`
- [Sales alerts](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/services/alertas.ts): `cine/src/app/services/alertas.ts`
- [Live catalog](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/services/catalogo-vivo.ts): `cine/src/app/services/catalogo-vivo.ts`
- [Supabase client](https://github.com/acostaamericonicolas/cine_acosta/blob/main/cine/src/app/services/supabase.ts): `cine/src/app/services/supabase.ts`

### Other components

- **Visitor**
- **Customer**
- **Employee**
- **Administrator**
- **Supabase**

## Connections

- Visitor → Application routes: opens
- Customer → Application routes: opens
- Employee → Application routes: opens
- Administrator → Application routes: opens
- Application routes → Home and catalog: loads
- Application routes → Film details: loads
- Application routes → Ticket purchase: loads
- Application routes → Receipt and QR: loads
- Application routes → Guest purchase lookup: loads
- Application routes → Login and registration: loads
- Application routes → Customer routes: loads
- Customer routes → Profile and rewards: loads
- Customer routes → Purchase history: loads
- Application routes → Employee routes: loads
- Employee routes → Ticket validation: loads
- Application routes → Admin routes: loads
- Admin routes → Cinema administration: loads
- Ticket purchase → Seat selection: uses
- Ticket purchase → Candy selection: includes
- Ticket purchase → Candy and payment: includes
- Application shell → Authentication: reads session
- Application shell → Sales alerts: checks alerts
- Application shell → Live catalog: observes catalog
- Authentication → Supabase client: uses
- Supabase client → Supabase: connects
- Application configuration → PWA service worker: registers
