Proyecto 4 de 8
Raw Fitness Club
Un gimnasio vive entre cuadernos. Aqué sabe quién pagó, cuándo vence cada plan y cómo va la caja.
En producción

Esta demo necesita JavaScript. Aquí va en texto.
Rutina de ejemplo
Atleta Demo
Sentadilla
Serie 1 de 3
Anterior: 57,5 kg × 8
Usa un peso entre 0 y 300 kg.
Usa entre 1 y 50 repeticiones.
Guardado en el teléfono
Demo · perfil Atleta Demo · datos de ejemplo
Sin conexión. La demo funciona; el video necesita internet.
Lo mismo, en texto
Esta demo necesita JavaScript. Aquí va en texto.
- Abre la rutina de ejemplo.
- Registra una serie con su peso y sus repeticiones, y mira cómo arranca el descanso.
- Termina y mira el resumen del entrenamiento.
App: una rutina de ejemplo, una serie registrada con su carga, el cronómetro de descanso y el resumen al terminar. Web: planes, entrenadores, instalaciones y ubicación, con un formulario para agendar una visita.
Qué es
La web que atrae visitantes, el sistema que lleva socios y cobros, y la app de entrenamiento: un solo producto para un gimnasio.
Para quién es
Para gimnasios y socios: recepción cobra, el entrenador acompaña y el socio entrena.
Tareas que te quita
- Revisar fechas una por una para avisar de la renovación.
- Llevar la caja y los cobros en cuadernos y hojas.
- Anotar de dónde llegó cada visita interesada.
- Reconstruir qué hizo el socio en su última sesión.
Qué hay detrás
- 1
El visitante consulta por WhatsApp desde la web.
- 2
Recepción guarda cobros, vencimientos y recibos.
- 3
A las 8:00 de Bogotú se preparan avisos dos días antes y al vencer.
- 4
Recepción abre WhatsApp con el mensaje escrito y una persona lo envía.
- 5
El socio entrena sin señal; las series se guardan y sincronizan después.
- La web es Astro. El panel de gestión y la app son islas de Svelte 5, piezas interactivas dentro de páginas estáticas. No hay servidor propio: el backend operativo está en Supabase.
- La app guarda primero en IndexedDB, la base de datos del navegador, con Dexie, y sincroniza de forma desacoplada. Una sesión interrumpida se recupera.
- De la app al servidor: una Edge Function en Deno llama funciones de PostgreSQL y responde JSON validado.
- El panel usa Supabase Auth; las consultas pasan por RLS (permisos por fila).
- Los avisos diarios los genera pg_cron, el programador de tareas de Postgres. Son idempotentes: repetirlos no duplica nada.
- El dinero va en tipo numeric y las anulaciones dejan un rastro auditable. La salud corporal se queda en el teléfono. CSP con scripts por hash y HSTS, que obliga a usar HTTPS. Un script comprueba los hashes del HTML compilado.
- Astro
- Svelte
- Supabase
- GitHub Actions
Cuidados y límites reales
- Los avisos programados y las notificaciones del descanso necesitan configuración y el permiso del navegador.
- El receptor de contactos de la web es opcional: si falta, el flujo sigue por WhatsApp.
Qué prueba hay de que es robusto
Verificado el 2026-10-08. Pruebas escritas no son pruebas ejecutadas.
- 579pruebas escritas en 42 archivosconteo de test(/it( en archivos .test/.spec versionados
- 24tablas en el esquemacreate table rw_* en db/*.sql
- 18migraciones SQLdb/*.sql
- 110commitsgit rev-list --count HEAD
Cómo cuento
Cada cifra lleva su método, su fuente y su fecha. Un conteo de pruebas es un conteo de texto: pruebas escritas (conteo en el código), no pruebas ejecutadas.
Lo que no afirmo
- Asistencia por QR: se retiró.
- Pasarela de pagos: el panel registra los pagos, no los cobra.
- Agentes de IA ni n8n: esta pieza no los usa.
- Envío automático de WhatsApp: los avisos los envía una persona.
- Pruebas ejecutadas ni disponibilidad: el conteo es de pruebas escritas.
Un sistema así, para tu negocio
Quiero un sistema asíAl pulsar Enviar en WhatsApp me autorizas a usar tu número y tu mensaje para responderte. Política de datos
Siguiente proyectoTarima