Aplicación completa de seguimiento de entrenamientos construida con Next.js 14, TypeScript y Tailwind CSS. Una solución moderna, intuitiva y completa para gestionar tus entrenamientos, rutinas y progreso físico.
- ✅ Registro en tiempo real con auto-guardado
- ✅ Timer de entrenamiento y cronómetro de descanso configurable (30s - 3min)
- ✅ Historial de ejercicios con comparación de progreso
- ✅ Sugerencias de progresión basadas en objetivo de entrenamiento
- ✅ Biseries/Supersets - Alterna automáticamente entre ejercicios emparejados
- ✅ Auto-completado inteligente de series al cambiar de foco
- ✅ Pre-carga de pesos del último entrenamiento
- ✅ RPE (Rate of Perceived Exertion) para medir intensidad (1-10)
- ✅ Cálculo automático de volumen total levantado
- ✅ Notas por ejercicio y notas generales del entrenamiento
- ✅ Rutinas semanales personalizadas organizadas por días
- ✅ Días de descanso programados con contenido motivacional
- ✅ Plantillas predefinidas (Push/Pull/Legs, Full Body, Upper/Lower)
- ✅ Biseries configurables para entrenamientos más eficientes
- ✅ Estimación de duración de cada rutina
- ✅ Colores distintivos por día de la semana
- ✅ Comparación de rutinas lado a lado
- ✅ 50+ ejercicios precargados con imágenes
- ✅ Filtros avanzados por categoría, grupo muscular y equipo
- ✅ Sistema de favoritos para acceso rápido
- ✅ Búsqueda en tiempo real por nombre
- ✅ Agregar ejercicios personalizados con tus propias imágenes
- ✅ Historial completo por ejercicio con tendencias
- ✅ Gráficos de progreso con Recharts
- ✅ Volumen semanal acumulado
- ✅ Records personales por ejercicio
- ✅ Frecuencia de entrenamiento semanal/mensual
- ✅ Time Under Tension (TUT) estimado
- ✅ Distribución por grupo muscular con gráfico de pastel
- ✅ Seguimiento de 1RM a lo largo del tiempo
- ✅ Filtros por rango de tiempo (7/30/90 días o todos)
- ✅ Fórmula de Brzycki para precisión
- ✅ Zonas de entrenamiento personalizadas según objetivo
- ✅ Recomendaciones basadas en perfil (Fuerza, Hipertrofia, Resistencia)
- ✅ Advertencias inteligentes para rangos de reps con mayor margen de error
- ✅ Tabla completa de porcentajes (65%-100%)
- ✅ Cálculo de reps máximas por zona
- ✅ Información personal editable
- ✅ Datos físicos (peso, altura)
- ✅ Cálculo automático de IMC con categorización
- ✅ Objetivos de entrenamiento:
- 💪 Fuerza (1-6 reps, cargas pesadas, 3-5 min descanso)
- 🏋️ Hipertrofia (6-12 reps, volumen moderado, 1-2 min descanso)
- ⚡ Resistencia (15+ reps, cargas ligeras, 30-60 seg descanso)
- ✅ Estadísticas totales de entrenamientos
- ✅ Contador de días consecutivos de entrenamiento
- ✅ Ignora días de descanso programados automáticamente
- ✅ Motivación visual con emoji de fuego
- ✅ Reset inteligente solo al perder un día de entrenamiento
- ✅ Frases motivacionales rotativas (20 frases únicas)
- ✅ Consejos de recuperación (20 tips profesionales)
- ✅ Contenido diario diferente con hash basado en fecha
- ✅ Estadísticas de la semana (entrenamientos completados, días de descanso)
- ✅ Vista previa del próximo entrenamiento con ejercicios
- ✅ Diseño "zen" con gradientes relajados
- ✅ Exportar a CSV con formato profesional y estadísticas
- ✅ Exportar a PDF con diseño de marca (jsPDF)
- ✅ Resumen estadístico incluido en exportaciones
- ✅ Datos completos de todos los entrenamientos
- ✅ Formato legible para análisis en Excel/Sheets
- ✅ Diseño responsive mobile-first
- ✅ Modo claro/oscuro con toggle
- ✅ Animaciones fluidas con Framer Motion
- ✅ Navegación adaptativa (escritorio/móvil)
- ✅ Navegación inferior en móviles
- ✅ Inputs grandes y legibles en workout
- ✅ Dashboard intuitivo con accesos rápidos
- ✅ Optimizado para todas las pantallas
- ✅ 14 logros desbloqueables con iconos únicos
- ✅ Niveles de progreso (Bronce, Plata, Oro, Platino, Diamante)
- ✅ Tracking de progreso visual con barras de progreso
- ✅ Notificaciones de nuevos logros
- ✅ Estadísticas de desbloqueo
La aplicación utiliza localStorage para persistir datos localmente en tu dispositivo:
- ✅ Información de usuario y objetivo de entrenamiento
- ✅ Ejercicios personalizados con imágenes
- ✅ Historial completo de entrenamientos
- ✅ Rutinas semanales creadas
- ✅ Records personales automáticos
- ✅ Workouts en progreso (auto-guardado)
- ✅ Configuración de descansos preferida
- ✅ Logros desbloqueados
Nota: Todos tus datos permanecen en tu dispositivo. No se envían a ningún servidor.
- Next.js 14 - Framework React con App Router y Server Components
- TypeScript - Tipado estático para mayor robustez
- Tailwind CSS - Estilos utility-first para diseño rápido
- Framer Motion - Animaciones fluidas y profesionales
- Lucide React - Iconos modernos y consistentes
- Recharts - Gráficos interactivos y responsive
- jsPDF + autoTable - Generación de PDFs profesionales
- React Context API - Manejo de estado global
- localStorage API - Persistencia de datos local
- 📱 Diseño mobile-first optimizado para teléfonos
- 💻 Adaptación a tablets con grid de 2 columnas
- 🖥️ Vista de escritorio con grid de 3 columnas
- 🎯 Touch-friendly con botones grandes y claros
- ⚡ Inputs táctiles mejorados para registro rápido
- 📐 Layouts flexibles que se adaptan al contenido
- Node.js 18+
- npm o yarn
- Clona el repositorio:
git clone https://github.com/ccsr7/gym-tracker-pro.git
cd gym-tracker-pro- Instala las dependencias:
npm install- Ejecuta el servidor de desarrollo:
npm run dev- Abre tu navegador:
http://localhost:3000
npm run dev # Inicia el servidor de desarrollo (http://localhost:3000)
npm run build # Construye la aplicación para producción
npm start # Inicia el servidor de producción
npm run lint # Ejecuta el linter de códigogym-tracker-pro/
├── src/
│ ├── app/ # App Router (Next.js 14)
│ │ ├── library/ # Biblioteca de ejercicios con filtros
│ │ ├── routines/ # Gestión de rutinas semanales
│ │ │ └── templates/ # Plantillas predefinidas
│ │ ├── calculator/ # Calculadora 1RM con zonas
│ │ ├── history/ # Historial de entrenamientos
│ │ ├── profile/ # Perfil y objetivos
│ │ ├── stats/ # Estadísticas y exportación
│ │ ├── progress/ # Progreso por ejercicio
│ │ ├── workout/[id]/ # Página de entrenamiento en vivo
│ │ └── achievements/ # Sistema de logros
│ ├── components/ # Componentes React reutilizables
│ │ ├── Dashboard.tsx # Dashboard principal
│ │ ├── Navigation.tsx # Navegación adaptativa
│ │ └── PageTransition.tsx # Animaciones de página
│ ├── lib/ # Utilidades y lógica de negocio
│ │ ├── auth-context.tsx # Contexto de autenticación
│ │ ├── utils.ts # Utilidades (BMI, 1RM, fechas, streaks)
│ │ ├── volume-stats.ts # Cálculos de estadísticas
│ │ ├── data-export.ts # Exportación CSV/PDF
│ │ └── progression-suggestions.ts # Sugerencias de progresión
│ ├── types/ # Definiciones TypeScript
│ │ └── index.ts # Tipos globales
│ └── data/ # Datos iniciales
│ ├── exercises.ts # Biblioteca de 50+ ejercicios
│ ├── routine-templates.ts # Plantillas predefinidas
│ └── rest-day-content.ts # Frases y consejos para descanso
├── public/
│ └── exercises/ # Imágenes de ejercicios (50+ imágenes)
├── package.json # Dependencias del proyecto
├── tsconfig.json # Configuración TypeScript
├── tailwind.config.ts # Configuración Tailwind
├── next.config.js # Configuración Next.js
└── README.md # Este archivo
- Registra tu cuenta con nombre y email
- Completa tu perfil con peso, altura y objetivo de entrenamiento
- Explora la biblioteca de ejercicios y marca favoritos
- Crea tu primera rutina o usa una plantilla predefinida
- Ve a Rutinas → Crear Nueva Rutina
- Selecciona el día de la semana
- Agrega ejercicios desde la biblioteca
- Configura series y reps para cada ejercicio
- Opcional: Crea biseries emparejando ejercicios
- Guarda tu rutina
- Dashboard mostrará tu rutina del día
- Presiona "Iniciar Entrenamiento"
- Registra peso y reps para cada serie
- El timer de descanso inicia automáticamente al completar una serie
- En biseries, alterna automáticamente entre ejercicios
- Agrega notas por ejercicio si es necesario
- Al finalizar, ajusta RPE y guarda
- Ve a Estadísticas para ver tu progreso general
- Ve a Progreso por Ejercicio para análisis detallados
- Compara tu 1RM y volumen a lo largo del tiempo
- Revisa tus records personales
- Exporta tus datos en CSV o PDF
- Ve a Logros para ver tu progreso
- Desbloquea logros completando objetivos
- Sube de nivel en diferentes categorías
- Comparte tus logros con amigos
1RM = Peso × (36 / (37 - Reps))
IMC = Peso (kg) / (Altura (m))²
Volumen = Σ (Peso × Reps × Series)
- Cuenta días consecutivos de entrenamientos completados
- Ignora días de descanso programados
- Se reinicia al perder un día de entrenamiento
El sistema de autenticación actual es local y usa localStorage.
Se recomienda implementar autenticación real con:
- NextAuth.js - Autenticación para Next.js
- Firebase Auth - Backend como servicio
- Supabase Auth - Alternativa open-source
- Clerk - Autenticación moderna
- O cualquier otro proveedor de tu preferencia
Los colores se pueden modificar en:
tailwind.config.ts- Colores base y extendidossrc/app/globals.css- Variables CSS y temas
Edita src/data/exercises.ts y agrega:
{
id: 'nuevo-ejercicio',
name: 'Nombre del Ejercicio',
category: 'Pecho',
muscleGroup: 'Pectorales',
equipment: 'Barra',
image: '/exercises/tu-imagen.jpg'
}Edita src/data/routine-templates.ts:
{
id: 'mi-plantilla',
name: 'Mi Rutina Personalizada',
description: 'Descripción de tu rutina',
routines: [...]
}Edita src/data/rest-day-content.ts:
- Agrega frases motivacionales al array
MOTIVATIONAL_QUOTES - Agrega consejos al array
RECOVERY_TIPS
- Incluye resumen estadístico
- Datos completos de cada serie
- Compatible con Excel/Google Sheets
- Formato:
gym-tracker-YYYY-MM-DD.csv
- Diseño profesional con logo
- Resumen general con métricas
- Tabla detallada de entrenamientos
- Paginación automática
- Formato:
gym-tracker-YYYY-MM-DD.pdf
- Verifica que el navegador permita
localStorage - Revisa la consola del navegador para errores
- Intenta limpiar el caché y recargar
- Asegúrate de que las imágenes estén en
public/exercises/ - Verifica las rutas en
src/data/exercises.ts - Usa el formato correcto:
/exercises/nombre-imagen.jpg
- Limpia el caché del navegador
- Verifica que Tailwind esté configurado con
darkMode: 'class'
- Push tu código a GitHub
- Importa el proyecto en Vercel
- Vercel detectará automáticamente Next.js
- Deploy con un click
- Netlify - Alternativa similar a Vercel
- Railway - Para proyectos con backend
- Digital Ocean - VPS tradicional
- AWS Amplify - Ecosistema AWS
Este proyecto es de código abierto y está disponible bajo la Licencia MIT.
Puedes usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y/o vender copias del software libremente.
Desarrollado por Cesar Gracias especiales a Claude Code por la asistencia en el desarrollo
¡Las contribuciones son bienvenidas!
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
- 🎯 Agregar más ejercicios a la biblioteca
- 📊 Mejorar los gráficos y estadísticas
- 🌐 Agregar soporte multi-idioma
- 🔔 Sistema de notificaciones
- 📱 Aplicación móvil nativa
- 🎨 Más temas de color
- 🏆 Más logros y desafíos
- 💪 Integración con wearables
- Next.js Team - Por el excelente framework
- Tailwind CSS - Por el sistema de diseño
- Lucide - Por los hermosos iconos
- Recharts - Por los gráficos
- Comunidad Open Source - Por todas las librerías
Si tienes preguntas, sugerencias o encontraste un bug:
- Abre un Issue
- O contacta directamente en GitHub
⭐ Si te gusta el proyecto, considera darle una estrella en GitHub!
Gym Tracker Pro - Lleva tus entrenamientos al siguiente nivel 💪🚀