Caso · Producto de datos
LifeOS: de exportaciones de Garmin y ARX a KPIs semanales
Reúne en un panel lo que suele estar repartido entre una hoja de gastos, la app del gimnasio, el reloj deportivo y la plataforma del máster. Calcula indicadores semanales y propone prioridades con reglas explícitas. Lo uso a diario.
El problema
Quien compagina trabajo, entrenamiento y un máster online decide cada semana qué gastar, cuánto entrenar y qué estudiar con datos dispersos y sin una vista común.
Qué hace
- Un panel con cuatro instrumentos (deporte, salud, máster y finanzas), un indicador de equilibrio y las acciones prioritarias de la semana.
- Registrar un gasto recalcula al momento el ahorro estimado y la desviación sobre la meta.
- Detecta sobrecarga de entrenamiento y cambia el estado de recuperación a «Vigilar».
- Media ponderada del máster por semestre y aviso de entregas con mucho peso en la nota.
Integraciones que no duplican ni pisan
Idempotencia
Repetir una sincronización no cambia nada: solo se escriben las filas que han cambiado y se respeta lo que el usuario escribió a mano.
- ARX no tiene API. LifeOS lee su Firestore desde el servidor con una cuenta de servicio de solo lectura. Relee unos días hacia atrás porque en ARX se pueden editar días pasados.
- Garmin entra por archivos TCX con vista previa, clasificación del deporte y detección de duplicados frente a sesiones que llegan por otra vía.
- Servidor MCP de solo lectura con OAuth 2.1, PKCE, tokens de 60 minutos y refresh tokens rotatorios revocables. Siete herramientas, y cada consulta filtra por usuario.
- Mappers explícitos entre filas de Postgres y tipos del dominio. Gracias a ellos la demo sustituye el backend sin tocar componentes ni cálculos.
Qué es real y qué es demo
| Parte | En la demo | Detalle |
|---|---|---|
| Cálculos, reglas, formularios, importadores y gráficos | Real | El mismo código de la app, compilado en un solo HTML. |
| Datos de finanzas, salud, entrenamiento y máster | Sintético | Perfil ficticio generado en el navegador con semilla fija. |
| Backend | Sintético | Un adaptador en memoria sustituye a Supabase con la misma API. |
| Login, RLS real, sincronización con ARX y MCP | No incluido | Solo en la versión real. |
Resultados
167tests automáticosproyecto original
103tests en la demoincluida la coherencia del dataset
7herramientas MCPtodas de solo lectura
Limitaciones y siguientes pasos
- Las lecturas usan reglas fijas, no un modelo estadístico. El paso natural es la tendencia de peso con intervalos de confianza.
- En el plan gratuito de Vercel la sincronización con ARX corre una vez al día.
- La demo no guarda datos entre sesiones.
Capturas de la demo
Todas con datos sintéticos.







