JSJorge Sebastián Soriano EN

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.

Dónde se usa
Uso diario · alta solo por invitación
Estado
En uso diario desde mayo de 2026
Mi papel
Producto, arquitectura, modelo de datos, integraciones y pruebas. Código con IA
Tecnologías
Next.js, React, TypeScript, Supabase con RLS, Zod, Recharts, Vitest
Panel mensual con indicadores de deporte, salud, máster y finanzas
Demo: resumen mensual con indicadores y prioridades. Perfil ficticio.

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.

ARXFirestore, solo lecturaCroncon secretoUpsert idempotentesolo lo que cambiaPostgres + RLSSupabasePanel y MCPMCP de solo lectura
  • 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

ParteEn la demoDetalle
Cálculos, reglas, formularios, importadores y gráficosRealEl mismo código de la app, compilado en un solo HTML.
Datos de finanzas, salud, entrenamiento y másterSintéticoPerfil ficticio generado en el navegador con semilla fija.
BackendSintéticoUn adaptador en memoria sustituye a Supabase con la misma API.
Login, RLS real, sincronización con ARX y MCPNo incluidoSolo 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.

Resumen mensual con indicadores y prioridades
Resumen mensual con indicadores y prioridades
Finanzas: el ahorro se recalcula al registrar un gasto
Finanzas: el ahorro se recalcula al registrar un gasto
Entrenamientos con alerta de sobrecarga
Entrenamientos con alerta de sobrecarga
Gráficos de fuerza y volumen
Gráficos de fuerza y volumen
Salud y nutrición
Salud y nutrición
Máster: media ponderada y entregas
Máster: media ponderada y entregas
Calendario con sesiones importadas
Calendario con sesiones importadas
Simulador de escenarios
Simulador de escenarios