Court Booking
A padel court booking app where a double booking is impossible by construction, not by checking first.
The database refuses overlaps
A PostgreSQL exclusion constraint on a time range rejects overlapping reservations. The API turns the violation into a 409.
Twenty requests, one winner
A test fires 20 simultaneous requests at one slot against a real PostgreSQL: exactly one succeeds and nineteen are rejected.
Read the test for Twenty requests, one winner (opens in a new tab)
Two browsers race for the same slot
An end-to-end Playwright test races two browsers for one court slot. The court grid takes one API call per day.
The demo is in Spanish, and the first load can take a few seconds while the database wakes up.
