Saltar al contenido principal
Open Source

FitKid Schedule

Aplicación web creada para resolver un problema concreto: los horarios de los campeonatos de FitKid llegaban en PDF, se distribuían por WhatsApp con errores y los padres no sabían a qué hora competían sus hijos. FitKid Schedule lo resuelve con una búsqueda rápida desde el móvil.

El problema

El horario de competición llegaba en PDF. El delegado lo reenviaba por WhatsApp. Los padres preguntaban a qué hora era, alguien respondía el número equivocado, otro corregía... Confusión garantizada en cada campeonato.

La solución

  • Búsqueda por nombre

    Escribe el apellido del deportista y la app muestra su turno al instante. Sin scrolls infinitos por un PDF.

  • Filtros por categoría y género

    Alevín, Benjamín, Infantil... filtra por categoría y género para reducir el listado al tramo que te interesa.

  • Highlight de club

    El parámetro ?club= en la URL resalta todos los participantes de un club. Comparte el enlace y el filtro viaja con él.

  • PWA instalable

    Sin App Store. Se instala desde el navegador y funciona en cualquier móvil del equipo técnico.

Stack técnico

Frontend

  • Astro 5 (SSR)
  • TypeScript
  • CSS puro
  • React islands

Infraestructura

  • Vercel
  • PWA / Service Worker
  • Middleware Astro

Datos

  • Markdown + Git
  • Zod (Content Collections)
  • Scripts TS (PDF → MD)

Decisiones técnicas

  • Sin base de datos

    Los horarios viven en ficheros Markdown versionados con Git. Un deploy es publicar. No hay panel de admin, no hay SQL, no hay coste operativo.

  • Auth simple por contraseña

    Dos roles (admin y viewer) gestionados en middleware de Astro con cookies httpOnly. El admin ve datos sensibles; el viewer solo ve los horarios publicados. Sin OAuth, sin JWT, sin librería externa.

  • Highlight sin estado de servidor

    El club favorito se guarda como parámetro ?club= en la URL. El estado es la URL. Se puede compartir el enlace con el filtro ya aplicado sin necesitar backend ni sesión.

Open source y GDPR

El código es público en GitHub. El repo público usa datos ficticios, lo que satisface el RGPD sin fricción: el código y los datos están separados por diseño.

Horario completo de un vistazo

Horario completo de un vistazo

01

Horario completo de un vistazo

Todos los turnos y categorías del día en una sola página, sin paginación. Diseñado para que el árbitro o el coordinador pueda escanear el horario rápidamente.

Búsqueda por nombre

Búsqueda por nombre

02

Búsqueda por nombre

Escribe un nombre y el sistema lo resalta al instante en toda la vista. Los padres pueden encontrar el turno de su hijo sin leer fila por fila.

Tu club siempre visible

Tu club siempre visible

03

Tu club siempre visible

Configura tu club con una variable de entorno y todos sus deportistas aparecen en cian automáticamente. Sin tocar el código, sin redeployar.

Pensado para el móvil
04

Pensado para el móvil

Los deportistas y sus familias consultan el horario desde el teléfono en el propio pabellón. Sin app que instalar, funciona como PWA.

¿Curioso por los detalles?

El código es abierto. Puedes ver la implementación del middleware de auth, la estructura de los datos Markdown y los scripts de importación desde PDF.