# 0xagax0/bus architecture

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

## Overview

This is a small Tkinter bus-reservation desktop app. The user selects a route, travel date, and seat count, then validates and saves a reservation to a local JSON file; the app displays confirmation or validation warnings. Navigation switches among three pages, but the pre-reservation page is only a placeholder. All behavior is in the single sampled source file; no separate service or storage layer is shown.

Main entry points: [`Bus.py`](https://github.com/0xagax0/bus/blob/main/Bus.py) (Reservation validation)

## Diagram (Mermaid)

```mermaid
flowchart TD

node_user(("User"))
node_app["Tkinter application<br/>[Bus.py]"]
node_navigation["Page navigation<br/>[Bus.py]"]
node_pages["App pages<br/>[Bus.py]"]
node_reservation_form["Reservation form<br/>[Bus.py]"]
node_route_fields["Route fields<br/>[Bus.py]"]
node_travel_options["Date and seats<br/>[Bus.py]"]
node_validation["Reservation validation<br/>[Bus.py]"]
node_warnings["Warning dialogs<br/>[Bus.py]"]
node_confirmation["Confirmation label<br/>[Bus.py]"]
node_reservation_file["Reservation JSON"]

node_user -->|"uses"| node_app
node_app -->|"creates"| node_pages
node_app -->|"creates"| node_navigation
node_app -->|"creates"| node_reservation_form
node_reservation_form -->|"contains"| node_route_fields
node_reservation_form -->|"contains"| node_travel_options
node_user -->|"clicks"| node_navigation
node_navigation -->|"raises page"| node_pages
node_user -->|"enters details"| node_reservation_form
node_user -->|"submits"| node_validation
node_validation -->|"reads"| node_route_fields
node_validation -->|"reads"| node_travel_options
node_validation -->|"shows on invalid input"| node_warnings
node_validation -->|"writes"| node_reservation_file
node_validation -->|"updates"| node_confirmation

click node_app "https://github.com/0xagax0/bus/blob/main/Bus.py"
click node_navigation "https://github.com/0xagax0/bus/blob/main/Bus.py"
click node_pages "https://github.com/0xagax0/bus/blob/main/Bus.py"
click node_reservation_form "https://github.com/0xagax0/bus/blob/main/Bus.py"
click node_route_fields "https://github.com/0xagax0/bus/blob/main/Bus.py"
click node_travel_options "https://github.com/0xagax0/bus/blob/main/Bus.py"
click node_validation "https://github.com/0xagax0/bus/blob/main/Bus.py"
click node_warnings "https://github.com/0xagax0/bus/blob/main/Bus.py"
click node_confirmation "https://github.com/0xagax0/bus/blob/main/Bus.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_user toneBlue
class node_app,node_navigation,node_pages,node_reservation_form,node_travel_options,node_validation,node_warnings,node_confirmation toneTeal
class node_route_fields toneMint
class node_reservation_file toneIndigo
```

## Components

### Other components

- **User**
- [Tkinter application](https://github.com/0xagax0/bus/blob/main/Bus.py): `Bus.py`
- [Page navigation](https://github.com/0xagax0/bus/blob/main/Bus.py): `Bus.py`
- [App pages](https://github.com/0xagax0/bus/blob/main/Bus.py): `Bus.py`
- [Reservation form](https://github.com/0xagax0/bus/blob/main/Bus.py): `Bus.py`
- [Route fields](https://github.com/0xagax0/bus/blob/main/Bus.py): `Bus.py`
- [Date and seats](https://github.com/0xagax0/bus/blob/main/Bus.py): `Bus.py`
- [Reservation validation](https://github.com/0xagax0/bus/blob/main/Bus.py): `Bus.py`
- [Warning dialogs](https://github.com/0xagax0/bus/blob/main/Bus.py): `Bus.py`
- [Confirmation label](https://github.com/0xagax0/bus/blob/main/Bus.py): `Bus.py`
- **Reservation JSON**

## Connections

- User → Tkinter application: uses
- Tkinter application → App pages: creates
- Tkinter application → Page navigation: creates
- Tkinter application → Reservation form: creates
- Reservation form → Route fields: contains
- Reservation form → Date and seats: contains
- User → Page navigation: clicks
- Page navigation → App pages: raises page
- User → Reservation form: enters details
- User → Reservation validation: submits
- Reservation validation → Route fields: reads
- Reservation validation → Date and seats: reads
- Reservation validation → Warning dialogs: shows on invalid input
- Reservation validation → Reservation JSON: writes
- Reservation validation → Confirmation label: updates
