Los Datos Motivan

#fitness #data

¿Qué pasa cuando un desarrollador obsesionado con los mapas de contribución de GitHub se da cuenta de que su mapa de actividades de Strava está completamente vacío?

La respuesta es simple: construyes tu propia aplicación para confrontarte con la realidad y motivarte a cambiarla.

Durante años fui constante entrenando. El gimnasio era parte de mi rutina, los entrenamientos eran sagrados, y mi cuerpo lo agradecía. Pero algo cambió cuando decidí enfocarme más en mi carrera como desarrollador.

De repente, mi día se llenó de commits, pull requests, y líneas de código. Mi mapa de contribuciones de GitHub se volvió un hermoso jardín verde, denso y consistente. Era adictivo ver esa progresión diaria, esa evidencia visual de productividad y crecimiento profesional.

Pero había un trade-off silencioso ocurriendo: mientras más verde se ponía mi GitHub, más vacío se quedaba mi registro de actividades físicas.

La ironía no podía ser más evidente. Había intercambiado una obsesión saludable (el ejercicio) por otra menos saludable (estar pegado a la computadora todo el día). Y lo peor de todo es que no tenía una visualización clara de esta realidad hasta que decidí hacer algo al respecto.

”Fit” - un Dashboard de Fitness Personalizado

La idea surgió de una combinación de necesidad personal y curiosidad técnica. Si los mapas de contribución de GitHub me motivaban tanto a programar, ¿por qué no crear algo similar para el fitness?

Así nació Fit: una aplicación web con estética Matrix que integra datos de Strava y Hevy para crear una experiencia visual inmersiva que hace imposible ignorar tu estado físico actual.

Características Principales

Monitoreo de Actividades en Tiempo Real: La aplicación trackea running, ciclismo, natación y caminatas con indicadores inteligentes de estado (EXCELLENT, WARNING, CRITICAL). No hay forma de escapar de la verdad cuando ves “CRITICAL” en rojo.

Mapeo Neural de 365 Días: Un heatmap interactivo que muestra tus patrones de actividad anual. Es como el mapa de contribuciones de GitHub, pero para tu salud física.

Integración con Entrenamiento de Fuerza: Datos completos de Hevy para tracking de workouts de gimnasio.

Integrando Dos Mundos - Strava y Hevy

Fit no es solo sobre cardio; es sobre fitness completo. Por eso integra dos APIs fundamentales: Strava para actividades cardiovasculares (running, ciclismo, natación) y Hevy para entrenamientos de fuerza en el gimnasio.

Trabajar con APIs no es nuevo para mí, pero cada una presentó sus propios desafíos únicos. Strava con su OAuth2 complejo, y Hevy con su sistema de tracking de workouts estructurados.

Integración con Strava: El Desafío OAuth2

La documentación oficial de Strava es buena, pero hay detalles prácticos que solo aprendes haciéndolo. Por eso creé mi propia guía paso a paso que ahora comparto:

1. Configuración en Strava: Lo básico, crear la app y obtener Client ID y Client Secret.

2. La URL de Autorización: Aquí está el primer truco. Tienes que construir manualmente una URL como:

https://www.strava.com/oauth/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=http://localhost:4321/exchange_token&approval_prompt=force&scope=activity:read_all

3. El Intercambio de Código: Esta fue la parte nueva para mí. Después de autorizar, Strava te redirige con un code en la URL que tienes que extraer manualmente y luego usar en un POST request:

Terminal window
curl -X POST https://www.strava.com/oauth/token \
-d client_id=YOUR_CLIENT_ID \
-d client_secret=YOUR_CLIENT_SECRET \
-d code=AUTH_CODE \
-d grant_type=authorization_code

4. Gestión de Tokens: Los access tokens expiran cada ~6 horas, así que necesitas implementar un sistema de refresh automático usando el refresh token.

Lo que más me gustó de este proceso fue lo metódico que tenía que ser. No hay shortcuts; tienes que seguir cada paso detalladamente. Fue muy gratificante cuando finalmente funcionó.

Integración con Hevy: Datos de Entrenamiento de Fuerza

Mientras Strava maneja el cardio, Hevy es el corazón de los datos de entrenamiento con pesas. Esta integración fue diferente pero igualmente importante.

