# rifat-r/tickowt-preview architecture

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

- Interactive diagram: https://gitdiagram.com/rifat-r/tickowt-preview
- Repository: https://github.com/rifat-r/tickowt-preview

## Overview

Tickowt is a Django event-management and ticketing platform. Organisers create and manage events, publish ticket offerings, and monitor sales and check-ins; attendees select tickets, complete free or Stripe checkout, and receive tickets for entry. The map includes event administration, accounts, checkout and payment confirmation, dashboard functions, and background work. README capabilities are retained where implementation was not sampled; arrows for those areas are limited to documented relationships rather than inferred internal calls.

Main entry points: [`tickowt/events/models.py`](https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/events/models.py) (Events and tickets), [`tickowt/users/stripe_services.py`](https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/users/stripe_services.py) (Payment webhook), [`tickowt/urls.py`](https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/urls.py) (URL routing), [`tickowt/checkout/checkout_session.py`](https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/checkout/checkout_session.py) (Checkout orchestration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web and accounts"]
  node_router["URL routing<br/>[urls.py]"]
  node_user_views["Accounts<br/>[views.py]"]
  node_user_models[("User records<br/>[models.py]")]
  node_dashboard["Organiser dashboard<br/>[views.py]"]
end

subgraph group_events["Event management"]
  node_event_views["Event pages<br/>[views.py]"]
  node_event_service["Event lifecycle<br/>[services.py]"]
  node_event_models[("Events and tickets<br/>[models.py]")]
end

subgraph group_sales["Ticket sales"]
  node_checkout["Checkout orchestration"]
  node_free_checkout["Free checkout"]
  node_stripe_services["Payment webhook<br/>[stripe_services.py]"]
  node_mail["Ticket email<br/>[mail.py]"]
end

subgraph group_ops["Platform operations"]
  node_tasks["Background tasks<br/>[tasks.py]"]
  node_celery["Task app<br/>[celery.py]"]
end

node_organizer(("Organiser"))
node_attendee(("Attendee"))
node_browser(("Browser"))
node_stripe{{"Stripe"}}
node_redis["Redis broker"]
node_email{{"Email service"}}

node_browser -->|"requests"| node_router
node_router -->|"routes"| node_user_views
node_router -->|"routes"| node_dashboard
node_router -->|"routes"| node_event_views
node_attendee -->|"browses and buys"| node_browser
node_organizer -->|"manages events"| node_browser
node_user_views -->|"reads and writes"| node_user_models
node_dashboard -->|"reads sales and check-ins"| node_event_models
node_event_views -->|"manages lifecycle"| node_event_service
node_event_service -->|"creates and updates"| node_event_models
node_event_views -->|"reads event data"| node_event_models
node_browser -->|"submits ticket choices"| node_checkout
node_checkout -->|"validates and records"| node_event_models
node_checkout -->|"handles free orders"| node_free_checkout
node_free_checkout -->|"creates order and attendees"| node_event_models
node_free_checkout -->|"dispatches confirmation"| node_mail
node_checkout -->|"creates paid session"| node_stripe
node_stripe -->|"redirects for payment"| node_browser
node_stripe -->|"sends webhook"| node_stripe_services
node_stripe_services -->|"records purchase"| node_event_models
node_stripe_services -->|"dispatches transaction log"| node_tasks
node_stripe_services -->|"updates account status"| node_user_models
node_mail -->|"queues email task"| node_redis
node_celery -->|"uses broker"| node_redis
node_tasks -->|"updates reservations and events"| node_event_models
node_tasks -->|"expires sessions and retrieves payment data"| node_stripe
node_tasks -->|"sends confirmation"| node_email
node_stripe_services -->|"verifies webhook"| node_stripe

click node_router "https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/urls.py"
click node_user_views "https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/users/views.py"
click node_user_models "https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/users/models.py"
click node_dashboard "https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/dashboard/views.py"
click node_event_views "https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/events/views.py"
click node_event_service "https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/events/services.py"
click node_event_models "https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/events/models.py"
click node_checkout "https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/checkout/checkout_session.py"
click node_free_checkout "https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/checkout/free_checkout_session.py"
click node_stripe_services "https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/users/stripe_services.py"
click node_mail "https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/events/mail.py"
click node_tasks "https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/events/tasks.py"
click node_celery "https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/celery.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_router,node_user_views,node_user_models,node_dashboard,node_browser toneBlue
class node_event_views,node_event_service,node_event_models,node_redis toneAmber
class node_checkout,node_free_checkout,node_stripe_services,node_mail toneMint
class node_tasks,node_celery toneRose
class node_organizer,node_attendee,node_stripe,node_email toneIndigo
```

## Components

### Web and accounts

- [URL routing](https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/urls.py): `tickowt/urls.py`
- [Accounts](https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/users/views.py): `tickowt/users/views.py`
- [User records](https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/users/models.py): `tickowt/users/models.py`
- [Organiser dashboard](https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/dashboard/views.py): `tickowt/dashboard/views.py`

### Event management

- [Event pages](https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/events/views.py): `tickowt/events/views.py`
- [Event lifecycle](https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/events/services.py): `tickowt/events/services.py`
- [Events and tickets](https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/events/models.py): `tickowt/events/models.py`

### Ticket sales

- [Checkout orchestration](https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/checkout/checkout_session.py): `tickowt/checkout/checkout_session.py`
- [Free checkout](https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/checkout/free_checkout_session.py): `tickowt/checkout/free_checkout_session.py`
- [Payment webhook](https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/users/stripe_services.py): `tickowt/users/stripe_services.py`
- [Ticket email](https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/events/mail.py): `tickowt/events/mail.py`

### Platform operations

- [Background tasks](https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/events/tasks.py): `tickowt/events/tasks.py`
- [Task app](https://github.com/rifat-r/tickowt-preview/blob/master/tickowt/celery.py): `tickowt/celery.py`

### Other components

- **Organiser**
- **Attendee**
- **Browser**
- **Stripe**
- **Redis broker**
- **Email service**

## Connections

- Browser → URL routing: requests
- URL routing → Accounts: routes
- URL routing → Organiser dashboard: routes
- URL routing → Event pages: routes
- Attendee → Browser: browses and buys
- Organiser → Browser: manages events
- Accounts → User records: reads and writes
- Organiser dashboard → Events and tickets: reads sales and check-ins
- Event pages → Event lifecycle: manages lifecycle
- Event lifecycle → Events and tickets: creates and updates
- Event pages → Events and tickets: reads event data
- Browser → Checkout orchestration: submits ticket choices
- Checkout orchestration → Events and tickets: validates and records
- Checkout orchestration → Free checkout: handles free orders
- Free checkout → Events and tickets: creates order and attendees
- Free checkout → Ticket email: dispatches confirmation
- Checkout orchestration → Stripe: creates paid session
- Stripe → Browser: redirects for payment
- Stripe → Payment webhook: sends webhook
- Payment webhook → Events and tickets: records purchase
- Payment webhook → Background tasks: dispatches transaction log
- Payment webhook → User records: updates account status
- Ticket email → Redis broker: queues email task
- Task app → Redis broker: uses broker
- Background tasks → Events and tickets: updates reservations and events
- Background tasks → Stripe: expires sessions and retrieves payment data
- Background tasks → Email service: sends confirmation
- Payment webhook → Stripe: verifies webhook
