Saltar al contenido principal
Índice

Web · 2025

Torneitos

Plataforma de gestión de torneos deportivos con brackets automáticos, fixture y tabla de posiciones.

Stack
React 18 · TypeScript · Vite 5 · React Router DOM 6 · Express 5 · Node.js · PostgreSQL · Supabase · Zod
Torneitos
01

Contexto

Torneitos es una plataforma web desarrollada para simplificar la creación y gestión instantánea de torneos informales de fútbol en consolas (FIFA/FC) entre amigos. El proyecto nació para resolver la desorganización y la fragmentación habitual de estas juntadas, donde para armar un torneo era necesario abrir múltiples pestañas e interfaces separadas para el sorteo de equipos y creación del torneo.

02

Motivación

La motivación principal fue centralizar y agilizar todo el flujo de organización en una sola herramienta accesible en segundos y sin necesidad de crear cuentas.

Se diseñó el proceso para resolver la experiencia completa en 4 pasos simples: cargar la lista de participantes, seleccionar el catálogo de equipos (o crear el tuyo), sortear la asignación de camisetas mediante una ruleta interactiva para agregarle emoción a la previa, y definir el formato de competición.

03

Qué hice

Para lograr una arquitectura escalable, mantenible y agnóstica a la base de datos, diseñé e implementé el sistema desacoplando el cliente del servidor mediante patrones de diseño avanzados:
  • Inyección de Dependencias y Persistencia Intercambiable (Express & Node.js): Desarrollo de la API REST utilizando el patrón Factory/DI (createApp), permitiendo alternar la capa de datos entre el cliente nativo de PostgreSQL (pg) y la SDK de Supabase sin modificar rutas ni controladores.
  • Algoritmo de Fixture Round-Robin (roundRobin.js): Implementación del algoritmo de rotación cíclica para la generación automática de calendarios de torneos (con soporte para ida y vuelta), garantizando cruces equitativos y distribución ordenada de fechas (round) y llaves (slot).
  • Cómputo en Base de Datos (PostgreSQL Views): Delegación del cálculo de tablas de posiciones generales y estadísticas acumuladas anuales a vistas SQL avanzadas (annual_standings_view), optimizando la latencia y la consistencia de datos.
  • Validación de Contratos y Schemas (Zod): Sanitización y validación estricta de todos los payloads recibidos por las rutas de la API mediante esquemas Zod antes de su procesamiento.
  • Sistema de Acceso por Tokens en URL (React Router DOM): Gestión de roles mediante enlaces seguros para separar las acciones de administración reservadas al creador de la vista pública para espectadores.
05

Galería

Vistas de Escritorio (9)

Vistas Móviles (9)