/casos/portal-entrenadores-gimnasio
Una sola base de datos, dos puertas distintas
Los entrenadores de un gimnasio necesitaban su propia herramienta: alumnos, rutinas por grupo muscular, progreso y un informe en PDF para el alumno. Lo que no podían tener era su propia base de datos.
- Cliente
- Gimnasio, Venezuela
- Rol
- Desarrollador. Modelo de datos compartido con el administrativo, control de acceso por permisos, informe en PDF y despliegue.
- Periodo
- 2026 — presente
- Estado
- En producción
El problema
El gimnasio ya tenía un sistema administrativo funcionando: caja, planes, gastos, cuentas. Los entrenadores no entraban ahí, y con razón: un entrenador no tiene nada que hacer en las finanzas del negocio. Pero llevaban a sus alumnos en el teléfono, cada uno a su manera, y eso no se podía mirar desde ningún sitio.
La decisión
Dos aplicaciones, una base. La alternativa era sincronizar, y sincronizar es donde se rompen las cosas
El portal es una aplicación aparte: otra dirección, otra pantalla de entrada, otro diseño. Lo que no es aparte son los datos. Lee y escribe en la MISMA base que el administrativo, y por eso el dueño ve en su panel cuántos alumnos lleva cada entrenador y a cuántos les hizo seguimiento, sin que nadie exporte ni importe nada. Con dos bases habría que sincronizarlas, y una sincronización que falla en silencio es peor que no tener el dato.
El permiso decide quién ve qué, y se mira el permiso, no el nombre del rol. Atarse a la palabra «Administrador» dejaría fuera a un rol nuevo que sí administra; los roles se renombran y se crean, y el permiso es lo que de verdad significa algo. Un entrenador no ve el dinero del gimnasio, igual que la cajera no ve el panel.
Una cuenta de entrenador que se equivoca de puerta no recibe un «no tienes permiso» a secas: recibe la dirección a la que tiene que ir. Un mensaje de error que no dice qué hacer acaba siempre en una llamada preguntando por qué.
Qué construí
- Alumnos del entrenador, cruzados por cédula con las ventas del gimnasio: la ficha dice si el plan está al día, vencido, o si no se sabe.
- «No se sabe» no es lo mismo que «al día», y se enseña distinto. Mezclarlos haría llamar a quien no toca.
- Rutinas por grupo muscular, con plantillas de fábrica y las propias de cada entrenador.
- Sesiones con series, repeticiones, peso, tiempo o distancia, según el ejercicio.
- Informe del alumno en PDF, generado en el servidor. Se hace así porque para mandar un fichero hace falta un fichero: «imprimir a PDF» desde el teléfono deja al entrenador buscando en Descargas.
- Instalable en el teléfono, con avisos y mensajes entre administración y entrenadores.
Las dos mitades están abiertas y comparten base, igual que en el gimnasio. Apunta un alumno en el portal y míralo aparecer en el panel del administrativo:
Entra como entrenador
Es el mismo software del caso, sin clave. Añade un alumno, apúntale una sesión con sus series y su peso, escríbele una nota y bájate su informe en PDF.
Después abre la demo del sistema administrativo y busca el bloque «Entrenadores»: ahí está lo que acabas de apuntar. No hay sincronización ninguna; es la misma base.
Entrar a la demoEntras como un entrenador con su ficha, que es lo que hace falta para ver «mis alumnos». Hay un segundo instructor con los suyos, para que se vea que cada uno ve los suyos y no los del otro. La base se rehace sola todas las noches, y la instalación del gimnasio no comparte contenedor, red, base ni claves con esta.
- Flask
- SQLite
- ReportLab
- PWA
- Docker
- Caddy
La demo de esta página comparte base con la demo del sistema administrativo, igual que en la instalación del cliente. Los alumnos y las sesiones son inventados.