# fauzaro01/antriyuk architecture

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

- Interactive diagram: https://gitdiagram.com/fauzaro01/antriyuk
- Repository: https://github.com/fauzaro01/antriyuk

## Overview

AntriYuk is a web-based queue management system. Customers choose a service location, take or check a ticket, and can follow queue updates; operators assign counters and advance tickets through calling, serving, completion, or skipping. Admins manage locations, counters, users, and service categories, while reports summarize ticket and feedback activity. The README documents estimated waits and a live display board. Sampled source confirms operator actions and admin/report queries; unsampled controller and event wiring is represented only at the documented capability level.

Main entry points: [`app/Http/Controllers/AdminController.php`](https://github.com/fauzaro01/antriyuk/blob/main/app/Http/Controllers/AdminController.php) (Admin Controller), [`app/Http/Controllers/OperatorController.php`](https://github.com/fauzaro01/antriyuk/blob/main/app/Http/Controllers/OperatorController.php) (Operator Controller), [`app/Models/Ticket.php`](https://github.com/fauzaro01/antriyuk/blob/main/app/Models/Ticket.php) (Ticket State), [`app/Http/Controllers/ReportController.php`](https://github.com/fauzaro01/antriyuk/blob/main/app/Http/Controllers/ReportController.php) (Report Controller)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_intake["Customer Intake"]
  node_ticket_ctl["Ticket Controller"]
  node_booking_ctl["Booking Controller"]
  node_location_ctl["Location Controller"]
  node_feedback_ctl["Feedback Controller"]
end

subgraph group_operations["Queue Operations"]
  node_operator_ctl["Operator Controller"]
end

subgraph group_management["Administration"]
  node_admin_ctl["Admin Controller"]
  node_report_ctl["Report Controller"]
  node_auth_ctl["Auth Controller<br/>[AuthController.php]"]
end

subgraph group_domain["Queue Domain"]
  node_ticket["Ticket State<br/>[Ticket.php]"]
  node_booking["Booking<br/>[Booking.php]"]
  node_location["Location<br/>[Location.php]"]
  node_counter["Counter<br/>[Counter.php]"]
  node_category["Service Category"]
  node_feedback["Feedback<br/>[Feedback.php]"]
  node_user["User<br/>[User.php]"]
end

subgraph group_realtime["Live Experience"]
  node_queue_event["Queue Events<br/>[QueueUpdated.php]"]
  node_ticket_events["Ticket Events<br/>[TicketCreated.php]"]
  node_echo_client["Echo Client<br/>[echo.js]"]
  node_display["Web Views"]
end

node_customer(("Customer"))
node_operator(("Operator"))
node_admin(("Administrator"))
node_database[("Application Database")]
node_reverb{{"Reverb WebSocket"}}

node_customer -->|"browses locations"| node_location_ctl
node_customer -->|"takes or checks"| node_ticket_ctl
node_customer -->|"makes booking"| node_booking_ctl
node_customer -->|"submits feedback"| node_feedback_ctl
node_operator -->|"manages queue"| node_operator_ctl
node_admin -->|"manages system"| node_admin_ctl
node_admin -->|"views reports"| node_report_ctl
node_customer -->|"authenticates"| node_auth_ctl
node_operator_ctl -->|"advances status"| node_ticket
node_operator_ctl -->|"assigns counter"| node_counter
node_operator_ctl -->|"reads queue"| node_location
node_operator_ctl -->|"broadcasts updates"| node_queue_event
node_admin_ctl -->|"manages locations"| node_location
node_admin_ctl -->|"manages counters"| node_counter
node_admin_ctl -->|"manages users"| node_user
node_admin_ctl -->|"manages categories"| node_category
node_admin_ctl -->|"counts tickets"| node_ticket
node_report_ctl -->|"aggregates tickets"| node_ticket
node_report_ctl -->|"summarizes feedback"| node_feedback
node_ticket_ctl -->|"creates or checks"| node_ticket
node_booking_ctl -->|"creates or checks"| node_booking
node_location_ctl -->|"reads locations"| node_location
node_feedback_ctl -->|"records feedback"| node_feedback
node_ticket_ctl -.->|"emits ticket events"| node_ticket_events
node_ticket -->|"persists state"| node_database
node_booking -->|"persists bookings"| node_database
node_location -->|"persists locations"| node_database
node_counter -->|"persists counters"| node_database
node_category -->|"persists categories"| node_database
node_feedback -->|"persists feedback"| node_database
node_user -->|"persists users"| node_database
node_queue_event -->|"broadcasts event"| node_reverb
node_ticket_events -.->|"broadcasts event"| node_reverb
node_echo_client -->|"subscribes updates"| node_reverb
node_reverb -->|"delivers updates"| node_echo_client
node_echo_client -->|"updates display"| node_display
node_operator_ctl -->|"renders dashboard"| node_display
node_admin_ctl -->|"renders admin pages"| node_display
node_report_ctl -->|"renders reports"| node_display

click node_ticket_ctl "https://github.com/fauzaro01/antriyuk/blob/main/app/Http/Controllers/TicketController.php"
click node_booking_ctl "https://github.com/fauzaro01/antriyuk/blob/main/app/Http/Controllers/BookingController.php"
click node_location_ctl "https://github.com/fauzaro01/antriyuk/blob/main/app/Http/Controllers/LocationController.php"
click node_feedback_ctl "https://github.com/fauzaro01/antriyuk/blob/main/app/Http/Controllers/FeedbackController.php"
click node_operator_ctl "https://github.com/fauzaro01/antriyuk/blob/main/app/Http/Controllers/OperatorController.php"
click node_admin_ctl "https://github.com/fauzaro01/antriyuk/blob/main/app/Http/Controllers/AdminController.php"
click node_report_ctl "https://github.com/fauzaro01/antriyuk/blob/main/app/Http/Controllers/ReportController.php"
click node_auth_ctl "https://github.com/fauzaro01/antriyuk/blob/main/app/Http/Controllers/AuthController.php"
click node_ticket "https://github.com/fauzaro01/antriyuk/blob/main/app/Models/Ticket.php"
click node_booking "https://github.com/fauzaro01/antriyuk/blob/main/app/Models/Booking.php"
click node_location "https://github.com/fauzaro01/antriyuk/blob/main/app/Models/Location.php"
click node_counter "https://github.com/fauzaro01/antriyuk/blob/main/app/Models/Counter.php"
click node_category "https://github.com/fauzaro01/antriyuk/blob/main/app/Models/ServiceCategory.php"
click node_feedback "https://github.com/fauzaro01/antriyuk/blob/main/app/Models/Feedback.php"
click node_user "https://github.com/fauzaro01/antriyuk/blob/main/app/Models/User.php"
click node_queue_event "https://github.com/fauzaro01/antriyuk/blob/main/app/Events/QueueUpdated.php"
click node_ticket_events "https://github.com/fauzaro01/antriyuk/blob/main/app/Events/TicketCreated.php"
click node_echo_client "https://github.com/fauzaro01/antriyuk/blob/main/resources/js/echo.js"
click node_display "https://github.com/fauzaro01/antriyuk/tree/main/resources/views"

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_ticket_ctl,node_booking_ctl,node_location_ctl,node_feedback_ctl toneBlue
class node_operator_ctl,node_database toneAmber
class node_admin_ctl,node_report_ctl,node_auth_ctl toneMint
class node_ticket,node_booking,node_location,node_counter,node_category,node_feedback,node_user toneRose
class node_queue_event,node_ticket_events,node_echo_client,node_display,node_customer,node_operator,node_admin,node_reverb toneIndigo
```

## Components

### Customer Intake

- [Ticket Controller](https://github.com/fauzaro01/antriyuk/blob/main/app/Http/Controllers/TicketController.php): `app/Http/Controllers/TicketController.php`
- [Booking Controller](https://github.com/fauzaro01/antriyuk/blob/main/app/Http/Controllers/BookingController.php): `app/Http/Controllers/BookingController.php`
- [Location Controller](https://github.com/fauzaro01/antriyuk/blob/main/app/Http/Controllers/LocationController.php): `app/Http/Controllers/LocationController.php`
- [Feedback Controller](https://github.com/fauzaro01/antriyuk/blob/main/app/Http/Controllers/FeedbackController.php): `app/Http/Controllers/FeedbackController.php`

### Queue Operations

- [Operator Controller](https://github.com/fauzaro01/antriyuk/blob/main/app/Http/Controllers/OperatorController.php): `app/Http/Controllers/OperatorController.php`

### Administration

- [Admin Controller](https://github.com/fauzaro01/antriyuk/blob/main/app/Http/Controllers/AdminController.php): `app/Http/Controllers/AdminController.php`
- [Report Controller](https://github.com/fauzaro01/antriyuk/blob/main/app/Http/Controllers/ReportController.php): `app/Http/Controllers/ReportController.php`
- [Auth Controller](https://github.com/fauzaro01/antriyuk/blob/main/app/Http/Controllers/AuthController.php): `app/Http/Controllers/AuthController.php`

### Queue Domain

- [Ticket State](https://github.com/fauzaro01/antriyuk/blob/main/app/Models/Ticket.php): `app/Models/Ticket.php`
- [Booking](https://github.com/fauzaro01/antriyuk/blob/main/app/Models/Booking.php): `app/Models/Booking.php`
- [Location](https://github.com/fauzaro01/antriyuk/blob/main/app/Models/Location.php): `app/Models/Location.php`
- [Counter](https://github.com/fauzaro01/antriyuk/blob/main/app/Models/Counter.php): `app/Models/Counter.php`
- [Service Category](https://github.com/fauzaro01/antriyuk/blob/main/app/Models/ServiceCategory.php): `app/Models/ServiceCategory.php`
- [Feedback](https://github.com/fauzaro01/antriyuk/blob/main/app/Models/Feedback.php): `app/Models/Feedback.php`
- [User](https://github.com/fauzaro01/antriyuk/blob/main/app/Models/User.php): `app/Models/User.php`

### Live Experience

- [Queue Events](https://github.com/fauzaro01/antriyuk/blob/main/app/Events/QueueUpdated.php): `app/Events/QueueUpdated.php`
- [Ticket Events](https://github.com/fauzaro01/antriyuk/blob/main/app/Events/TicketCreated.php): `app/Events/TicketCreated.php`
- [Echo Client](https://github.com/fauzaro01/antriyuk/blob/main/resources/js/echo.js): `resources/js/echo.js`
- [Web Views](https://github.com/fauzaro01/antriyuk/tree/main/resources/views): `resources/views`

### Other components

- **Customer**
- **Operator**
- **Administrator**
- **Application Database**
- **Reverb WebSocket**

## Connections

- Customer → Location Controller: browses locations
- Customer → Ticket Controller: takes or checks
- Customer → Booking Controller: makes booking
- Customer → Feedback Controller: submits feedback
- Operator → Operator Controller: manages queue
- Administrator → Admin Controller: manages system
- Administrator → Report Controller: views reports
- Customer → Auth Controller: authenticates
- Operator Controller → Ticket State: advances status
- Operator Controller → Counter: assigns counter
- Operator Controller → Location: reads queue
- Operator Controller → Queue Events: broadcasts updates
- Admin Controller → Location: manages locations
- Admin Controller → Counter: manages counters
- Admin Controller → User: manages users
- Admin Controller → Service Category: manages categories
- Admin Controller → Ticket State: counts tickets
- Report Controller → Ticket State: aggregates tickets
- Report Controller → Feedback: summarizes feedback
- Ticket Controller → Ticket State: creates or checks
- Booking Controller → Booking: creates or checks
- Location Controller → Location: reads locations
- Feedback Controller → Feedback: records feedback
- Ticket Controller → Ticket Events: emits ticket events
- Ticket State → Application Database: persists state
- Booking → Application Database: persists bookings
- Location → Application Database: persists locations
- Counter → Application Database: persists counters
- Service Category → Application Database: persists categories
- Feedback → Application Database: persists feedback
- User → Application Database: persists users
- Queue Events → Reverb WebSocket: broadcasts event
- Ticket Events → Reverb WebSocket: broadcasts event
- Echo Client → Reverb WebSocket: subscribes updates
- Reverb WebSocket → Echo Client: delivers updates
- Echo Client → Web Views: updates display
- Operator Controller → Web Views: renders dashboard
- Admin Controller → Web Views: renders admin pages
- Report Controller → Web Views: renders reports
