[en] This thesis aims to develop a web application to manage and visualize events, which allows users to create and find events happening at a specific place in a simple way. The users have a wide range of features available, such as filtering events or viewing them using an interactive map, which enhances the experience and improves the event discovery. They can also save events into their profiles or get email notifications by subscribing to events and categories or following other users. The administrators can manage users, events and categories using a separate section of the application, so that the application data remains organized and supervised. They can approve or reject events created by users, create or remove categories, suspend or mark users as verified, designate new administrators, etc. The application features a client-server architecture, which allows to distribute the workload between two different systems. The web server was built with Spring Boot, which provides a robust foundation based on the Java language. PostgreSQL and PostGIS was also used to manage the application data and provide the database with spatial capabilities. The web client was built with VueJS, Bootstrap and Leaflet, which allow to create an attractive and responsive user interface and display maps with the events. The development was done following an iterative and incremental methodology, dividing the process into several iterations that were reviewed before proceeding with the next one. In this way, consistent improvement was ensured by refining the functionalities based on the previous experience gained during the development process.

[es] El objetivo de este trabajo de fin de grado es desarrollar una aplicación web para gestionar y visualizar eventos, que permita a los usuarios crear y encontrar eventos que tengan lugar en un lugar concreto de forma sencilla. Los usuarios disponen de una amplia gama de funciones, como filtrar eventos o visualizarlos mediante un mapa interactivo, lo que mejora la experiencia y el descubrimiento de eventos. También pueden guardar eventos en sus perfiles o recibir notificaciones por correo electrónico suscribiéndose a eventos y categorías o siguiendo a otros usuarios. Los administradores pueden gestionar usuarios, eventos y categorías utilizando una sección separada de la aplicación, para que los datos de la aplicación permanezcan organizados y supervisados. Pueden aprobar o rechazar eventos creados por usuarios, crear o eliminar categorías, suspender o marcar usuarios como verificados, designar nuevos administradores, etc. La aplicación cuenta con una arquitectura cliente-servidor, que permite distribuir la carga de trabajo entre dos sistemas diferentes. El servidor web se construyó con Spring Boot, que proporciona una base robusta basada en el lenguaje Java. También se utilizó PostgreSQL y PostGIS para gestionar los datos de la aplicación y dotar a la base de datos de capacidades espaciales. El cliente web se construyó con VueJS, Bootstrap y Leaflet, que permiten crear una interfaz de usuario atractiva y responsive, y mostrar mapas con los eventos. El desarrollo se realizó siguiendo una metodología iterativa e incremental, dividiendo el proceso en varias iteraciones que fueron revisadas antes de proceder a la siguiente. De este modo, se garantizó una mejora constante perfeccionando las funcionalidades a partir de la experiencia previa adquirida durante el proceso de desarrollo.