Año 2026
★ DestacadoIRONHAUS Gym
Reserva de clases de gimnasio con backend real: cupos en vivo y regla de capacidad.

Tests de integración
11/11
Regla de capacidad
409
Clases seed semanales
12
Acerca del proyecto
Demo full-stack para un gimnasio premium: API NestJS con TypeORM y PostgreSQL, frontend React + Vite con TanStack Query. La funcionalidad estrella es la reserva de clases: el horario semanal muestra cupos en vivo y el backend rechaza con 409 Conflict cuando una clase está llena. Incluye vista de detalle por clase, "mis reservas" con cancelación, y seed automático que deja el horario poblado.
01. Problema
Las reservas con sobrecupo son el bug clásico de los sistemas de agenda: dos usuarios toman el último lugar al mismo tiempo y la clase queda sobrevendida.
02. Solución
La regla vive en el backend: al reservar se cuentan las reservas activas y se rechaza con 409 si activas ≥ capacidad, con bloqueo de duplicados por miembro. El frontend refleja cupos en vivo e invalida caché con TanStack Query tras cada mutación.
03. Resultado
Suite de integración 11/11 en verde cubriendo el flujo completo: reservar, llenar clase, 409, duplicados, cancelar y validaciones.
Galería
(04)


