Usher¶
Demo football ticket reservation system: Go REST API, PostgreSQL and a React app.
Browse upcoming fixtures, reserve tickets and cancel; admins manage fixtures, venues and reservations. It is a university project, revived and deployed as a demo.
There is no payment processing.
The API runs on Kubernetes, the web app on a Cloudflare Worker that proxies /api/* to it.
Try it¶
Open usher.piotrkrzysztof.dev and log in with the demo account:
| Field | Value |
|---|---|
| Username | demo |
| Password | matchday |
The public demo data is reset daily at 04:00 UTC.
How it behaves¶
- Tickets are general admission per fixture. There are no seats or sections.
- One reservation can mix ticket types: Standard (full price), Student (-20%) and Senior (-15%), all off the fixture's base price.
- The available count is what can be booked. A reservation locks the fixture row, so concurrent bookings never oversell. Integration tests cover it.
- Roles: unregistered visitors browse, registered users book and manage their own reservations, admins manage everything.
- Authentication is a JWT bearer token, valid 24 hours by default. Logout blacklists the token.
Where to go next¶
- Getting started: run the whole stack with Docker Compose.
- Architecture: the API, the database, the web app and the Cloudflare Worker in front.
- API: every endpoint and who may call it.
- Images: published container images, tags and environment variables.
- About: who built it.