Full text
WIKITOURS, UNA RED SOCIAL DE VIAJES WIKITOURS, A TRAVEL SOCIAL NETWORK TRABAJO FIN DE GRADO CURSO 2022-2023 AUTOR DAVID GARRIDO ROJAS DIRECTOR RAMÓN GONZÁLEZ DE CAMPO RODRÍGUEZ BARBERO GRADO EN INGENIERÍA INFORMÁTICA FACULTAD DE INFORMÁTICA UNIVERSIDAD COMPLUTENSE DE MADRID
2 WIKITOURS, UNA RED SOCIAL DE VIAJES WIKITOURS, A TRAVEL SOCIAL NETWORK TRABAJO DE FIN DE GRADO EN INGENIERÍA INFORMÁTICA AUTOR DAVID GARRIDO ROJAS DIRECTOR RAMÓN GONZÁLEZ DE CAMPO RODRÍGUEZ BARBERO CONVOCATORIA: SEPTIEMBRE 2024 GRADO EN INGENIERÍA INFORMÁTICA FACULTAD DE INFORMÁTICA UNIVERSIDAD COMPLUTENSE DE MADRID 04 DE SEPTIEMBRE DE 2024
3 A mi madre, por su apoyo y porque sé la ilusión que le hubiera hecho poder leer esto.
4 Resumen Wikitours, una red social de viajes En este proyecto se ha llevado a cabo el desarrollo de una aplicación web la cual consiste en una red social en la que los usuarios pueden crear y compartir tours, excursiones o visitas realizadas en cualquier ciudad del mundo y modificarlos para que se encuentren actualizados y se pueda consultar su versión más reciente y fiable. Al tratarse de una red social los usuarios además de poder crear y compartir estas publicaciones en forma de tour, podrán comentar y dar ‘me gusta’ en estas publicaciones, seguir a otros usuarios y editar los datos de su perfil. Esta red social pretende que al viajar a cualquier lado se puedan preparar los datos de interés y puntos a visitar de la manera más sencilla y actualizada, haciendo que cualquier usuario pueda aportar sus experiencias y opiniones. Esta aplicación web ha sido desarrollada con Angular.js, Node.js y MongoDB, una base de datos NoSql. Los tours se mostrarán según su fecha, los más recientes primeros, y se podrán buscar por continente, país, ciudad o título. Palabras clave Aplicación, Red social, Usuarios, Tours, Modificarlos, Comentar, ‘Me gusta’, Seguir, Editar, Actualizada
5 Abstract WikiTours, a travel social network This project has been carried out the development of a web application that consists of a social network where users can create and share tours, excursions or visits made in any city in the world and modify them so that they are updated and the most recent and reliable version can be consulted. Being a social network, users can create and share these publications in the form of a tour, comment on and 'like' these publications, follow other users and edit their profile data. The aim of this social network is to be able to travel anywhere and to prepare the information of interest and the places to visit in the simplest and most updated way, so that each user can contribute his experiences and opinions. This web application was developed using Angular.js, Node.js and in MongoDB, a NoSql database. The tours are sorted by date, the most recent first, and can be searched by continent, country, city or title. Keywords Application, Social Network, User, Tours, Change, Comment, 'Like', Follow, Edit, Updated
6 ÍNDICE DE CONTENIDOS 1. Introducción ............................................................................................................. 1 1.1. Motivación ............................................................................................................. 1 1.2. Objetivos ................................................................................................................ 1 1.3. Competencias a desarrollar en el proyecto ............................................................ 1 1.4. Planificación .......................................................................................................... 2 1. Introduction ............................................................................................................. 4 1.1. Objectives .............................................................................................................. 4 1.2. Competences to be developed in the project ......................................................... 4 1.3. Planning ................................................................................................................. 5 2. Estado del arte ......................................................................................................... 7 2.1. Turismo, guías y rutas digitales ............................................................................. 7 2.2. Aplicaciones web de referencia ............................................................................. 8 2.2.1. viviendodeviaje - viviendodeviaje.com........................................................... 8 2.2.2. viajeroscallejeros - viajeroscallejeros.com ...................................................... 9 2.2.3. cometeelmundo - cometeelmundo.net............................................................. 9 2.2.4. diariodeunmentiroso - diariodeunmentiroso.com ......................................... 10 3. Desarrollo de la aplicación ................................................................................... 11 3.1. Tecnologías empleadas en el proyecto ................................................................ 11 3.1.1. Entorno de desarrollo .................................................................................... 11 3.1.2. MEAN Stack ................................................................................................. 11 3.2. Bases de datos de la aplicación ............................................................................ 13 3.2.1. Colecciones y esquema de los documentos................................................... 13 3.3. Diseño de la aplicación ........................................................................................ 16 4. Funcionalidades de la aplicación ......................................................................... 18
7 4.1. Inicio de sesión .................................................................................................... 18 4.2. Registro ................................................................................................................ 19 4.3. Perfil ..................................................................................................................... 19 4.3.1. Perfil propio................................................................................................... 20 4.3.2. Perfil de otro usuario ..................................................................................... 20 4.3.3. Perfil con tours .............................................................................................. 21 4.3.4. Perfil con seguidores ..................................................................................... 21 4.3.5. Perfil con seguidos ........................................................................................ 22 4.4. Modificar datos de perfil ...................................................................................... 22 4.5. Crear publicación ................................................................................................. 23 4.6. Publicación ........................................................................................................... 23 4.7. Modificar publicación .......................................................................................... 25 4.8. Publicaciones ....................................................................................................... 25 4.9. Timeline ............................................................................................................... 26 4.10. Búsqueda de usuarios ......................................................................................... 26 4.11. Cerrar Sesión ...................................................................................................... 26 5. Especificación de requisitos .................................................................................. 27 5.1. Actores ................................................................................................................. 27 5.2. Casos de uso ......................................................................................................... 27 5.2.1. Gestión de usuario ......................................................................................... 27 5.2.2. Publicaciones ................................................................................................. 32 6. Conclusiones y trabajo futuro .............................................................................. 38 6.1. Conclusiones ........................................................................................................ 38 6.2. Trabajo futuro ...................................................................................................... 38 6. Conclusions and future work ............................................................................... 39 6.1. Conclusions .......................................................................................................... 39 6.2. Future Work ......................................................................................................... 39
8
9 ÍNDICE DE FIGURAS Figura 1 - 2.2.1. viviendodeviaje 8 Figura 2 - 2.2.2. viajeroscallejeros 9 Figura 3 - 2.2.3. cometeelmundo 9 Figura 4 - 2.2.4 diariodeunmentiroso 10 Figura 5 -Esquema Documento Usuario (1) 13 Figura 6 - Esquema Documento Usuario (2) 14 Figura 7 - Esquema Documento Usuario(3) 14 Figura 8 - Esquema Documento Publicación 15 Figura 9 - Esquema Documento Etapa 16 Figura 10 - Esquema Documento Comentario 16 Figura 11 - Vista Inicio de sesión 18 Figura 12 – Vista Registro 19 Figura 13 – Vista Perfil Propio 20 Figura 14 – Vista Perfil de otro usuario 20 Figura 15 - Vista Perfil con tours 21 Figura 16 - Vista Perfil con seguidores 21 Figura 17 - Vista Perfil con seguidos 22 Figura 18 - Vista Modificar Datos Perfil 22 Figura 19 - Vista Crear Publicación 23 Figura 20 - Vista Publicación (1) 24 Figura 21 - Vista Publicación (2) 24 Figura 22 - Vista Modificar Publicación 25 Figura 23 - Vista Publicaciones 25 Figura 24 – Timeline 26 Figura 25 - Vista Búsqueda Usuario 26 Figura 26 - Diagrama Usuario 27 Figura 27 - Diagrama Publicaciones 32
6 • Phase 9: Design of the views. Start: 07/14/2024 End: 07/29/2024 • Phase 10: Memory. Start: 07/30/2024 End: 04/09/2024
7 2. Estado del arte En el contexto del desarrollo del proyecto, es crucial comprender el panorama actual de las aplicaciones web que facilitan la planificación de viajes y ofrecen guías digitales a los usuarios. Este estado del arte abarca las tendencias y herramientas más relevantes en este ámbito, destacando cómo las tecnologías actuales están modelando la experiencia de los viajeros. 2.1. Turismo, guías y rutas digitales En la actualidad casi todo el mundo planea sus viajes a través de internet, desde casa reservan los hoteles, los vuelos, los tickets a los lugares de interés y planifican lo que van a hacer durante cada día del viaje. Existen muchas aplicaciones y webs para reservar hoteles, comparar y comprar vuelos y para conseguir entradas a los lugares a visitar. También existen webs para poder planificar los itinerarios diarios con gran facilidad. Sitios web y aplicaciones como Booking.com, Airbnb, Expedia, Skyscanner, y Kayak han revolucionado la forma en que las personas encuentran y reservan alojamiento y vuelos. Estas plataformas no solo permiten comparar precios, sino que también ofrecen opciones de personalización basadas en las preferencias del usuario, como ubicación, servicios y tipos de alojamiento. Los usuarios pueden filtrar y elegir entre una amplia gama de opciones según su presupuesto y necesidades específicas. La digitalización también ha facilitado la compra de entradas para diversas atracciones turísticas. Plataformas como GetYourGuide y Viator permiten a los viajeros adquirir tiques para museos, tours guiados, parques temáticos y otros lugares de interés, a menudo con la opción de evitar las largas filas con entradas prioritarias. Estas aplicaciones suelen ofrecer recomendaciones adicionales sobre actividades complementarias en la misma área, lo que ayuda a los viajeros a maximizar su tiempo y experiencia. Además de las reservas, existen plataformas dedicadas específicamente a la planificación de itinerarios y rutas de viaje. Estas plataformas permiten a los viajeros planificar sus días de manera eficiente, con información sobre horarios, distancias y la mejor secuencia para visitar los sitios turísticos. En resumen, el uso de internet ha transformado la forma en que los viajeros planifican y experimentan sus viajes. La disponibilidad de herramientas en línea para reservar
8 servicios y planificar itinerarios ha hecho que la organización de viajes sea más accesible, eficiente y personalizada, permitiendo a los viajeros disfrutar de experiencias optimizadas y adaptadas a sus preferencias individuales. 2.2. Aplicaciones web de referencia Las aplicaciones web existentes las cuales marcan las necesidades y posibles mejoras sobre estas del proyecto son las siguientes: viviendodeviaje.com, viajeroscallejeros.com, cometeelmundo.net y diariodeunmentiroso.com. Las cuatro webs coinciden en que son blogs que aportan guías, rutas y consejos para viajar por el mundo. Por tanto, si el dueño del blog no modifica estas publicaciones si cambia algún dato, se quedará siempre desactualizada. En cada publicación puede comentar cualquier persona sin necesidad de registrarse. 2.2.1. viviendodeviaje - viviendodeviaje.com Figura 1 - 2.2.1. viviendodeviaje
9 2.2.2. viajeroscallejeros - viajeroscallejeros.com Figura 2 - 2.2.2. viajeroscallejeros 2.2.3. cometeelmundo - cometeelmundo.net Figura 3 - 2.2.3. cometeelmundo
10 2.2.4. diariodeunmentiroso - diariodeunmentiroso.com En este caso las publicaciones no tienen la opción de añadir comentarios Figura 4 - 2.2.4 diariodeunmentiroso
11 3. Desarrollo de la aplicación 3.1. Tecnologías empleadas en el proyecto 3.1.1. Entorno de desarrollo 3.1.1.1. Visual Studio Code Visual Studio Code (VSC) es un entorno de desarrollo integrado ligero y potente que ha desempeñado un papel crucial en el desarrollo de la aplicación web. Su capacidad para soportar una amplia gama de lenguajes de programación y herramientas de desarrollo lo convierte en una opción ideal para cualquier proyecto web. VSC ha sido usado en varias etapas del proceso de desarrollo, desde la escritura y organización del código hasta su depuración. 3.1.1.2. GitHub GitHub es una plataforma de desarrollo colaborativo basada en Git, que permite a desarrolladores y equipos gestionar, almacenar y colaborar en proyectos de software. Permite trabajar con versiones y poder restaurarlas si algo sale mal, especialmente esta ha sido la característica por la que ha sido utilizada. 3.1.1.3. Studio3T Studio 3T proporciona una interfaz gráfica de usuario y un entorno de desarrollo integrado para acceder y modificar bases de datos MongoDB y sus documentos. Con Studio 3T, tienes una herramienta intuitiva y fácil de usar que te permite aprovechar al máximo las capacidades de gestión de documentos de MongoDB. Ha sido utilizada para la gestión de la BBDD y comprobaciones con la creación de colecciones y documentos. 3.1.2. MEAN Stack En este proyecto ha sido utilizado el MEAN Stack (acrónimo de MongoDB, Express.js, AngularJS y Node.js). Este es un conjunto de tecnologías de software utilizadas para el desarrollo de aplicaciones y páginas web dinámicas, donde cada componente está basado en el lenguaje de programación JavaScript. Esto permite una integración fluida y eficiente, consiguiendo que todo el sistema funcione como una plataforma autosuficiente y coherente.
12 3.1.2.4. MongoDB MongoDB es un sistema de gestión de bases de datos NoSQL de tipo documental, lo que significa que, a diferencia de las bases de datos relacionales que almacenan información en tablas, MongoDB almacena los datos en documentos. Estos documentos están formateados en BSON, una representación binaria de JSON, lo que permite una estructura de datos más flexible y escalable. La razón para elegir MongoDB en este proyecto fue su capacidad de escalabilidad horizontal, una característica crucial para manejar el crecimiento y la expansión de aplicaciones como una red social, donde es esencial gestionar grandes volúmenes de datos de manera eficiente. 3.1.2.5. Express.js Es un módulo de Node.js que se utiliza principalmente en el desarrollo del back-end de aplicaciones web. Al estar construido sobre Node.js, Express.js permite manejar de manera eficiente las solicitudes y respuestas HTTP en una aplicación web, proporcionando métodos y utilidades que simplifican el desarrollo del servidor. Este framework es fundamental para gestionar la lógica del servidor, como el enrutamiento de solicitudes y la implementación de middleware 3.1.2.6. Angular.js Angular.js es un framework de JavaScript desarrollado por Google que se utiliza en el desarrollo del front-end de aplicaciones web. Específicamente, Angular.js sigue el patrón de diseño MVC (Modelo-Vista-Controlador), aunque en la práctica implementa un patrón MVVM (Modelo-Vista-Modelo de Vista), lo que permite una separación clara entre la lógica de la aplicación y la interfaz de usuario. Esta separación facilita el mantenimiento del código y la escalabilidad del proyecto. Angular.js fue elegido para este proyecto debido a su popularidad en la industria y su capacidad para crear interfaces de usuario dinámicas y receptivas. Además de por mi experiencia previa con Angular.js durante mis prácticas. 3.1.2.7. Node.js Node.js es la base de todo el conjunto del MEAN Stack y es el encargado de la capa del servidor. Node.js permite la utilización de una amplia variedad de módulos, tanto propios como de terceros, que extienden las funcionalidades del servidor. Estos módulos incluyen middleware que facilita el desarrollo de aplicaciones web complejas, permitiendo la implementación de funcionalidades avanzadas de manera sencilla y modular.
13 3.2. Bases de datos de la aplicación En MongoDB, los datos se organizan en bases de datos, que actúan como contenedores para colecciones. Cada colección agrupa documentos relacionados que comparten un propósito o funcionalidad específica dentro de la aplicación. 3.2.1. Colecciones y esquema de los documentos En el desarrollo de la aplicación, se crearon dos colecciones para gestionar diferentes tipos de información. Por ejemplo, la colección usuarios almacena documentos que contienen información sobre cada usuario registrado, como nombre, correo electrónico y contraseñas cifradas. Otra colección, publicaciones, almacena documentos que representan las publicaciones realizadas por los usuarios, cada una con campos como título, contenido, fecha de creación y referencia al usuario que la creó. Esta estructura de datos permite relacionar fácilmente a los usuarios con sus publicaciones sin necesidad de una estricta normalización, como sería necesario en una base de datos relacional. 3.2.1.8. Usuarios La colección Usuario es la que se usa para almacenar los datos de los usuarios, sus seguidos y sus seguidores. Los documentos de esta colección tienen el siguiente esquema: Figura 5 -Esquema Documento Usuario (1)
14 Figura 6 - Esquema Documento Usuario (2) Donde en los valores seguidos y seguidores se almacena un conjunto de documentos con el siguiente esquema que vemos en la Figura 7: Figura 7 - Esquema Documento Usuario(3)
15 3.2.1.9. Publicaciones La colección Publicaciones almacena los datos de las publicaciones, los comentarios de las publicaciones y algunos datos de los usuarios que han creado la publicación. Los documentos de esta colección tienen el siguiente esquema: Figura 8 - Esquema Documento Publicación
22 4.3.5. Perfil con seguidos Si se ha pulsado en los seguidos del usuario, donde se encontraba la lista de las publicaciones se dispondrá de la lista de los usuarios que sigue el usuario del perfil. Figura 17 - Vista Perfil con seguidos 4.4. Modificar datos de perfil Como se puede ver en la Figura 13, en el perfil del propio usuario de la sesión hay un botón que dirige a esta página en la que se pueden modificar los datos del perfil. Se pueden observar 5 campos. Tres de estos, con los datos actuales en ellos, son para modificar el nombre, los apellidos y el correo electrónico. Los otros dos campos son para modificar la contraseña y para introducir la contraseña actual, sin la cual no se pueden modificar los datos. También consta de un selector de archivos para cargar imágenes y así poder añadir, modificar o eliminar la foto de perfil. Figura 18 - Vista Modificar Datos Perfil
23 4.5. Crear publicación Para crear una publicación será necesario introducir el titulo de la publicación, el continente, el país, la ciudad, el titulo de cada etapa y su texto correspondiente en los campos correspondientes. Con los botones para añadir y quitar etapas se controlan las etapas que tendrá la publicación. Si no se encuentran todos los datos completos y todas las etapas completas no se podrá crear la publicación. Figura 19 - Vista Crear Publicación 4.6. Publicación Es la pagina que muestra la publicación y en la que se ve el título, la foto de portada (si la tiene), el nombre de usuario del creador y sus etapas, de las cuales se muestra su título, el texto de la propia etapa y el nombre de usuario del que ha creado o modificado la etapa. Se puede ‘dar me gusta’ y ‘quitar’ una vez ‘dado’, al lado del botón para hacerlo aparece el número de ‘me gustas’. También está el botón de modificar etapas, para poder modificar las etapas y actualizar la información de la publicación. Debajo del post se encuentra un campo para añadir comentarios y la lista de todos los comentarios de los usuarios a esta publicación.
24 Figura 20 - Vista Publicación (1) Figura 21 - Vista Publicación (2)
25 4.7. Modificar publicación La función característica de la aplicación web es la de modificar las etapas de las publicaciones. Para realizarlo se muestran los títulos de las etapas y el texto, este último en un campo en el cual se puede editar o sobrescribir y solo se modificará la etapa si este campo sufre algún cambio. Figura 22 - Vista Modificar Publicación 4.8. Publicaciones Aparecen todas las publicaciones en orden de creación (las más recientes en primer lugar), el botón para crear una nueva publicación y un buscador para filtrar las publicaciones por continente, país, ciudad o título y encontrar la deseada. Figura 23 - Vista Publicaciones
26 4.9. Timeline Aparecen las ultimas 200 publicaciones de los usuarios a los que sigues según su orden de creación (primero las más recientes). Figura 24 – Timeline 4.10. Búsqueda de usuarios Mediante un buscador se filtran los usuarios por nombre de usuario para poder encontrar al usuario deseado. Figura 25 - Vista Búsqueda Usuario 4.11. Cerrar Sesión En la cabecera de la aplicación se encuentra el botón de cerrar sesión, al pulsarlo se cierra la sesión y se redirige a la página de inicio de sesión.
27 5. Especificación de requisitos 5.1. Actores Los actores que intervienen en la aplicación son los siguientes: • Usuario sin sesión iniciada: Estos usuarios solo podrán acceder a la pagina de inicio de sesión o de registro. Dentro de estos usuarios pueden existir dos diferentes: - Usuario no registrado: estos usuarios no podrán iniciar sesión hasta que se registren. - Usuario registrado: estos podrán iniciar sesión si introducen correctamente sus credenciales de acceso. • Usuario con sesión iniciada: Este usuario podrá acceder a todas las funcionalidades de la aplicación web, excepto a las de registro e inicio de sesión. 5.2. Casos de uso Los casos de uso de la aplicación se van a dividir en dos módulos según si están relacionados con la gestión del usuario y de su cuenta o con las publicaciones. Veremos los más relevantes. 5.2.1. Gestión de usuario A continuación, se muestran las principales funciones relacionadas con el usuario que pueden realizar los actores vistos en el apartado 5.1 Figura 26 - Diagrama Usuario
28 Caso de Uso 1. Iniciar Sesión Caso de Uso (1): Iniciar sesión Objetivo Permite el inicio de sesión en la aplicación web. Actores Usuario registrado y sin sesión iniciada Precondición • El usuario esta registrado en la aplicación • El usuario ha entrado en la pagina, pero no ha iniciado sesión • La aplicación funciona correctamente y se ha establecido conexión con la BDDD Secuencia 1. Se solicita al usuario el nombre de usuario y la contraseña 2. El usuario introduce los datos solicitados 3. Se comprueban que los datos son validos 4. Se comprueba con la BBDD que existe el usuario y que la contraseña es correcta 5. En caso de que todo sea correcto, se inicia la sesión 6. Se guarda la variable de sesión y su token de autenticación Postcondición El usuario ha iniciado sesión y puede acceder a todas las funcionalidades de la aplicación. Secuencia alternativa 5. En caso de error, según el error que haya ocurrido se muestra su mensaje de error. Tabla 1 - Caso de Uso 1. Iniciar Sesión
29 Caso de Uso 2. Registrarse Caso de Uso (2): Registrarse Objetivo Permite el registro en la aplicación web. Actores Usuario no registrado y sin sesión iniciada Precondición • El usuario no esta registrado en la aplicación • El usuario ha entrado en la pagina, pero no ha iniciado sesión • La aplicación funciona correctamente y se ha establecido conexión con la BDDD Secuencia 1. Se solicita al usuario los datos de registro 2. El usuario introduce los datos solicitados 3. Se comprueban que los datos son validos 4. Se comprueba con la BBDD que no existe el nombre de usuario ni el correo electrónico introducido. 5. En caso de que todo sea correcto, se registra al usuario y se inicia la sesión 6. Se guarda la variable de sesión y su token de autenticación Postcondición El usuario se ha registrado, ha iniciado sesión y puede acceder a todas las funcionalidades de la aplicación. Secuencia alternativa 5. En caso de error, según el error que haya ocurrido se muestra su mensaje de error Tabla 2 - Caso de Uso 2. Registrarse
30 Caso de Uso 3. Seguir Usuario Caso de Uso (3): Seguir usuario Objetivo Permite seguir a otro usuario de la aplicación. Actores Usuario con sesión iniciada Precondición • El usuario esta registrado en la aplicación • El usuario ha iniciado sesión • La aplicación funciona correctamente y se ha establecido conexión con la BDDD Secuencia 1. El usuario accede al perfil de otro usuario 2. El usuario A aprieta el botón de seguir al usuario B 3. Se añade al documento del usuario B el nuevo seguidor y al documento del usuario A el nuevo seguido 4. Se suma uno al numero de seguidores del usuario B y se suma uno al numero de seguidos del usuario A 5. Se recarga la pagina para ver los contadores actualizados y se cambia el estado del botón a ‘Dejar de seguir’ Postcondición El usuario A ha seguido al usuario B y ahora le aparecerán las ultimas publicaciones del usuario B en su timeline. Tabla 3 - Caso de Uso 3. Seguir Usuario
31 Caso de Uso 4. Modificar datos de perfil Caso de Uso (4): Modificar datos de perfil Objetivo Permite modificar los datos del usuario de la sesión. Actores Usuario con sesión iniciada Precondición • El usuario esta registrado en la aplicación • El usuario ha iniciado sesión • La aplicación funciona correctamente y se ha establecido conexión con la BDDD Secuencia 1. El usuario accede a su perfil. 2. El usuario aprieta el botón de ‘Editar perfil’ 3. Se le dirige a la pagina para modificar los datos del perfil 4. Se solicita al usuario el nombre, apellidos, correo electrónico y contraseña a modificar. Aparte de la contraseña actual 5. El usuario introduce los datos que quiera modificar y su contraseña actual 6. Se comprueba que los datos son validos 7. Se comprueba con la BBDD que la contraseña es correcta 8. Si todo es correcto, se actualiza el documento del usuario con los datos modificados 9. Se redirige al usuario a la página de su perfil Postcondición Los datos del usuario han sido modificados. Secuencia alternativa 8.En caso de error, según el error que haya ocurrido se muestra su mensaje de error. Tabla 4 - Caso de Uso 4. Modificar datos de perfil
38 6. Conclusiones y trabajo futuro 6.1. Conclusiones Se ha conseguido desarrollar una aplicación web con características de red social y cumpliendo con los objetivos propuestos, fácil de usar, con un diseño responsive y usando tecnologías actuales y universales. WikiTour hará que cualquier persona pueda planificar rutas por las ciudades a las que vaya a viajar sin preocuparse de si la información que esta consultando esta desactualizada, podrá ver las rutas que han publicado sus amigos y disfrutar de los consejos de los otros viajeros. Realizando este proyecto he podido mejorar y aprender muchos aspectos del desarrollo web. Ha supuesto un reto al usar tecnologías de las cuales no tenía tantos conocimientos adquiridos como otras que he visto en el grado de Ingeniería Informática, pero así he podido aprender de técnicas del panorama actual del desarrollo web. 6.2. Trabajo futuro Aunque se ha conseguido desarrollar la mayor parte de los objetivos propuestos antes de empezar el proyecto, encontramos unas nuevas funcionalidades que mejorarían la aplicación web en el futuro si se llegasen a desarrollar: • Mensajería en tiempo real. Desarrollar un chat en el que poder enviar mensajes con la gente que sigues y que lleguen en tiempo real. Una característica que mejoraría esta aplicación web y la haría una red social definitiva. • Notificaciones en tiempo real. Enviar notificaciones cuando haya un nuevo comentario o ‘me gusta’ en alguna publicación, cuando llegue un mensaje, tengas un nuevo seguidor… WikiTour tiene un gran potencial, el cual es posible aplicar sobre lo ya desarrollado y, de esta manera, hacer que esta aplicación llegase a un nivel superior.
39 6. Conclusions and future work 6.1. Conclusions It has been possible to develop a web application with social network features and fulfilling the proposed objectives, easy to use, with a responsive design and using current and universal technologies. WikiTour will allow anyone to plan routes through the cities to which they are going to travel without worrying about if the information they are consulting is outdated, they will be able to see the routes that their friends have published and enjoy the advice of other travelers. Doing this project I have been able to improve and learn many aspects of web development. It has been a challenge to use technologies of which I had not acquired as much knowledge as others that I have seen in the degree of Computer Engineering, but so I have been able to learn from techniques of the current landscape of web development. 6.2. Future Work Although most of the objectives proposed before starting the project have been achieved, we found some new functionalities that would improve the web application in the future if they were to be developed: • Real-time chat. Develop a chat in which you can send messages to the people you follow, and they arrive in real time. A feature that would enhance this web application and make it the ultimate social network. • Real time notifications. Send notifications when there is a new comment or 'like' on a publication, when a message arrives, when you have a new follower... WikiTour has a great potential, which is possible to apply on top of what has already been developed and, in this way, make this application reach a higher level.
40 Bibliografía Angular.js. Overview ()https://angular.dev/overview MEAN Stack. https://www.ibm.com/es-es/topics/mean-stack MEAN Stack. https://es.wikipedia.org/wiki/MEAN MongoDB.¿Qué es MongoDB? () https://www.mongodb.com/es/company/what-is-mongodb Node.js. About ()https://nodejs.org/en/about Express.js ()https://expressjs.com/es/ Visual Studio Code. Docs ()https://code.visualstudio.com/docs GitHub. Acerca de GitHub y Git ()https://docs.github.com/es/getstarted/start-your-journey/about-github-and-git Studio 3T. ()https://studio3t.com/es/
41 El código de la aplicación web se encuentra en el siguiente repositorio: https://github.com/DavidGarridoUCM/WikiTour