Saltar al contenido principal

FlowFit — Documentación técnica

FlowFit es una aplicación de administración de gimnasio pensada para un solo gimnasio, en una sola computadora. No es un servicio web multi-cliente: el servidor escucha únicamente en 127.0.0.1 y la base de datos vive embebida en la propia máquina.

:::info Audiencia Esta sección es para el equipo de desarrollo. El Manual de usuario cubre el uso diario sin tecnicismos. :::

Stack real

CapaTecnología
FrontendReact 19 · Vite · TypeScript · Zustand · TanStack Query · React Router 7
Backend (sidecar)Fastify 5 · Prisma 7 (adaptador better-sqlite3)
Base de datosSQLite (archivo local, modo WAL)
AutenticaciónJWT con jose · hashing de contraseñas con Argon2id
ValidaciónZod
Shell de escritorioTauri 2 (Rust) — empaqueta frontend + sidecar Node + SQLite
NotificacionesTwilio (WhatsApp)
Tareas programadasnode-cron (recordatorios diarios)
ToolingBiome (lint + format) · Vitest (tests)

El stack se verificó leyendo el repositorio (package.json, prisma/schema.prisma, server/). El proyecto no usa Flask; Flask fue solo el prototipo de origen.

Modos de despliegue

FlowFit se distribuye como aplicación de escritorio:

  • App de escritorio (Tauri / Windows). Un instalador (.exe vía NSIS) empaqueta el frontend compilado, el servidor Fastify como sidecar de Node y la base SQLite. Funciona offline; los respaldos se sincronizan a Nextcloud cuando hay red. Este es el modo de entrega al cliente.

:::caution Modo "SaaS web multi-tenant" — [POR CONFIRMAR] El brief inicial mencionaba una distribución web multi-tenant. El código no la implementa y el README.md declara explícitamente "No es un SaaS multi-tenant"; el roadmap marca multi-sucursal como descartado. Si en el futuro se decide ofrecer un modo web, este documento debe actualizarse. Por ahora se documenta solo el modo escritorio. :::

Cómo está organizado el repositorio

FlowFit-app/
├── src/ # Frontend React (vistas, componentes, lib)
├── server/ # Sidecar Fastify (rutas, lib de dominio)
│ ├── routes/ # Endpoints HTTP por recurso
│ └── lib/ # Reglas de dominio: fechas, twilio, backup, auditoría…
├── prisma/ # schema.prisma, migraciones, seed
├── src-tauri/ # Shell de escritorio (Rust + tauri.conf.json)
├── scripts/ # build-sidecar, fetch-node, make-latest-json, bump-version
└── website/ # Este sitio de documentación (Docusaurus)

Siguientes lecturas