Este Proyecto de Fin de Grado consiste en el desarrollo de una aplicación web orientada a la generación y seguimiento de rutinas de entrenamiento personalizadas en función de los objetivos de los usuarios. El punto de partida del proyecto es la dificultad que tienen muchas personas para mantener una rutina de ejercicios constante, establecer objetivos claros y hacer un seguimiento de su progreso. En muchos casos, la falta de registro de los ejercicios, pesos o series realizadas a lo largo del tiempo impide aplicar correctamente uno de los principios fundamentales del entrenamiento, la sobrecarga progresiva. La aplicación pretende solucionar este problema permitiendo el registro de los entrenamientos y rutinas y la generación de entrenamientos futuros basados en los objetivos definidos.
La aplicación ha sido desarrollada utilizando la plataforma .NET, un framework de desarrollo que permite la creación de aplicaciones robustas, escalables y mantenibles. Para la capa de presentación se ha optado por Blazor Server, con el objetivo de unificar el desarrollo del frontend y el backend en un mismo ecosistema. Blazor Server permite la creación de una interfaz web declarativa que ofrece una experiencia de usuario propia de aplicación de página única (SPA). En cuanto a la persistencia de datos se ha utilizado una base de datos relacional SQL. El despliegue de la infraestructura se ha realizado en la nube mediante Azure, utilizando Terraform para la definición y aprovisionamiento de la infraestructura como código.
El sistema tiene dos tipos principales de usuarios, siendo el más relevante el usuario estándar. Este usuario puede crear sus propias rutinas de entrenamiento, definir objetivos personales relacionados con los ejercicios y generar entrenamientos futuros asociados a las rutinas. Estos entrenamientos futuros se muestran en un calendario junto con los pesos objetivo que se deberían alcanzar en cada ejercicio. Durante o después de los entrenamientos el usuario puede registrar los pesos reales utilizados, lo que permite comparar el rendimiento esperado con el realizado. El sistema también incorpora una sección de administración donde se pueden gestionar los elementos base del dominio. El usuario administrador es el encargado de mantener y configurar las entidades fundamentales del sistema que sirven de soporte para la generación futura de rutinas y entrenamientos. Entre estas funciones se encuentra el mantenimiento el catálogo de ejercicios disponibles en la aplicación.
El desarrollo de la aplicación se ha llevado a cabo siguiendo un enfoque ágil, basado en iteraciones sucesivas que han permitido integrar mejoras de forma progresiva y continua. Este enfoque ha permitido realizar despliegues frecuentes. Para ello ha sido fundamental el uso de pipelines de integración y despliegue continuo, automatizando la compilación y el despliegue de la aplicación, acercando de esta manera el proceso de desarrollo a prácticas habituales en entornos profesionales.
Entre las principales líneas de mejora previstas para el futuro destaca la incorporación de conocimiento especializado en el ámbito del entrenamiento. Actualmente el sistema implementa un algoritmo de progresión relativamente simple, basado en incrementos semanales de los pesos según el nivel del usuario, sin una personalización profunda ni una base científica avanzada. Una evolución natural del proyecto sería colaborar con profesionales del área deportiva para refinar el algoritmo y poder adaptar la progresión de forma más individualizada.
En conclusión, el proyecto demuestra la aplicación práctica de los conocimientos adquiridos durante el grado en un contexto cercano al desarrollo profesional real. El sistema ha sido diseñado utilizando tecnologías ampliamente utilizadas en el ámbito empresarial, como .NET o servicios en la nube. De este modo el proyecto no solo cumple con los objetivos académicos, sino que también sirve como una base sólida para el desarrollo de aplicaciones reales y como preparación para el ejercicio profesional.
Abstract:
This Final Degree Project consists of the development of a web application focused on the generation and tracking of personalized training routines based on user goals. The starting point of the project is the difficulty many people have in maintaining a consistent exercise routine, setting clear goals, and tracking their progress. In many cases, the lack of records of exercises, weights, or sets over time makes it difficult to correctly apply one of the fundamental training principles: progressive overload. The application aims to solve this problem by allowing the registration of workouts and routines, as well as the generation of future training sessions based on defined goals.
The application has been developed using the .NET platform, a development framework that enables the creation of robust, scalable, and maintainable applications. For the presentation layer, Blazor Server has been chosen in order to unify frontend and backend development within the same ecosystem. Blazor Server allows the creation of a declarative web interface that provides a single-page application (SPA) user experience. For data persistence, a relational SQL database has been used. The infrastructure deployment has been carried out in the cloud using Azure, with Terraform for defining and provisioning the infrastructure as code.
The system includes two main types of users, with the standard user being the most relevant. This user can create personal training routines, define exercise-related goals, and generate future workouts associated with those routines. These future workouts are displayed in a calendar together with the target weights to be achieved in each exercise. During or after training sessions, the user can register the actual weights used, allowing a comparison between expected and real performance. The system also includes an administration section where the core domain elements can be managed. The administrator user is responsible for maintaining and configuring the fundamental entities that support the future generation of routines and workouts, including the management of the exercise catalog available in the application.
The development of the application has followed an agile approach, based on successive iterations that allowed progressive and continuous improvements. This approach enabled frequent deployments. Continuous integration and continuous deployment pipelines played a key role by automating the build and deployment process, bringing the development workflow closer to common practices used in professional environments.
Among the main future improvement lines, the incorporation of specialized knowledge in the field of training stands out. Currently, the system implements a relatively simple progression algorithm based on weekly weight increases according to the user’s level, without deep personalization or a strong scientific basis. A natural evolution of the project would be to collaborate with sports professionals in order to refine the algorithm and adapt the progression in a more individualized way.
In conclusion, this project demonstrates the practical application of the knowledge acquired during the degree in a context close to real professional software development. The system has been designed using technologies widely adopted in the industry, such as .NET and cloud services. In this way, the project not only meets academic objectives but also serves as a solid foundation for real-world application development and as preparation for professional practice.
Este Proyecto de Fin de Grado consiste en el desarrollo de una aplicación web orientada a la generación y seguimiento de rutinas de entrenamiento personalizadas en función de los objetivos de los usuarios. El punto de partida del proyecto es la dificultad que tienen muchas personas para mantener una rutina de ejercicios constante, establecer objetivos claros y hacer un seguimiento de su progreso. En muchos casos, la falta de registro de los ejercicios, pesos o series realizadas a lo largo del tiempo impide aplicar correctamente uno de los principios fundamentales del entrenamiento, la sobrecarga progresiva. La aplicación pretende solucionar este problema permitiendo el registro de los entrenamientos y rutinas y la generación de entrenamientos futuros basados en los objetivos definidos.
La aplicación ha sido desarrollada utilizando la plataforma .NET, un framework de desarrollo que permite la creación de aplicaciones robustas, escalables y mantenibles. Para la capa de presentación se ha optado por Blazor Server, con el objetivo de unificar el desarrollo del frontend y el backend en un mismo ecosistema. Blazor Server permite la creación de una interfaz web declarativa que ofrece una experiencia de usuario propia de aplicación de página única (SPA). En cuanto a la persistencia de datos se ha utilizado una base de datos relacional SQL. El despliegue de la infraestructura se ha realizado en la nube mediante Azure, utilizando Terraform para la definición y aprovisionamiento de la infraestructura como código.
El sistema tiene dos tipos principales de usuarios, siendo el más relevante el usuario estándar. Este usuario puede crear sus propias rutinas de entrenamiento, definir objetivos personales relacionados con los ejercicios y generar entrenamientos futuros asociados a las rutinas. Estos entrenamientos futuros se muestran en un calendario junto con los pesos objetivo que se deberían alcanzar en cada ejercicio. Durante o después de los entrenamientos el usuario puede registrar los pesos reales utilizados, lo que permite comparar el rendimiento esperado con el realizado. El sistema también incorpora una sección de administración donde se pueden gestionar los elementos base del dominio. El usuario administrador es el encargado de mantener y configurar las entidades fundamentales del sistema que sirven de soporte para la generación futura de rutinas y entrenamientos. Entre estas funciones se encuentra el mantenimiento el catálogo de ejercicios disponibles en la aplicación.
El desarrollo de la aplicación se ha llevado a cabo siguiendo un enfoque ágil, basado en iteraciones sucesivas que han permitido integrar mejoras de forma progresiva y continua. Este enfoque ha permitido realizar despliegues frecuentes. Para ello ha sido fundamental el uso de pipelines de integración y despliegue continuo, automatizando la compilación y el despliegue de la aplicación, acercando de esta manera el proceso de desarrollo a prácticas habituales en entornos profesionales.
Entre las principales líneas de mejora previstas para el futuro destaca la incorporación de conocimiento especializado en el ámbito del entrenamiento. Actualmente el sistema implementa un algoritmo de progresión relativamente simple, basado en incrementos semanales de los pesos según el nivel del usuario, sin una personalización profunda ni una base científica avanzada. Una evolución natural del proyecto sería colaborar con profesionales del área deportiva para refinar el algoritmo y poder adaptar la progresión de forma más individualizada.
En conclusión, el proyecto demuestra la aplicación práctica de los conocimientos adquiridos durante el grado en un contexto cercano al desarrollo profesional real. El sistema ha sido diseñado utilizando tecnologías ampliamente utilizadas en el ámbito empresarial, como .NET o servicios en la nube. De este modo el proyecto no solo cumple con los objetivos académicos, sino que también sirve como una base sólida para el desarrollo de aplicaciones reales y como preparación para el ejercicio profesional.
Abstract:
This Final Degree Project consists of the development of a web application focused on the generation and tracking of personalized training routines based on user goals. The starting point of the project is the difficulty many people have in maintaining a consistent exercise routine, setting clear goals, and tracking their progress. In many cases, the lack of records of exercises, weights, or sets over time makes it difficult to correctly apply one of the fundamental training principles: progressive overload. The application aims to solve this problem by allowing the registration of workouts and routines, as well as the generation of future training sessions based on defined goals.
The application has been developed using the .NET platform, a development framework that enables the creation of robust, scalable, and maintainable applications. For the presentation layer, Blazor Server has been chosen in order to unify frontend and backend development within the same ecosystem. Blazor Server allows the creation of a declarative web interface that provides a single-page application (SPA) user experience. For data persistence, a relational SQL database has been used. The infrastructure deployment has been carried out in the cloud using Azure, with Terraform for defining and provisioning the infrastructure as code.
The system includes two main types of users, with the standard user being the most relevant. This user can create personal training routines, define exercise-related goals, and generate future workouts associated with those routines. These future workouts are displayed in a calendar together with the target weights to be achieved in each exercise. During or after training sessions, the user can register the actual weights used, allowing a comparison between expected and real performance. The system also includes an administration section where the core domain elements can be managed. The administrator user is responsible for maintaining and configuring the fundamental entities that support the future generation of routines and workouts, including the management of the exercise catalog available in the application.
The development of the application has followed an agile approach, based on successive iterations that allowed progressive and continuous improvements. This approach enabled frequent deployments. Continuous integration and continuous deployment pipelines played a key role by automating the build and deployment process, bringing the development workflow closer to common practices used in professional environments.
Among the main future improvement lines, the incorporation of specialized knowledge in the field of training stands out. Currently, the system implements a relatively simple progression algorithm based on weekly weight increases according to the user’s level, without deep personalization or a strong scientific basis. A natural evolution of the project would be to collaborate with sports professionals in order to refine the algorithm and adapt the progression in a more individualized way.
In conclusion, this project demonstrates the practical application of the knowledge acquired during the degree in a context close to real professional software development. The system has been designed using technologies widely adopted in the industry, such as .NET and cloud services. In this way, the project not only meets academic objectives but also serves as a solid foundation for real-world application development and as preparation for professional practice. Read More


