Fantasy Voley
Manager fantasy de voleibol español, puntuado con estadísticas reales de la liga.
- Rol
- Único ingeniero — ingesta de datos, API y front
- Stack
- Python PostgreSQL Neon Railway Vue
Problema
El voleibol español tiene una afición entregada y ninguna liga fantasy. La federación publica plantillas, calendario y estadísticas por partido en un portal ASP.NET heredado, sin API, con identificadores de equipo que cambian entre temporadas y un HTML que se mueve sin avisar.
Enfoque
Una capa de ingesta que trata el portal de la federación como una fuente hostil. El identificador de jugador es estable, así que sostiene los joins; el de equipo no lo es, así que se resuelve por temporada. El scraping corre programado, escribe en staging y solo promociona una temporada cuando los recuentos son plausibles: un cambio silencioso de HTML degrada a "no hay actualización" en vez de "todas las plantillas están vacías". Encima va el motor de puntuación que convierte estadísticas reales de partido en puntos fantasy.
Resultado
Una liga funcionando de punta a punta — ingesta, motor de puntuación y front — sincronizada automáticamente durante la temporada, sobre un modelo de datos que sobrevivió a un rediseño de la web de la federación sin reescribirse. El lanzamiento público es el siguiente paso.
Puntuar es una decisión de producto, no una fórmula
Convertir estadísticas por partido en puntos fantasy es donde vive el juego. Demasiado literal y siempre gana el mejor jugador; demasiado ingenioso y nadie puede predecir su propia puntuación. Encontrar ese equilibrio llevó más iteraciones que cualquier otra parte del código.