← Volver al portfolioTrabajo de Fin de Grado

Trabajo de Fin de Grado

FitHub - Plataforma de gestión y gamificación para gimnasios

Plataforma web completa para gimnasios con sistema de roles, gamificación, seguimiento de entrenamientos y panel de administración.

Duración

5 meses (enero - mayo 2025)

Rol

Desarrollador full stack - TFG en equipo de 2

PHPMySQLJavaScriptHTMLCSSApacheXAMPPStripePHPMailerFigma
FitHub - Plataforma de gestión y gamificación para gimnasios

Sobre el proyecto

FitHub nació de nuestra propia experiencia como usuarios de gimnasio: la falta de motivación y el abandono del entrenamiento son problemas reales que las soluciones existentes no resuelven bien. Desarrollé esta plataforma junto a otro compañero como Trabajo de Fin de Grado, con el objetivo de digitalizar la gestión de gimnasios y hacer el entrenamiento más social y motivador. La aplicación permite a clientes registrar su progreso y competir con amigos, a entrenadores monitorizar y asignar rutinas personalizadas, y a administradores gestionar toda la operativa del gimnasio: usuarios, clases, pagos y reservas. Cuenta con un sistema de gamificación real (rankings, logros y medallas), un panel de estadísticas visual, chat entre usuarios y una pasarela de pago integrada con Stripe.

Funcionalidades clave

  • Sistema de tres roles diferenciados: Cliente, Entrenador y Administrador, con permisos independientes
  • Gamificación real: rankings públicos por marcas personales, sistema de logros y medallas por hitos
  • Seguimiento de entrenamientos con historial, marcas personales y visualización de progreso mediante estadísticas
  • Reserva de clases con control de aforo limitado y calendario de disponibilidad
  • Panel de administración completo: gestión de usuarios, clases, ejercicios, rutinas, dietas y pagos
  • Sistema social con lista de amigos, chat entre usuarios y feed de logros compartidos
  • Pasarela de pago integrada con Stripe para gestión de cuotas y planes Premium
  • Panel del entrenador para asignar rutinas personalizadas y monitorizar la carga de cada cliente
  • Sistema de notificaciones por correo electrónico con PHPMailer
  • Diseño responsive probado en más de 7 dispositivos reales (iPhone, Android, tablet, escritorio)

El reto

El mayor reto técnico fue el motor de gamificación: calcular rankings en tiempo real consultando marcas personales de todos los usuarios generaba consultas pesadas que degradaban el rendimiento. Además, al ser un proyecto con muchos módulos interdependientes, cualquier cambio en la base de datos afectaba en cadena a múltiples partes de la aplicación.

La solución

Implementé una tabla auxiliar de rankings que se actualiza de forma diferida, desacoplando el cálculo pesado del renderizado de cada página. Para la interdependencia de módulos, establecimos convenciones claras de naming y una capa de acceso a datos centralizada desde el inicio, lo que redujo drásticamente los errores en cascada.

Qué aprendí

Este proyecto me enseñó que pensar la arquitectura antes de escribir código no es opcional cuando la aplicación tiene muchos módulos relacionados. También profundicé en diseño de base de datos relacional compleja, integración de servicios de terceros (Stripe, PHPMailer), y aprendí a trabajar en equipo con Git gestionando ramas y conflictos de merge en un proyecto real.

Ver el proyecto

🔒

Repositorio privado — disponible bajo petición

Otros proyectos

Cliente Gubernamental ★Portal de Deportes - Rivas-VaciamadridProyecto para ClienteCarBen Soluciones Gráficas - Web Corporativa