[en] Nowadays, the growth of the web application market it's obvious, however, it remains difficult to find a web application that allows you to easily book sport venues or organise sport activities. On the one hand, as a consequence of the Covid-19 pandemic or future pandemics, there is a large number of people who prefer not to use sports venues where the risk of infection may be higher because they are open to the public, and they could prefer booking those sport venues in order to attend just with a small circle of people, avoiding contact with the virus. Therefore, the main objective of this end-of-degree project is to provide a web application that will allow people to easily book controlled and scalable sports venues, which in turn allows organizing sports activities, such as matches or tournaments and keep a historic of these. In addition, it will serve both sports clubs and municipalities that want to easily manage and offer their sports venues, in this way the use of public and private courts could be managed in a common and simple way, avoiding any capacity problem. Regarding the development of the application, three main layers are identified in the software, which use different technologies and tools. For the data access layer, the MySQL database management system has been used. In the model layer (backend), where the business logic is carried out, the Spring framework based on Java has been used, which facilitates communication with the DBMS and control of the authentication of different user roles using tokens. Finally, the user interface layer or frontend uses React, a JavaScript-based library that allows you to easily design responsive web user interfaces. To carry out the development of the project, it has been decided to use the agile SCRUM methodology, in this way the work will be carried out in an orderly manner in sprints of a similar size that will include the development of certain functionalities and the tests of the same, resulting in stable code units that facilitate the work in the following iterations.

[es] En la actualidad, es evidente el aumento del número de aplicaciones web que facilitan todo tipo de gestiones que solían ser realizadas manualmente, sin embargo, sigue siendo complejo encontrar una aplicación web que permita reservar con facilidad recintos deportivos u organizar actividades en los mismos. Por otra parte, como consecuencia de la pandemia por la Covid-19 o futuras pandemias, existe un gran número de personas que prefiere no hacer uso de recintos deportivos abiertos al público donde exista un mayor riesgo de contagio, que a su vez, podrían preferir reservar un recinto deportivo al que acudir con su círculo cercano, evitando una sobrexposición al virus. Por lo tanto, el objetivo principal de este trabajo de fin de grado, es proporcionar un medio con el que poder reservar de forma sencilla recintos deportivos controlados y escalables, que permita a su vez organizar actividades deportivas, como podrían ser partidos, torneos o entrenamientos y llevar un histórico de estos. Además, dará servicio tanto a clubes deportivos como a ayuntamientos que quieran gestionar y reservar fácilmente sus recintos deportivos, de este modo se podría gestionar el uso de las pistas públicas y privadas de una forma común y sencilla evitando cualquier problema de aforo. En cuanto al desarrollo de la aplicación, se identifican tres capas principales en el software las cuales utilizan diferentes tecnologías y herramientas. Para la capa de acceso a datos se ha empleado el sistema gestor de bases de datos MySQL. En la capa modelo (backend), donde se lleva a cabo la lógica de negocio, se ha hecho uso del framework Spring basado en Java, el cual facilita la comunicación con el SGBD y el control de la autenticación de los diferentes roles de usuarios mediante tokens. Por último, la capa de interfaz de usuario o frontend emplea React, una biblioteca basada en JavaScript que permite diseñar interfaces de usuario web responsive de forma sencilla. Para llevar a cabo el desarrollo del proyecto, se ha decidido usar la metodología ágil SCRUM, de este modo se llevará a cabo el trabajo de forma ordenada en sprints de un tamaño similar que incluirán el desarrollo de ciertas funcionalidades y las pruebas de las mismas dando como resultado unidades de código estables que facilitan el trabajo en las siguientes iteraciones.