Hevy rastrea cada workout completo: ejercicios, series, repeticiones, peso utilizado, y progresión a lo largo del tiempo. Lo interesante de trabajar con estos datos es que representan un tipo de consistencia diferente - no es sobre distancia o tiempo, sino sobre volumen, intensidad y progresión.

Stack Tecnológico

Para este proyecto elegí herramientas modernas que me permitieran desarrollo rápido y resultados robustos:

El Impacto Psicológico: Datos que No Puedes Ignorar

Aquí es donde el proyecto se vuelve realmente interesante. Una cosa es saber intelectualmente que no has entrenado en semanas; otra muy diferente es ver un dashboard que te muestre simultáneamente:

La aplicación no miente, no suaviza la realidad, no te deja excusas. Es brutalmente honesta de la manera más visual posible, combinando tanto tus actividades cardiovasculares como tus entrenamientos de fuerza.

El Efecto Motivacional

El día que terminé la aplicación y vi mis datos reales, sentí una mezcla de vergüenza y motivación. No quería que esos datos me representaran. No quería que otros vieran esos números vacíos si compartía mi dashboard.

Esa misma tarde decidí ir a nadar. No porque alguien me lo dijera, sino porque literalmente no podía tolerar ver esos números rojos en mi propia aplicación.

Y esa es la magia del proyecto: te confronta contigo mismo usando el lenguaje que más entiendes como desarrollador - datos, visualizaciones, y estados de sistemas.

Lecciones Técnicas y Personales

Sobre APIs y Integración de Datos

Trabajar con OAuth2 de Strava me enseñó la importancia de la documentación detallada, mientras que integrar Hevy me mostró cómo diferentes tipos de datos fitness requieren diferentes enfoques de visualización.

Los datos cardiovasculares son sobre frecuencia y distancia; los datos de gimnasio son sobre consistencia y progresión. Ambos son cruciales para una visión completa de tu estado físico, y combinarlos en una sola interfaz crea una imagen mucho más honesta de tu realidad fitness.

Sobre Motivación y Gamificación

Los desarrolladores respondemos bien a los sistemas de feedback visual. GitHub lo entendió con sus mapas de contribución, y yo simplemente apliqué el mismo principio a la salud física.

La clave no es solo mostrar datos positivos, sino también hacer incómodamente visibles los datos negativos. El dashboard de Fit no celebra solo tus logros; también te confronta con tu negligencia.

Sobre Balance Vida-Código

Este proyecto me hizo reflexionar sobre algo que muchos developers enfrentamos: la obsesión con la productividad profesional a costa de la salud personal. Es fácil justificar 12 horas frente a la computadora como “inversión en tu carrera”, pero ¿a qué costo?

El deporte no es solo salud física; es productividad mental, creatividad, y balance. Algunos de mis mejores insights de programación han llegado durante entrenamientos, no frente a la pantalla.

El Resultado: Un Espejo Digital de Alta Definición

Fit se ha convertido en mi espejo digital más honesto. Cada vez que abro la aplicación, veo inmediatamente:

No quiero que esos datos estén en rojo. No quiero estar todo el tiempo en mi computadora. Quiero que todo esté en verde, por salud y porque quiero ser más activo, hacer más cardio, salir más.

Implementación y Código Abierto

Para cualquier desarrollador interesado en crear algo similar, el código está completamente disponible en GitHub. La configuración es relativamente straightforward si sigues la documentación de Strava que creé.

Los scripts de deployment funcionan con cualquier hosting estático, y la aplicación está optimizada para ser rápida y responsive tanto en desktop como mobile.

Reflexiones Finales: Código Como Herramienta de Autoconocimiento

Este proyecto me demostró algo poderoso: nuestras habilidades técnicas pueden ser herramientas increíbles para el desarrollo personal, no solo profesional.

Fit no es solo una aplicación; es un experimento en accountability personal, un recordatorio diario de que los datos no mienten, y una invitación constante a ser la versión más activa y saludable de mí mismo.

Cada vez que veo el dashboard, tengo que tomar una decisión: aceptar los números rojos o hacer algo para cambiarlos. Y esa decisión, multiplicada por días y semanas, puede cambiar completamente tu realidad física y mental.

La próxima vez que abras tu mapa de contribuciones de GitHub y sientas esa satisfacción por todos esos cuadros verdes, pregúntate: ¿cómo se ve tu mapa de actividad física? ¿Y qué vas a hacer al respecto?