Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

swimstats

Aplicación web para nadadores competitivos que permite registrar tiempos, visualizar mejores personales (PBs), comparar con estándares oficiales y graficar progreso. Usa Go/React, PostgreSQL y Docker Compose.

Ficha actualizada 26 sept 2026, 6:14 · upstream 26 sept 2026, 5:42 · release v9.0.0

Ver códigoProblemas y ayudaRepositorio ↗
00

Qué es swimstats

Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.

SwimStats es una aplicación web diseñada para nadadores competitivos o sus padres para gestionar el seguimiento del rendimiento en la piscina. Permite registrar tiempos de competición por evento, visualizar mejores personales (PBs) con insignias de estándares logrados y graficar la evolución temporal con referencias a estándares oficiales.

La arquitectura separa backend en Go 1.25+ con Chi router y frontend en React 18 con TypeScript, Vite y TailwindCSS. La base de datos es PostgreSQL gestionada con SQLC para acceso tipo ORM. Soporta autenticación OIDC compatible con Authentik o Keycloak, aunque en modo desarrollo usa tokens mock.

El proyecto incluye importación de estándares de tiempo (ej. Swimming Canada) desde JSON, filtrado por tipo de piscina (25m/50m), género y grupo de edad. También permite exportar/importar datos completos para copias de seguridad o migraciones.

CASOS DE USO
  • Nadadores individuales registran sus tiempos post-competición y visualizan su progreso histórico por evento.
  • Padres o entrenadores supervisan el rendimiento de varios nadadores en un mismo panel con dashboards comparativos.
  • Equipos deportivos importan estándares oficiales (ej. Swim Ontario) para evaluar la consecución de objetivos.
  • Analistas deportivos filtran datos por tipo de piscina y comparan PBs contra referencias de grupos de edad.
  • Usuarios exportan sus datos en JSON como respaldo antes de migrar a otra plataforma o cambiar de equipo.
PUNTOS DESTACADOS
  • Arquitectura modular con backend en Go y frontend en React, ambos bien documentados y con tests unitarios/integración.
  • Soporte nativo para autenticación OIDC (Authentik/Keycloak) y modo desarrollo sin configuración de seguridad.
  • Base de datos PostgreSQL con SQLC para tipado fuerte y generación automática de código Go desde consultas SQL.
  • Importación de estándares de tiempo desde archivos JSON oficiales, filtrables por curso, género y edad.
  • Gráficos interactivos con Recharts que muestran evolución temporal, PBs y líneas de referencia de estándares.
  • API RESTful completa documentada en specs/001-swim-progress-tracker/contracts/api.yaml con endpoints para gestión de nadadores, tiempos, competiciones y datos.
PRECAUCIONES
  • No existe import automático de resultados desde sistemas federativos; los tiempos deben ingresarse manualmente.
  • Requiere Go 1.25+ (versión futura no estable en el momento actual) para compilar el backend.
  • Sin Dockerfile, el despliegue directo requiere usar docker-compose o construir la imagen manualmente.
  • La autenticación OIDC es obligatoria en producción; sin ella, el modo desarrollo usa tokens mock que no son seguros.
  • No hay soporte explícito para sincronización bidireccional con federaciones o sistemas externos de resultados.
VISUAL

Capturas del proyecto

Imágenes reales detectadas en la documentación del repositorio.

Personal BestsProgress ChartsAll TimesMeetsCompareStandardsSettings
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU2 vCPUrecomendación inicial
MEMORIA2 GBRAM estimada
DISCO20 GBalmacenamiento base
COMPLEJIDADmediumnivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Listo para automatizar

Recomendado usar docker-compose para despliegue rápido. En producción, configurar OIDC_ISSUER, OIDC_CLIENT_ID y OIDC_CLIENT_SECRET. Asegurar que PostgreSQL esté en modo persistente (volumen) y no en el mismo contenedor. Ejecutar migraciones antes de iniciar el backend. El frontend se sirve desde un puerto distinto (5173) al backend (8080); usar reverse proxy o Nginx para enrutar correctamente las peticiones.

✓Dockerfile
✓Compose
✓One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
ReactNode.js
SERVICIOS
PostgreSQL
BASES DE DATOS
PostgreSQL
PUERTOS
808051735432
05

Puede sustituir a

Relaciones detectadas por el análisis del repositorio y su categoría.

06

Experiencia real de la comunidad

Ayuda a contrastar la estimación automática con instalaciones reales.

Todavía no hay datos comunitarios para este proyecto.