Sistema de Gestión de Turnos
Sistema integral para que organizaciones (gimnasios, consultorios, centros deportivos) gestionen turnos, recursos y servicios. Construido con Arquitectura Hexagonal (Puertos y Adaptadores) para desacoplar completamente la lógica de negocio de la infraestructura. Incluye control de disponibilidad en tiempo real, bloqueos y excepciones, gestión de proveedores y procesamiento de tareas en background con Celery y Redis.
Stack Tecnológico
¿Qué resuelve?
Centraliza la gestión de turnos para organizaciones con múltiples recursos y proveedores. Controla disponibilidad en tiempo real, previene conflictos de reserva, gestiona bloqueos por mantenimiento o feriados, y procesa tareas pesadas (notificaciones, liberación de turnos caducados) en background sin bloquear la experiencia del usuario.
Decisiones Técnicas
- 1
Arquitectura Hexagonal (Puertos y Adaptadores): el Dominio no conoce la base de datos ni FastAPI — la lógica de negocio es testeable de forma aislada sin levantar infraestructura
- 2
Cuatro capas explícitas: api (presentación) → application (casos de uso) → domain (entidades y puertos) → infrastructure (adaptadores SQL, Redis, repositorios)
- 3
Celery + Redis para tareas asíncronas en background: liberación de turnos caducados y notificaciones sin bloquear las respuestas HTTP
- 4
Frontend en React 18 + TypeScript + Vite con arquitectura modular: contexts para estado global, hooks para lógica reutilizable, services para comunicación con la API
- 5
Nginx como proxy inverso para el frontend compilado, separando el servidor de estáticos del servidor de la API
- 6
Evolución de una versión anterior en Django MVC — rediseñado desde cero para aplicar arquitectura hexagonal y soporte asíncrono real