[en] In recent years, there has been a significant boom in the use and creation of sensors designed to measure individuals performance in various physical activities, mainly due to the decreasing costs of technology. In most sports, a smartwatch is usually sufficient to measure all the information one can think of. However, in the case of cycling, sensors are distributed between the athlete's body and their bicycle: from heart rate sensors on the chest to cadence and power sensors on the bike's crankset. All these sensors are synchronized in a small computer known as a "cycle computer", which itself houses other sensors such as temperature or geographical position. The main functionality of this computer is its ability to synchronize all the sensors and add the temporal dimension to their measurements, allowing for later analysis. The objective of this undergraduate thesis is to build a web application that enables analysis of cycling activities. To achieve this, it will be necessary to understand the protocol through which the data is stored and, using PostgreSQL with the PostGIS geographic extension, design a database that adequately stores the temporal and spatial dimensions. Once the data has been stored, a web application will be developed using the Django development framework, serving the data on a web page that displays graphs and various metrics necessary for the proper analysis of a sports activity. For project management, an iterative and incremental methodology will be employed. In each iteration, the progress made in the previous one will be evaluated, and tasks that can be performed in the next iteration will be considered. The number of tasks completed will be adjusted based on the complexity of the task and workload. Using this project management methodology will ensure that each iteration only includes tasks that truly add value to the end user.

[es] Durante los últimos años ha habido un gran auge en el uso y creación de sensores destinados a medir el rendimiento de las personas en diferentes actividades físicas, principalmente a causa del abaratamiento de la tecnología. En la mayoría de deportes, un reloj inteligente suele ser suficiente para medir toda la información que a uno se le pueda ocurrir; no obstante, en el caso del ciclismo, los sensores se encuentran repartidos entre el propio cuerpo del deportista y su bicicleta: desde sensores de frecuencia cardíaca en el pecho, hasta sensores de cadencia y potencia en el plato de la bicicleta. Todos estos sensores se sincronizan en un pequeño ordenador conocido como "ciclocomputador", que en sí mismo alberga otros sensores (como bien pudieran ser la temperatura o la posición geográfica). La principal funcionalidad de este computador es la capacidad de sincronizar todos los sensores y añadir la dimensión temporal a sus mediciones de forma que posteriormente se puedan analizar. El objetivo de este trabajo de fin de grado será construir una aplicación web que permita realizar un análisis de las actividades deportivas de ciclismo. Para ello, será necesario comprender el protocolo a través del cual se almacenan los datos y, empleando PostgreSQL con la extensión geográfica PostGIS, diseñar una base de datos acorde a estas características que almacene de forma adecuada las dimensiones temporal y espacial. Una vez que los datos hayan sido almacenados, se construirá una aplicación web utilizando el framework de desarrollo Django, que los sirva en una página web mostrando en ella gráficos y las distintas métricas que son necesarias para el correcto análisis de una actividad deportiva. Para la gestión de proyectos, se utilizará una metodología iterativa e incremental. En cada iteración se estudiará el progreso realizado en la anterior y se contemplará qué tareas se podrían realizar en la siguiente; el número de tareas que se pueden ir completando se adaptará en función de la complejidad de la tarea y de la carga de trabajo. Utilizar esta metodología de gestión del proyecto permitirá que en cada iteración solo se realicen aquellas tareas que realmente aportan valor al usuario final.