2026 · Kodschul Seminar Management · Full-stack engineer
The database refuses the double-booking, not the app
- built with
- Next.jsTypeScriptPostgreSQLDocker ComposeGitHub Actions

What it does
A scheduling platform for seminars: assigning trainers to sessions, detecting conflicts before they reach a calendar, and matching trainers to topics with a model.
The part I care about
The CI pipeline re-proves the system's core guarantees on a clean machine on every push, including that Postgres itself refuses to double-book a trainer. That constraint is asserted against a real database rather than a mock, so it cannot quietly rot into a test that passes while production breaks.
Putting the invariant in the database instead of the application layer means it holds no matter which code path tries to violate it.