SportHub
- Contexto
- SportHub nace como una plataforma para un centro deportivo que necesita centralizar la gestión de sus instalaciones y reservas. Está dirigida tanto a clientes que buscan consultar disponibilidad y reservar espacios como a administradores que gestionan instalaciones, clientes y reservas.
- Problema
- La gestión manual de reservas puede generar información dispersa, conflictos de horarios y una mayor carga operativa para el personal. SportHub permite a los clientes consultar disponibilidad y gestionar sus reservas, mientras facilita a los administradores la supervisión centralizada de la operación.
- Decisiones técnicas
- Se utilizó una arquitectura basada en funcionalidades con Angular Standalone Components para mantener el código modular, escalable y fácil de mantener.
- La disponibilidad se consulta desde Angular, pero la validación definitiva de las reservas se delega en PostgreSQL mediante Supabase y funciones RPC. Esto evita reservas superpuestas incluso cuando varios usuarios intentan reservar simultáneamente.
- Se descartó realizar INSERT directos de reservas desde Angular. En su lugar, se utiliza la RPC create_reservation junto con políticas RLS para centralizar las reglas de negocio y proteger la integridad de los datos.
- Angular
- TypeScript
- Tailwind CSS
- Angular Material
- Supabase
- PostgreSQL