Year 2026
★ FeaturedIRONHAUS Gym
Gym class booking with a real backend: live availability and capacity rule.

Integration tests
11/11
Capacity rule
409
Seeded weekly classes
12
About this project
Full-stack demo for a premium gym: NestJS API with TypeORM and PostgreSQL, React + Vite frontend with TanStack Query. The flagship feature is class booking: the weekly schedule shows live availability and the backend rejects with 409 Conflict when a class is full. Includes per-class detail view, "my bookings" with cancellation, and an automatic seed that ships a populated schedule.
01. Problem
Overbooking is the classic scheduling bug: two users grab the last spot at the same time and the class ends up oversold.
02. Solution
The rule lives in the backend: on booking, active reservations are counted and rejected with 409 when active ≥ capacity, plus per-member duplicate blocking. The frontend mirrors live spots and invalidates cache with TanStack Query after each mutation.
03. Outcome
Integration suite 11/11 green covering the whole flow: book, fill a class, 409, duplicates, cancel and validations.
Gallery
(04)


