# nataliiasolomchak21/moviegeek-booking architecture

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

- Interactive diagram: https://gitdiagram.com/nataliiasolomchak21/moviegeek-booking
- Repository: https://github.com/nataliiasolomchak21/moviegeek-booking

## Overview

MovieGeek is a Django movie-ticket booking site. A visitor browses films and enters a booking; an authenticated customer submits it, receives a confirmation page, and can review, edit, or delete bookings from their profile. The README also describes account access and staff management of movie listings. The sampled views and URL configuration support the booking and profile flow; model, form, and admin internals were not sampled, so those connections are limited to what the tree and documented capabilities support.

Main entry points: [`moviegeek/urls.py`](https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/moviegeek/urls.py) (URL routing), [`booking/models.py`](https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/booking/models.py) (Movies and bookings), [`templates`](https://github.com/nataliiasolomchak21/moviegeek-booking/tree/main/templates) (Page templates), [`booking/views.py`](https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/booking/views.py) (Edit or delete)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web entry and pages"]
  node_routes["URL routing<br/>[urls.py]"]
  node_catalog["Movie catalog<br/>[views.py]"]
  node_pages["Page templates"]
end

subgraph group_booking["Booking workflow"]
  node_booking_page["Showtime selection<br/>[views.py]"]
  node_create["Create booking<br/>[views.py]"]
  node_confirmation["Booking confirmation<br/>[views.py]"]
  node_profile["Booking profile<br/>[views.py]"]
  node_edit_delete["Edit or delete<br/>[views.py]"]
  node_booking_form["Booking form<br/>[forms.py]"]
end

subgraph group_accounts["Accounts and admin"]
  node_account_pages["Account pages"]
  node_allauth["Allauth accounts"]
  node_admin["Django admin<br/>[admin.py]"]
end

subgraph group_data["Domain data"]
  node_domain["Movies and bookings<br/>[models.py]"]
  node_database[("Application database<br/>[settings.py]")]
end

node_moviegoer(("Moviegoer"))
node_staff(("Site staff"))

node_moviegoer -->|"requests pages"| node_routes
node_routes -->|"dispatches home"| node_catalog
node_routes -->|"dispatches booking"| node_booking_page
node_routes -->|"dispatches submission"| node_create
node_routes -->|"dispatches confirmation"| node_confirmation
node_routes -->|"dispatches profile"| node_profile
node_routes -->|"dispatches changes"| node_edit_delete
node_routes -->|"includes account routes"| node_allauth
node_catalog -->|"queries movies"| node_domain
node_booking_page -->|"queries movies"| node_domain
node_create -->|"creates booking"| node_domain
node_profile -->|"queries bookings"| node_domain
node_edit_delete -->|"validates edits"| node_booking_form
node_edit_delete -->|"updates or deletes"| node_domain
node_catalog -->|"renders page"| node_pages
node_booking_page -->|"renders page"| node_pages
node_create -->|"redirects on success"| node_confirmation
node_confirmation -->|"renders page"| node_pages
node_profile -->|"renders page"| node_pages
node_edit_delete -->|"renders page"| node_pages
node_domain -->|"reads and writes"| node_database
node_allauth -->|"renders account UI"| node_account_pages
node_staff -->|"manages listings"| node_admin
node_admin -->|"manages movie data"| node_domain
node_moviegoer -->|"uses account UI"| node_account_pages

click node_routes "https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/moviegeek/urls.py"
click node_catalog "https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/booking/views.py"
click node_pages "https://github.com/nataliiasolomchak21/moviegeek-booking/tree/main/templates"
click node_booking_page "https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/booking/views.py"
click node_create "https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/booking/views.py"
click node_confirmation "https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/booking/views.py"
click node_profile "https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/booking/views.py"
click node_edit_delete "https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/booking/views.py"
click node_booking_form "https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/booking/forms.py"
click node_account_pages "https://github.com/nataliiasolomchak21/moviegeek-booking/tree/main/templates/account"
click node_admin "https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/booking/admin.py"
click node_domain "https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/booking/models.py"
click node_database "https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/moviegeek/settings.py"

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_routes,node_catalog,node_pages toneBlue
class node_booking_page,node_create,node_confirmation,node_profile,node_edit_delete,node_booking_form toneAmber
class node_account_pages,node_allauth,node_admin toneMint
class node_domain,node_database toneRose
class node_moviegoer,node_staff toneIndigo
```

## Components

### Web entry and pages

- [URL routing](https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/moviegeek/urls.py): `moviegeek/urls.py`
- [Movie catalog](https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/booking/views.py): `booking/views.py`
- [Page templates](https://github.com/nataliiasolomchak21/moviegeek-booking/tree/main/templates): `templates`

### Booking workflow

- [Showtime selection](https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/booking/views.py): `booking/views.py`
- [Create booking](https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/booking/views.py): `booking/views.py`
- [Booking confirmation](https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/booking/views.py): `booking/views.py`
- [Booking profile](https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/booking/views.py): `booking/views.py`
- [Edit or delete](https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/booking/views.py): `booking/views.py`
- [Booking form](https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/booking/forms.py): `booking/forms.py`

### Accounts and admin

- [Account pages](https://github.com/nataliiasolomchak21/moviegeek-booking/tree/main/templates/account): `templates/account`
- **Allauth accounts**
- [Django admin](https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/booking/admin.py): `booking/admin.py`

### Domain data

- [Movies and bookings](https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/booking/models.py): `booking/models.py`
- [Application database](https://github.com/nataliiasolomchak21/moviegeek-booking/blob/main/moviegeek/settings.py): `moviegeek/settings.py`

### Other components

- **Moviegoer**
- **Site staff**

## Connections

- Moviegoer → URL routing: requests pages
- URL routing → Movie catalog: dispatches home
- URL routing → Showtime selection: dispatches booking
- URL routing → Create booking: dispatches submission
- URL routing → Booking confirmation: dispatches confirmation
- URL routing → Booking profile: dispatches profile
- URL routing → Edit or delete: dispatches changes
- URL routing → Allauth accounts: includes account routes
- Movie catalog → Movies and bookings: queries movies
- Showtime selection → Movies and bookings: queries movies
- Create booking → Movies and bookings: creates booking
- Booking profile → Movies and bookings: queries bookings
- Edit or delete → Booking form: validates edits
- Edit or delete → Movies and bookings: updates or deletes
- Movie catalog → Page templates: renders page
- Showtime selection → Page templates: renders page
- Create booking → Booking confirmation: redirects on success
- Booking confirmation → Page templates: renders page
- Booking profile → Page templates: renders page
- Edit or delete → Page templates: renders page
- Movies and bookings → Application database: reads and writes
- Allauth accounts → Account pages: renders account UI
- Site staff → Django admin: manages listings
- Django admin → Movies and bookings: manages movie data
- Moviegoer → Account pages: uses account UI
