SetPoint
Gestor de ligas deportivas multideporte
El reto
Una liga amateur maneja relaciones complejas —equipos, jugadores, partidos y eventos— y necesita operaciones consistentes incluso cuando no hay conexión.
Mi rol
Proyecto en equipo. Mi aporte: la capa de datos sobre IndexedDB con transacciones de integridad, los componentes reutilizables, el dashboard y la gestión de ligas con bracket de eliminación simple y doble.
Decisiones técnicas
- 01
Transacciones reales de IndexedDB para finalizar partidos y propagar ganadores sin estados intermedios.
- 02
Bracket construido desde la final hacia atrás usando nextMatchId y loserNextMatchId.
- 03
Router por hash y custom elements para mantener la aplicación sin dependencias de framework.
- 04
Exportación e importación de ligas en JSON para respaldo y portabilidad.
Resultado
PWA instalable con persistencia local, estadísticas en vivo, gráficos con Chart.js y bracket de doble eliminación.