# berker00/uludagbilet architecture

> Architecture diagram of the GitHub repository berker00/uludagbilet, 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/berker00/uludagbilet
- Repository: https://github.com/berker00/uludagbilet

## Overview

Uludağ Bilet is a ticketing platform spanning public event discovery and purchase, organizer event management, staff moderation, and administrative operations. The main customer journey is browse events, select tickets, check out through a payment provider, then receive and use tickets; organizers and moderators supply and approve event inventory. The graph combines the documented product scope and tree with sampled controller calls. Several service implementations and frontend request bindings were not sampled, so uncertain internal links are omitted; the shared API-client connection is shown at the application boundary.

Main entry points: [`apps/frontend/src/lib/api/client.ts`](https://github.com/berker00/uludagbilet/blob/main/apps/frontend/src/lib/api/client.ts) (API client), [`apps/frontend/src/app/(dashboard)`](https://github.com/berker00/uludagbilet/tree/main/apps/frontend/src/app/(dashboard)) (Role dashboards), [`apps/frontend/src/app/(dashboard)/admin`](https://github.com/berker00/uludagbilet/tree/main/apps/frontend/src/app/(dashboard)/admin) (Admin and settings), [`apps/backend/src/events/events.controller.ts`](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/events/events.controller.ts) (Event endpoints)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web experiences"]
  node_public_ui["Public storefront"]
  node_dashboard_ui["Role dashboards"]
  node_api_client["API client<br/>[client.ts]"]
  node_auth_ui["Login and account"]
  node_admin_ui["Admin and settings"]
end

subgraph group_identity["Identity and access"]
  node_auth_controller["Auth endpoints<br/>[auth.controller.ts]"]
  node_auth_service["Auth service<br/>[auth.service.ts]"]
  node_auth_guards["JWT and role guards"]
end

subgraph group_events["Event operations"]
  node_organizer_controller["Organizer endpoints"]
  node_organizer_service["Organizer service"]
  node_draft_service["Event draft service"]
  node_moderator_controller["Moderation endpoints"]
  node_events_controller["Event endpoints"]
  node_events_service["Event service<br/>[events.service.ts]"]
  node_ticket_types["Ticket types"]
  node_seating["Seating and reservations<br/>[seating.service.ts]"]
end

subgraph group_commerce["Ticket commerce"]
  node_checkout_controller["Checkout endpoints"]
  node_checkout_service["Checkout service"]
  node_payment_service["Payment gateway"]
  node_tickets_service["Ticket service<br/>[tickets.service.ts]"]
  node_delivery_service["Ticket delivery"]
  node_checkin_service["Ticket check-in<br/>[checkin.service.ts]"]
end

subgraph group_operations["Platform operations"]
  node_admin_controller["Admin endpoints"]
  node_sales_service["Sales operations<br/>[sales.service.ts]"]
  node_homepage_service["Homepage content"]
  node_settings_service["Site settings"]
  node_files_service["Upload management<br/>[files.service.ts]"]
  node_mail_service["Email delivery<br/>[mail.service.ts]"]
end

node_customer(("Customer"))
node_organizer(("Organizer"))
node_staff(("Platform staff"))
node_payment_provider{{"Payment provider"}}
node_object_store[("Object storage")]
node_mail_provider{{"Mail provider"}}

node_customer -->|"browses and buys"| node_public_ui
node_organizer -->|"manages events"| node_dashboard_ui
node_staff -->|"reviews and administers"| node_dashboard_ui
node_public_ui -->|"requests data"| node_api_client
node_dashboard_ui -->|"requests operations"| node_api_client
node_auth_ui -->|"submits credentials"| node_api_client
node_api_client -->|"calls API"| node_auth_controller
node_api_client -->|"calls API"| node_events_controller
node_api_client -->|"calls API"| node_checkout_controller
node_auth_controller -->|"invokes"| node_auth_service
node_auth_service -->|"issues JWT claims"| node_auth_guards
node_organizer_controller -->|"invokes"| node_organizer_service
node_organizer_controller -->|"manages drafts"| node_draft_service
node_moderator_controller -->|"reviews drafts"| node_draft_service
node_moderator_controller -->|"updates events"| node_events_service
node_events_controller -->|"queries and updates"| node_events_service
node_events_controller -->|"loads seat data"| node_seating
node_events_service -->|"manages inventory"| node_ticket_types
node_checkout_controller -->|"invokes"| node_checkout_service
node_checkout_service -->|"initiates payment"| node_payment_service
node_payment_service -.->|"charges payment"| node_payment_provider
node_checkout_service -->|"creates tickets"| node_tickets_service
node_tickets_service -->|"dispatches delivery"| node_delivery_service
node_delivery_service -->|"sends ticket email"| node_mail_service
node_mail_service -.->|"sends email"| node_mail_provider
node_checkin_service -->|"validates tickets"| node_tickets_service
node_admin_ui -->|"requests administration"| node_api_client
node_admin_controller -->|"resends verification"| node_mail_service
node_admin_controller -->|"resends tickets"| node_delivery_service
node_dashboard_ui -->|"manages sales"| node_sales_service
node_admin_ui -->|"configures homepage"| node_homepage_service
node_admin_ui -->|"configures site"| node_settings_service
node_settings_service -->|"uses uploaded assets"| node_files_service
node_files_service -->|"stores objects"| node_object_store

click node_public_ui "https://github.com/berker00/uludagbilet/tree/main/apps/frontend/src/app/(public)"
click node_dashboard_ui "https://github.com/berker00/uludagbilet/tree/main/apps/frontend/src/app/(dashboard)"
click node_api_client "https://github.com/berker00/uludagbilet/blob/main/apps/frontend/src/lib/api/client.ts"
click node_auth_ui "https://github.com/berker00/uludagbilet/tree/main/apps/frontend/src/app/login"
click node_auth_controller "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/auth/auth.controller.ts"
click node_auth_service "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/auth/auth.service.ts"
click node_auth_guards "https://github.com/berker00/uludagbilet/tree/main/apps/backend/src/auth/guards"
click node_organizer_controller "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/organizer/organizer.controller.ts"
click node_organizer_service "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/organizer/organizer.service.ts"
click node_draft_service "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/event-drafts/event-drafts.service.ts"
click node_moderator_controller "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/moderator/moderator.controller.ts"
click node_events_controller "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/events/events.controller.ts"
click node_events_service "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/events/events.service.ts"
click node_ticket_types "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/ticket-types/ticket-types.service.ts"
click node_seating "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/seating/seating.service.ts"
click node_checkout_controller "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/payments/checkout.controller.ts"
click node_checkout_service "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/payments/checkout.service.ts"
click node_payment_service "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/payments/payment-gateway.service.ts"
click node_tickets_service "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/tickets/tickets.service.ts"
click node_delivery_service "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/ticket-delivery/ticket-delivery.service.ts"
click node_checkin_service "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/checkin/checkin.service.ts"
click node_admin_ui "https://github.com/berker00/uludagbilet/tree/main/apps/frontend/src/app/(dashboard)/admin"
click node_admin_controller "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/admin/admin.controller.ts"
click node_sales_service "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/sales/sales.service.ts"
click node_homepage_service "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/homepage/homepage.service.ts"
click node_settings_service "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/site-settings/site-settings.service.ts"
click node_files_service "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/files/files.service.ts"
click node_mail_service "https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/mail/mail.service.ts"

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_ui,node_dashboard_ui,node_api_client,node_auth_ui,node_admin_ui toneBlue
class node_auth_controller,node_auth_service,node_auth_guards,node_object_store toneAmber
class node_organizer_controller,node_organizer_service,node_draft_service,node_moderator_controller,node_events_controller,node_events_service,node_ticket_types,node_seating toneMint
class node_checkout_controller,node_checkout_service,node_payment_service,node_tickets_service,node_delivery_service,node_checkin_service toneRose
class node_admin_controller,node_sales_service,node_homepage_service,node_settings_service,node_files_service,node_mail_service,node_customer,node_organizer,node_staff,node_payment_provider,node_mail_provider toneIndigo
```

## Components

### Web experiences

- [Public storefront](https://github.com/berker00/uludagbilet/tree/main/apps/frontend/src/app/(public)): `apps/frontend/src/app/(public)`
- [Role dashboards](https://github.com/berker00/uludagbilet/tree/main/apps/frontend/src/app/(dashboard)): `apps/frontend/src/app/(dashboard)`
- [API client](https://github.com/berker00/uludagbilet/blob/main/apps/frontend/src/lib/api/client.ts): `apps/frontend/src/lib/api/client.ts`
- [Login and account](https://github.com/berker00/uludagbilet/tree/main/apps/frontend/src/app/login): `apps/frontend/src/app/login`
- [Admin and settings](https://github.com/berker00/uludagbilet/tree/main/apps/frontend/src/app/(dashboard)/admin): `apps/frontend/src/app/(dashboard)/admin`

### Identity and access

- [Auth endpoints](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/auth/auth.controller.ts): `apps/backend/src/auth/auth.controller.ts`
- [Auth service](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/auth/auth.service.ts): `apps/backend/src/auth/auth.service.ts`
- [JWT and role guards](https://github.com/berker00/uludagbilet/tree/main/apps/backend/src/auth/guards): `apps/backend/src/auth/guards`

### Event operations

- [Organizer endpoints](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/organizer/organizer.controller.ts): `apps/backend/src/organizer/organizer.controller.ts`
- [Organizer service](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/organizer/organizer.service.ts): `apps/backend/src/organizer/organizer.service.ts`
- [Event draft service](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/event-drafts/event-drafts.service.ts): `apps/backend/src/event-drafts/event-drafts.service.ts`
- [Moderation endpoints](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/moderator/moderator.controller.ts): `apps/backend/src/moderator/moderator.controller.ts`
- [Event endpoints](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/events/events.controller.ts): `apps/backend/src/events/events.controller.ts`
- [Event service](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/events/events.service.ts): `apps/backend/src/events/events.service.ts`
- [Ticket types](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/ticket-types/ticket-types.service.ts): `apps/backend/src/ticket-types/ticket-types.service.ts`
- [Seating and reservations](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/seating/seating.service.ts): `apps/backend/src/seating/seating.service.ts`

### Ticket commerce

- [Checkout endpoints](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/payments/checkout.controller.ts): `apps/backend/src/payments/checkout.controller.ts`
- [Checkout service](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/payments/checkout.service.ts): `apps/backend/src/payments/checkout.service.ts`
- [Payment gateway](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/payments/payment-gateway.service.ts): `apps/backend/src/payments/payment-gateway.service.ts`
- [Ticket service](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/tickets/tickets.service.ts): `apps/backend/src/tickets/tickets.service.ts`
- [Ticket delivery](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/ticket-delivery/ticket-delivery.service.ts): `apps/backend/src/ticket-delivery/ticket-delivery.service.ts`
- [Ticket check-in](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/checkin/checkin.service.ts): `apps/backend/src/checkin/checkin.service.ts`

### Platform operations

- [Admin endpoints](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/admin/admin.controller.ts): `apps/backend/src/admin/admin.controller.ts`
- [Sales operations](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/sales/sales.service.ts): `apps/backend/src/sales/sales.service.ts`
- [Homepage content](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/homepage/homepage.service.ts): `apps/backend/src/homepage/homepage.service.ts`
- [Site settings](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/site-settings/site-settings.service.ts): `apps/backend/src/site-settings/site-settings.service.ts`
- [Upload management](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/files/files.service.ts): `apps/backend/src/files/files.service.ts`
- [Email delivery](https://github.com/berker00/uludagbilet/blob/main/apps/backend/src/mail/mail.service.ts): `apps/backend/src/mail/mail.service.ts`

### Other components

- **Customer**
- **Organizer**
- **Platform staff**
- **Payment provider**
- **Object storage**
- **Mail provider**

## Connections

- Customer → Public storefront: browses and buys
- Organizer → Role dashboards: manages events
- Platform staff → Role dashboards: reviews and administers
- Public storefront → API client: requests data
- Role dashboards → API client: requests operations
- Login and account → API client: submits credentials
- API client → Auth endpoints: calls API
- API client → Event endpoints: calls API
- API client → Checkout endpoints: calls API
- Auth endpoints → Auth service: invokes
- Auth service → JWT and role guards: issues JWT claims
- Organizer endpoints → Organizer service: invokes
- Organizer endpoints → Event draft service: manages drafts
- Moderation endpoints → Event draft service: reviews drafts
- Moderation endpoints → Event service: updates events
- Event endpoints → Event service: queries and updates
- Event endpoints → Seating and reservations: loads seat data
- Event service → Ticket types: manages inventory
- Checkout endpoints → Checkout service: invokes
- Checkout service → Payment gateway: initiates payment
- Payment gateway → Payment provider: charges payment
- Checkout service → Ticket service: creates tickets
- Ticket service → Ticket delivery: dispatches delivery
- Ticket delivery → Email delivery: sends ticket email
- Email delivery → Mail provider: sends email
- Ticket check-in → Ticket service: validates tickets
- Admin and settings → API client: requests administration
- Admin endpoints → Email delivery: resends verification
- Admin endpoints → Ticket delivery: resends tickets
- Role dashboards → Sales operations: manages sales
- Admin and settings → Homepage content: configures homepage
- Admin and settings → Site settings: configures site
- Site settings → Upload management: uses uploaded assets
- Upload management → Object storage: stores objects
