Skip to content

Usher

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.