[en] Tourism is one of the most important sectors in today's society, with millions of people travelling from one place to another by various means of transport, such as planes or ships. Tourists want to take away unsurpassed experiences from their trips, visiting the best places in the best possible way, always adjusting to their preferences and limitations. In other words, they want to have the best possible tourist itinerary. The elaboration of these itineraries can cause problems, due to the great bombardment of information, offers and promotions on the internet. As a result, there is little likelihood that a full assessment will be made. To circumvent this problem, tourists often turn to physical companies such as travel agencies or use software applications to prepare their itineraries. The aim of this final degree project is to solve the Tourist Trip Design Problem (TTDP) by means of a recommendation system that, taking into account different criteria, is capable of generating a personalised tourist itinerary, with a set of visits ordered in time to different points of interest. This work is based on a full stack application that has a tourist itinerary generator system that deals with the problem of designing tourist routes, in order to generate personalised tourist itineraries. This application has a web interface where points of interest, tourists and their travel preferences can be registered. For each set of preferences about a trip, the system, through a recommendation algorithm based on a heuristic technique, is able to create personalised itineraries taking into account various criteria. The application has different parts, including the front-end, which has the necessary views and components to make visualisation possible. And on the other hand, the back-end, which is based on a REST API that has different endpoints with which HTTP requests are managed so that the data flow can take place. Once the application has been completed, numerous experiments have been carried out in which different scenarios have been considered. In this way, we were able to check that the application works as expected.

[es] El turismo es de los sectores más importantes de la sociedad actual, siendo millones el número de personas que se desplazan de un lugar a otro en los distintos medios de transporte, como aviones o barcos. Los turistas quieren llevarse de su viajes experiencias insuperables, visitando los mejores lugares de la mejor manera posible, siempre ajustándose a sus preferencias y limitaciones. Es decir, quieren tener el mejor itinerario turístico posible. La elaboración de estos itinerarios puede causar problemas, debido al gran bombardeo de información, ofertas y promociones que hay en internet. Por lo que hay poca probabilidad de que se realice una valoración completa de esta. Para evadir este problema, los turistas suelen acudir a empresas físicas como agencias de viajes o utilizar aplicaciones informáticas que preparen sus itinerarios. Con este trabajo de fin de grado se quiere resolver el Tourist Trip Design Problem (TTDP) a través de un sistema de recomendación que, valorando distintos criterios sea capaz de generar un itinerario turístico personalizado, con un conjunto de visitas ordenadas en el tiempo a distintos puntos de interés. Este trabajo se basa en una aplicación full stack que dispone de un sistema generador de itinerarios turísticos que trata el problema de diseño de rutas turísticas, con el fin de generar itinerarios turísticos personalizados. En esta aplicación se dispone de una interfaz web donde se pueden registrar puntos de interés, turistas y sus preferencias de viajes. Para cada conjunto de preferencias acerca de un viaje, el sistema a través de un algoritmo de recomendación basado en una técnica heurística, es capaz de crear itinerarios personalizados teniendo en cuenta diversos criterios. El aplicativo cuenta con distintas partes, entre ellas destacan el front-end, que cuenta con las vistas y componentes necesarios para que la visualización sea posible. Y por otro lado, destaca el back-end, el cual se basa en una API REST que cuenta con distintos endpoints con los que se gestionan las peticiones HTTP para que se pueda dar el flujo de datos. Una vez terminada la aplicación, han sido realizadas numerosas experimentaciones en las que se han contemplado diferentes escenarios para, de esta manera, poder comprobar que el aplicativo funciona como se espera.