scieee AI-readable full text Open interactive document viewer

Desarrollo de una aplicación de gestión de eventos académicos

Sánchez Cogolludo, Mario

Abstract

El objetivo de este trabajo es la creación de una aplicación web para que investigadores de las universidades puedan gestionar los eventos en los que participarán y las revistas académicas en las que realizaran publicaciones y, además podrán crear grupos para poder comentar sobre distintos temas en los que estén interesados y así intercambiar información de valor para los miembros de un mismo grupo. Los usuarios que no estén registrados en la web pueden realizar búsquedas para ver la información de los eventos y revistas añadidas por los usuarios, además de poder buscar a los usuarios que se encuentren registrados. Por otro lado los usuarios registrados podrán realizar las búsquedas mencionadas anteriormente, y además podrá realizar todos los procesos de gestión de su agenda, tanto en la creación para añadir eventos y revistas nuevas a su perfil, crear nuevos grupos en los que puede añadir nuevos miembros y mensajes, como para la edición y borrado de los elementos que pertenezcan a la agenda del usuario.

Full text

DESARROLLO DE UNA APLICACIÓN DE GESTION DE EVENTOS ACADÉMICOS TRABAJO FIN DE GRADO CURSO 2023-2024 AUTOR MARIO SÁNCHEZ COGOLLUDO DIRECTOR ANTONIO SARASA CABEZUELO GRADO EN INGENIERÍA DE COMPUTADORES FACULTAD DE INFORMÁTICA UNIVERSIDAD COMPLUTENSE DE MADRID Septiembre 2024 DEVELOPMENT OF AN APPLICATION FOR MANAGING ACADEMIC EVENTS FINAL DEGREE PROJECT AUTOR MARIO SÁNCHEZ COGOLLUDO DIRECTOR ANTONIO SARASA CABEZUELO SEPTEMBER 2024 DEGREE IN COMPUTER ENGINEERING FACULTY OF COMPUTER SCIENCE COMPLUTENSE UNIVERSITY OF MADRID III DEDICATORIA A mi familia y mi pareja, Porque siempre han contribuido a que avance. V AGRADECIMIENTOS Agradezco a Antonio Sarasa Cabezuelo, primero por darme la oportunidad hacer este proyecto, por ayudarme durante el proceso de desarrollo, y sobre todo por su paciencia conmigo. Por otro lado agradecer a mi pareja, que ha estado acompañándome todo este tiempo, y siempre apoyándome. VII RESUMEN El objetivo de este trabajo es la creación de una aplicación web para que investigadores de las universidades puedan gestionar los eventos en los que participarán y las revistas académicas en las que realizaran publicaciones y, además podrán crear grupos para poder comentar sobre distintos temas en los que estén interesados y así intercambiar información de valor para los miembros de un mismo grupo. Los usuarios que no estén registrados en la web pueden realizar búsquedas para ver la información de los eventos y revistas añadidas por los usuarios, además de poder buscar a los usuarios que se encuentren registrados. Por otro lado los usuarios registrados podrán realizar las búsquedas mencionadas anteriormente, y además podrá realizar todos los procesos de gestión de su agenda, tanto en la creación para añadir eventos y revistas nuevas a su perfil, crear nuevos grupos en los que puede añadir nuevos miembros y mensajes, como para la edición y borrado de los elementos que pertenezcan a la agenda del usuario. Palabras clave Aplicación web, evento, revista, grupo IX ABSTRACT The objective of this work is the creation of a web application so that university researchers can manage the events in which they will participate and the academic journals in which they will publish and, in addition, they will be able to create groups to be able to comment on different topics in which they are interested and thus exchange valuable information for the members of the same group. Users who are not registered on the web can perform searches to see information on events and magazines added by users, as well as being able to search for registered users. On the other hand, registered users will be able to carry out the searches mentioned above, and will also be able to carry out all the management processes of their agenda, both in the creation to add new events and magazines to their profile, create new groups in which they can add new members and messages, such as for the edition and deletion of the elements that belong to the user's agenda. Keywords Web application, event, magazine, group XVI Figura 6.3.3.1. Código HTML del formulario de edición de revista ...................................... 62 Figura 6.3.3.2. Código de la función de validación de campos de revista ...................... 63 Figura 6.3.3.3. Funciones de controlador para modificar los datos de revista ................. 64 Figura 6.3.3.4. Función intermedia de modificar revista ....................................................... 64 Figura 6.3.3.5. Función de modificación de datos de revista en la bbdd ......................... 65 Figura 6.3.4.1. Código HTML del formulario de edición de contraseña ............................. 66 Figura 6.3.4.2. Código de la función de validación de campos de usuario log .............. 66 Figura 6.3.4.3. Funciones de controlador para modificar la contraseña de usuario ....... 67 Figura 6.3.5.1. Código HTML del formulario de información de evento............................. 68 Figura 6.3.5.2 Funciones de controlador para borrar un evento del usuario .................... 69 Figura 6.3.5.3. Función intermedia de borrado de evento .................................................. 69 Figura 6.3.5.4. Función de borrado de evento en la bbdd.................................................. 70 Figura 6.3.6.1. Código HTML del formulario de información de revista .............................. 70 Figura 6.3.6.2. Funciones de controlador para borrar una revista del usuario .................. 71 Figura 6.3.6.3. Función intermedia de borrado de revista ................................................... 71 Figura 6.3.6.4. Función de borrado de revista en la bbdd ................................................... 71 Figura 6.3.7.1. Código HTML del formulario de borrado de usuario ................................... 72 Figura 6.3.7.2. Código de la función de validación de campos de login ......................... 73 Figura 6.3.7.3. Funciones de controlador para borrar el perfil de usuario ......................... 74 Figura 6.3.7.4. Función intermedia de borrado de usuario ................................................. 74 Figura 6.3.7.5. Función de borrado de perfil de usuario en la bbdd .................................. 75 Figura 6.4.1.1. Código HTML del formulario de escritura de mensaje ................................ 76 Figura 6.4.1.2 2 Código de la función de validación de mensaje ...................................... 76 Figura 6.4.1.3. Funciones de controlador para añadir nuevo mensaje de grupo ........... 77 Figura 6.4.1.4. Función intermedia para añadir mensaje de grupo ................................... 77 XVII Figura 6.4.1.5. Función de inserción de mensaje de grupo en la bbdd ............................ 77 Figura 6.4.2.1. Código HTML del formulario de añadir miembro ......................................... 78 Figura 6.4.2.2 Código de la función de validación de nuevo miembro ............................ 78 Figura 6.4.2.3. Funciones de controlador para añadir nuevo miembro de grupo ........... 79 Figura 6.4.2.4. Función intermedia para añadir nuevo miembro de grupo ...................... 80 Figura 6.4.2.5. Función de inserción un nuevo miembro de grupo en la bbdd ................ 80 Figura A.1 Pantalla para iniciar sesión en la aplicación ..................................................... 116 Figura A.2 Pantalla para registrarse en la aplicación ......................................................... 116 Figura A.3 Pantalla de búsqueda de todos los eventos .................................................... 117 Figura A.4 Pantalla de búsqueda de eventos de un usuario ............................................ 118 Figura A.5 Pantalla con el listado de eventos de usuario buscado ................................. 118 Figura A.6 Pantalla de búsqueda de evento por nombre ................................................ 119 Figura A.7 Pantalla con la información del evento buscado ........................................... 119 Figura A.8 Pantalla de búsqueda de todas las revistas...................................................... 120 Figura A.9 Pantalla de búsqueda de revistas de un usuario ............................................. 121 Figura A.10 Pantalla con el listado de revistas de usuario buscado ................................ 121 Figura A.11 Pantalla de búsqueda de revista por nombre ................................................ 122 Figura A.12 Pantalla con la información de la revista buscada ....................................... 122 Figura A.13 Pantalla de búsqueda de un usuario ............................................................... 123 Figura A.14 Pantalla de información del usuario ................................................................. 123 Figura A.15 Pantalla con el listado de los usuarios registrados .......................................... 124 Figura A.16 Pantalla de creación de evento ....................................................................... 125 Figura A.17 Pantalla de creación de revista ........................................................................ 125 Figura A.18 Pantalla de creación de grupo ......................................................................... 126 Figura A.19 Pantalla de eventos propios del usuario .......................................................... 127 XVIII Figura A.20 Pantalla de revistas propias del usuario ........................................................... 127 Figura A.21 Pantalla de grupos del usuario .......................................................................... 128 Figura A.22 Pantalla de edición de información de perfil ................................................. 128 Figura A.23 Pantalla de cambio de contraseña ................................................................. 129 Figura A.24 Pantalla de borrado del perfil propio ............................................................... 130 Figura A.25 Pantalla de información de evento del usuario ............................................. 130 Figura A.26 Pantalla de edición de evento ......................................................................... 131 Figura A.27 Pantalla de borrado de evento ........................................................................ 131 Figura A.28 Pantalla de información de revista del usuario .............................................. 132 Figura A.29 Pantalla de edición de revista ........................................................................... 132 Figura A.30 Pantalla de borrado de revista ......................................................................... 133 Figura A.31 Pantalla de información de grupo ................................................................... 133 Figura A.32 Pantalla de mensajes de grupo ........................................................................ 134 Figura A.33 Pantalla de usuarios de grupo ........................................................................... 134 Figura A.34 Pantalla para añadir mensaje en grupo.......................................................... 135 Figura A.35 Pantalla para añadir un miembro al grupo ..................................................... 135 Figura A.36 Pantalla de edición de administrador .............................................................. 136 XIX XXI 1 Capítulo 1 - Introducción 1.1 Motivación Durante el año se realizan eventos, conferencias, se publican artículos en revistas. Para todo ello, los investigadores que vayan participar deben tener la información necesaria de cada una de estas actividades. Por ello, la motivación de este trabajo es facilitar la gestión de agendas académicas a los investigadores que tengan que realizar exposiciones en eventos o publicaciones en revistas a lo largo del año. Poniendo a disposición del usuario una manera sencilla de añadir nuevas entradas en su agenda, la modificación de la información introducida, la creación de grupos y la posibilidad de interactuar con otros usuarios para poder ampliar información necesaria de eventos o revistas, o sobre temáticas en las que el usuario esté interesado. 1.2 Objetivos El objetivo del trabajo es desarrollar una aplicación web que permita facilitar la gestión de la agenda académica de los investigadores y la creación de grupos para poder aumentar el valor de la información para los miembros de éstos. Para ello la aplicación web debe: - Permitir al usuario crear fácilmente nuevas entradas a su agenda, tanto eventos como revistas en los que participe o quiera participar - Ofrecer al usuario la posibilidad de realizar búsquedas a otros miembros de la web para poder ampliar la información que necesiten sobre un evento o revista. - Permitir la creación de grupos a los usuarios, además de poder ser invitado a los grupos por parte de otros miembros. 2 - Facilitar la interactuación de los miembros del grupo, para intercambiar información sobre un evento o revista, o sobre un tema de interés común. 1.3 Estructura de la memoria Esta memoria se divide en las siguientes secciones, que son los siguientes: Primero se encuentra la portada del TFG, a continuación los apartados de dedicatoria y agradecimientos, después un resumen sobre la aplicación en castellano e inglés, el índice de contenido, el índice de figuras y los capítulos que conforman la memoria, que son el capítulo 1 donde se hace una introducción al TFG, el capítulo 2 en el que se describen otras aplicaciones del mismo ámbito, el capítulo 3 en el que se explican las tecnologías empleadas, el capítulo 4 en donde aparecen los casos de uso, el capítulo 5 en el que se muestra la arquitectura del proyecto, el capítulo 6 en donde se muestra el diseño de la aplicación, el capítulo 7 en el que aparecen las conclusiones y el trabajo a futuro, tras los capítulos se encuentra la bibliografía y el anexo con una guía de usuario. 3 Capítulo 1 - Introduction 1.4 Motivation During the year events, conferences are held, articles are published in magazines. For all this, the researchers who are going to participate must have the necessary information on each of these activities. Therefore, the motivation of this work is to facilitate the management of academic agendas for researchers who have to make presentations at events or publications in journals throughout the year. Making available to the user a simple way to add new entries to their calendar, modify the information entered, create groups and the possibility of interacting with other users in order to expand the necessary information on events or magazines, or on topics in which the user is interested. 1.5 Objective The objective of the work is to develop a web application that facilitates the management of the researchers' academic agenda and the creation of groups in order to increase the value of the information for their members. To do this, the web application must: - Allow the user to easily create new entries in their calendar, both events and magazines in which they participate or want to participate - Offer the user the possibility of searching other members of the web in order to expand the information they need about an event or magazine. - Allow users to create groups, as well as being able to be invited to groups by other members. 4 - Facilitate the interaction of group members, to exchange information about an event or magazine, or about a topic of common interest. 11 ejemplo mediante el rellenado de un formulario para dirigirse a otra página o actualizarla y recibe a continuación una respuesta a través una página con la información solicitada. Figura 5.1 Arquitectura de la MVC Framework de Spring Para el proyecto se ha usado la arquitectura que se muestra en la figura 5.1.2, en ella el cliente envía peticiones a través del servidor, éste las procesa y las pasa a la base de datos. La base de datos envía su respuesta al servidor, y el servidor responde a la petición del cliente mostrando una nueva pantalla con la información obtenida. 12 Figura 5.1 Arquitectura de la aplicación 4.2 Modelo de datos La información que se almacena en la base de datos del proyecto consta de las siguientes entidades. Éstas son, usuarios, almacena la información personal de los usuarios registrados, eventos, guarda la información sobre conferencias/congresos añadidos por los usuarios, revistas, en ella se encuentra la información sobre revistas académicas añadidos por los usuarios, grupos, almacena información sobre un grupo, miembros de grupos, contiene a los integrantes de los diferentes grupos y mensajes de grupo, guarda los mensajes escritos en los grupos. Todas estas entidades mencionadas anteriormente necesitan persistencia, por lo que se almacenaran en tablas, que se muestran en el modelo Entidad-Relación de la figura 5.2. 13 Para la persistencia de datos en el proyecto se ha utilizado MySQL, que es un sistema de gestión base de datos relacional, dentro de WAMP, ya que el modelo de datos utilizado para el desarrollo de la aplicación web es de tipo Entidad-Relación. Figura 5.2: Modelo de datos Se ha implementado el esquema Entidad-Relación que aparece en la figura 5.2 mediante una base de datos relacional de tipo MySQL, en la que aparecen las siguientes tablas que a continuación se describen. 14 4.2.1 Tabla de Usuario Esta entidad se utiliza para almacenar la información de los usuarios registrados. En ella se guarda el nombre del usuario, el nickname elegido por el usuario, su correo electrónico, su número de teléfono, la universidad a la que pertenece (si pertenece a alguna universidad), su contraseña, el rol dentro de la aplicación (usuario registrado o administrador, el rol se añade directamente a través de la base de datos) y se le asigna automáticamente un id al usuario. 4.2.2 Tabla de Evento Esta entidad se utiliza para almacenar la información de los eventos añadidos por los usuarios. En ella se guarda el nombre del evento, el lugar donde se va a realizar el evento, la fecha del evento, la fecha límite para poder apuntarse, una descripción que el usuario quiera añadir, el usuario al que pertenece el evento y se le asigna automáticamente un id al evento. 4.2.3 Tabla de Revista Esta entidad se utiliza para almacenar la información de las revistas añadidos por los usuarios. En ella se guarda el nombre de la revista, la fecha límite para poder apuntarse, una descripción que el usuario quiera añadir, el usuario al que pertenece la revista, el coste de la publicación, el número de páginas de la publicación y se le asigna automáticamente un id a la revista. 4.2.4 Tabla de Grupo Esta entidad se utiliza para almacenar la información de los grupos añadidos por los usuarios. En ella se guarda el nombre del grupo, la fecha del evento que esté relacionado el grupo*, la fecha límite para poder apuntarse al evento o revista que esté relacionado el grupo*, una descripción sobre el grupo, el usuario de creación del grupo y se le asigna automáticamente un id al grupo. 15 *Los grupos pueden no estar relaciones con eventos y revistas. 4.2.5 Tabla de Miembro de grupo Esta entidad se utiliza para almacenar la información de los miembros de los grupos. En ella se guarda el id del grupo, el id de usuario que pertenece a ese grupo, que es su nickname, el usuario que le ha añadido al grupo y se le asigna automáticamente un id de miembro de grupo. 4.2.6 Tabla de Mensaje de grupo Esta entidad se utiliza para almacenar la información de los mensajes escritos en los grupos. En ella se guarda el id del grupo, el id de usuario que ha añadido el mensaje en un grupo, el mensaje añadido en un grupo, la fecha en que se ha añadido y se le asigna automáticamente un id de mensaje de grupo. Capítulo 5 - Diseño de la aplicación En este capítulo se va a mostrar el diseño y la implementación de la aplicación, para ello se ha dividido en módulos las funcionalidades: • Módulo de búsqueda • Módulo de creación 16 • Módulo de edición • Módulo de interacción 5.1 Módulo de búsqueda Dentro de este módulo se encuentran las funcionalidades de buscar eventos, revistas y usuarios, pudiéndose realizar de diferentes maneras, como por nombre de evento y de revista, como buscando por el Nick de un usuario, o mostrar un listado de todos ellos. A continuación se mostrarán las funciones implementadas dentro del módulo de búsqueda. 5.1.1 Login El usuario desde la interfaz de inicio se dirige a la pantalla de login, y en ella se muestra un formulario implementado en HTML, CSS y JavaScript, que comprobará que se rellena el Nick y la contraseña para su posterior envío. En la figura 6.1.1.1 aparece el código HTML del formulario y en la figura 6.1.1.2 el código JavaScript que valida los campos. Figura 6.1.1.1 Código HTML del formulario de login 17 Figura 6.1.1.2 Código de la función de validación de campos de login La solicitud HTTP del cliente es manejada por el DispatcherServlet, a continuación consultando HandlerMapping, a través de la anotación @RequestMapping, que es una anotación de Spring MVC (org.springframework.web.bind.annotation.RequestMapping), se asignan la solicitudes web al método de controlador para nuestro caso de uso, método que se muestra en la figura 6.1.1.3. 18 Figura 6.1.1.3 Funciones de controlador para login Desde el controlador se accede al componente del modelo, haciendo una llamada la función encargada de pasar el nick (Figura 6.1.1.4) y la contraseña del usuario a la función que consultará la base de datos (Figura 6.1.1.5) mediante un EntityManager de javax.persistence.EntityManager. 19 Figura 6.1.1.4 Función intermedia de login Figura 6.2.1.5 Función que consulta la bbdd para el login 5.1.2 Buscar revista por nombre El usuario desde cualquier pantalla de la aplicación web podrá realizar búsquedas, deberá hacer clic sobre el desplegable de revistas, y a continuación clic sobre la opción de buscar revistas, código que se muestra en la figura 6.1.2.1, que redirige al formulario de búsqueda también implementado en HTML, CSS y Javascript, que comprobará que se rellena el campo de búsqueda de revista correctamente para su posterior envío. En la figura 6.1.2.2 aparece el código HTML del formulario y en la figura 6.1.2.3 el código JavaScript que valida los campos. 20 Figura 6.1.2.1 Código de desplegable lateral de búsqueda Figura 6.1.2.2 Código HTML del formulario de búsqueda de revista por nombre 27 Desde el controlador se accede al componente del modelo, haciendo una llamada la función encargada de pasar el nombre del usuario con revistas asociadas buscado (Figura 6.1.4.4) a la función que consultará la base de datos (Figura 6.1.4.5) mediante un EntityManager de javax.persistence.EntityManager. Una vez recibida la información del usuario que se quiere buscar, el controlador volverá a llamar a otra función con la que obtendrá el listado de revistas del usuario buscado, y pasara esta información a la vista encargada de mostrar las revistas del usuario introducido. Figura 6.1.4.4 Función intermedia de buscar revista por usuario Figura 6.1.4.5 Función de búsqueda de revista por usuario a la bbdd 5.1.5 Buscar evento por nombre El usuario desde cualquier pantalla de la aplicación web podrá realizar búsquedas, deberá hacer clic sobre el desplegable de eventos, y a continuación clic sobre la opción de buscar eventos, código que se muestra en la figura 6.1.2.1, que redirige al formulario de búsqueda también implementado en HTML, CSS y Javascript, que comprobará que se rellena el campo de búsqueda de evento por nombre 28 correctamente para su posterior envío. En la figura 6.1.5.1 aparece el código HTML del formulario y en la figura 6.1.5.2 el código JavaScript que valida los campos. Figura 6.1.5.1 Código HTML del formulario de búsqueda de evento por nombre Figura 6.1.5.2 Código de la función de validación del campo de búsqueda La solicitud HTTP del cliente es manejada por el DispatcherServlet, a continuación consultando HandlerMapping, a través de la anotación @RequestMapping, que es una anotación de Spring MVC (org.springframework.web.bind.annotation.RequestMapping), se asignan la solicitudes web al método de controlador para nuestro caso de uso, método que se muestra en la figura 6.1.5.3 29 Figura 6.1.5.3 Funciones de controlador para buscar por nombre de evento Desde el controlador se accede al componente del modelo, haciendo una llamada la función encargada de pasar el nombre del evento buscado (Figura 6.1.5.4) a la función que consultará la base de datos (Figura 6.1.5.5) mediante un EntityManager de javax.persistence.EntityManager. Figura 6.1.5.4 Función intermedia de buscar evento por nombre 30 Figura 6.1.5.5 Función de búsqueda de evento por nombre a la bbdd 5.1.6 Buscar todos los eventos El usuario desde cualquier pantalla de la aplicación web podrá realizar búsquedas, deberá hacer clic sobre el desplegable de eventos, y a continuación clic sobre la opción de buscar todos los eventos, código que se muestra en la figura 6.1.2.1, que redirige a la pantalla donde se muestran los eventos encontrados, también implementado en HTML, CSS y Javascript. 31 Figura 6.1.6.1 Funciones de controlador para buscar todos los eventos La solicitud HTTP del cliente es manejada por el DispatcherServlet, a continuación consultando HandlerMapping, a través de la anotación @RequestMapping, que es una anotación de Spring MVC (org.springframework.web.bind.annotation.RequestMapping), se asignan la solicitudes web al método de controlador para nuestro caso de uso, método que se muestra en la figura 6.1.6.1. Desde el controlador se comprueba primero si el usuario que realiza la búsqueda está conectado o no, el número de página de eventos que va a pasar a la vista, y si fuera el caso de uso de solo la búsqueda de un evento, se usaría esta función del controlador para pasar el evento buscado. Tras estas comprobaciones el controlador accede al componente del modelo, haciendo una llamada la función encargada de pedir el listado de todos los eventos que hay en la aplicación (Figura 6.1.6.2) a la función que consultará la base de datos (Figura 6.1.6.3) mediante un EntityManager de javax.persistence.EntityManager. 32 Figura 6.1.6.2 Función intermedia de buscar todos los eventos Figura 6.1.6.3 Función de búsqueda de todos los eventos en la bbdd 5.1.7 Buscar evento por usuario El usuario desde cualquier pantalla de la aplicación web podrá realizar búsquedas, deberá hacer clic sobre el desplegable de evento, y a continuación clic sobre la opción de buscar eventos por usuario, código que se muestra en la figura 6.1.2.1, que redirige al formulario de búsqueda también implementado en HTML, CSS y Javascript, que comprobará que se rellena el campo de búsqueda del usuario del que se quieren obtener los eventos correctamente para su posterior envío. En la figura 6.1.7.1 aparece el código HTML del formulario y en la figura 6.1.7.2 el código JavaScript que valida los campos. 33 Figura 6.1.7.1 Código HTML del formulario de búsqueda Figura 6.1.7.2 Código de la función de validación del campo de búsqueda La solicitud HTTP del cliente es manejada por el DispatcherServlet, a continuación consultando HandlerMapping, a través de la anotación @RequestMapping, que es una anotación de Spring MVC (org.springframework.web.bind.annotation.RequestMapping), se asignan la solicitudes web al método de controlador para nuestro caso de uso, método que se muestra en la figura 6.1.7.3 34 Figura 6.1.7.3 Funciones de controlador para buscar por nombre de evento Desde el controlador se accede al componente del modelo, haciendo una llamada la función encargada de pasar el nombre del usuario con eventos asociados buscado (Figura 6.1.7.4) a la función que consultará la base de datos (Figura 6.1.7.5) mediante un EntityManager de javax.persistence.EntityManager. Una vez recibida la 35 información del usuario que se quiere buscar, el controlador volverá a llamar a otra función con la que obtendrá el listado de eventos del usuario buscado, y pasara esta información a la vista encargada de mostrar los eventos del usuario introducido. Figura 6.1.7.4 Función intermedia de buscar evento por usuario Figura 6.1.7.5 Función de búsqueda de eventos por usuario a la bbdd 5.1.8 Buscar todos los usuarios El usuario desde cualquier pantalla de la aplicación web podrá realizar búsquedas, deberá hacer clic sobre el desplegable de usuarios, y a continuación clic sobre la opción de buscar todos los ususarios, código que se muestra en la figura 6.1.2.1, que redirige a la pantalla donde se muestran los usuarios encontrados, también implementado en HTML, CSS y Javascript. 36 Figura 6.1.8.1 Funciones de controlador para buscar todos los usuarios La solicitud HTTP del cliente es manejada por el DispatcherServlet, a continuación consultando HandlerMapping, a través de la anotación @RequestMapping, que es una anotación de Spring MVC (org.springframework.web.bind.annotation.RequestMapping), se asignan la solicitudes 43 De igual manera que en el anterior caso de uso se recibe la solicitud HTTP del cliente y a través de la anotación @RequestMapping se asignan la solicitudes web al método de controlador para nuestro caso de uso (Figura 6.2.1.3). Igualmente se accede al componente del modelo, haciendo una llamada la función intermedia encargada de pasar el evento (Figura 6.2.1.4) a la función que lo guardará en la base de datos (Figura 6.2.1.5) mediante un EntityManager de javax.persistence.EntityManager. Figura 6.2.1.3 Funciones de controlador para crear evento Figura 6.2.1.4 Función intermedia de guardar evento 44 Figura 6.2.1.5 Función que inserta un evento en la bbdd 5.2.2 Crear revista Una vez el usuario haya iniciado sesión en la aplicación web, podrá desde su perfil acceder a la pantalla de creación de revista, al igual que el anterior caso de uso se muestra un formulario implementado en HTML, CSS y Javascript, que comprobará que se rellenan los campos de revista correctamente para su posterior envío. En la figura 6.2.2.1 aparece el código HTML del formulario y en la figura 6.2.2.2 el código JavaScript que valida los campos. Figura 6.2.2.1 Código HTML del formulario de creación de revista 45 Figura 6.2.2.2 Código de la función de validación de campos de revistas Se recibe la solicitud HTTP del cliente y a través de la anotación @RequestMapping se asignan la solicitudes web al método de controlador para nuestro caso de uso (Figura 6.2.2.3). Igualmente se accede al componente del modelo, haciendo una llamada la función intermedia encargada de pasar la revista (Figura 6.2.2.4) a la función que lo guardará en la base de datos (Figura 6.2.2.5) mediante un EntityManager de javax.persistence.EntityManager. 46 Figura 6.2.2.3 Funciones de controlador para crear revista Figura 6.2.2.4 Función intermedia de guardar revista Figura 6.2.2.5 Función que inserta una revista en la bbdd 47 5.2.3 Crear grupo Una vez el usuario haya iniciado sesión en la aplicación web, podrá desde su perfil acceder a la pantalla de creación de grupo, al igual que el anterior caso de uso se muestra un formulario implementado en HTML, CSS y Javascript, que comprobará que se rellenan los campos de grupo correctamente para su posterior envío. En la figura 6.2.3.1 aparece el código HTML del formulario y en la figura 6.2.3.2 el código JavaScript que valida los campos. Figura 6.2.3.1 Código HTML del formulario de creación de grupo 48 Figura 6.2.3.2 Código de la función de validación de campos de grupos Se recibe la solicitud HTTP del cliente y a través de la anotación @RequestMapping se asignan la solicitudes web al método de controlador para nuestro caso de uso (Figura 6.2.3.3). Igualmente se accede al componente del modelo, haciendo una llamada la función intermedia encargada de pasar el grupo (Figura 6.2.3.4) a la función que lo guardará en la base de datos (Figura 6.2.3.5) mediante un EntityManager de javax.persistence.EntityManager. 49 Figura 6.2.3.3 Funciones de controlador para crear grupo Figura 6.2.3.4 Función intermedia de guardar grupo Figura 6.2.3.5 Función que inserta un grupo en la bbdd 5.2.4 Registrar usuario El usuario sin registrar en la aplicación web, puede acceder a la pantalla de registro de usuario pinchando en “Register”, que abrirá una pantalla con un formulario implementado en HTML, CSS y Javascript, que comprobará que se rellenan los campos 50 de registro de usuario correctamente para su posterior envío. En la figura 6.2.4.1 aparece el código HTML del formulario y en la figura 6.2.4.2 el código JavaScript que valida los campos. Figura 6.2.4.1 Código HTML del formulario de registro de usuario 51 Figura 6.2.4.2 Código de la función de validación de campos de registro de usuario 52 Se recibe la solicitud HTTP del cliente y a través de la anotación @RequestMapping se asignan la solicitudes web al método de controlador para nuestro caso de uso (Figura 6.2.4.3), en el controlador antes de pasar el usuario que se quiere registrar se realizar una comprobación de que no existe ningún usuario con el nickname introducido. Igualmente se accede al componente del modelo, haciendo una llamada la función intermedia encargada de pasar el usuario (Figura 6.2.4.4) a la función que lo guardará en la base de datos (Figura 6.2.4.5) mediante un EntityManager de javax.persistence.EntityManager. Figura 6.2.4.3 Funciones de controlador para registrar usuario Figura 6.2.3.4 Función intermedia de guardar usuario 59 Figura 6.3.2.2 Código de la función de validación de campos de evento La solicitud HTTP del cliente es manejada por el DispatcherServlet, a continuación consultando HandlerMapping, a través de la anotación @RequestMapping, que es una anotación de Spring MVC (org.springframework.web.bind.annotation.RequestMapping), se asignan la solicitudes web al método de controlador para nuestro caso de uso, método que se muestra en la figura 6.3.2.3 60 Figura 6.3.2.3 Funciones de controlador para modificar los datos de evento Desde el controlador se accede al componente del modelo, haciendo una llamada la función encargada de pasar el evento que se va a modificar (Figura 6.3.2.4) a la función que modificará la base de datos (Figura 6.3.2.5) mediante un EntityManager de javax.persistence.EntityManager. Figura 6.3.2.4 Función intermedia de modificar evento 61 Figura 6.3.2.5 Función de modificación de datos de evento en la bbdd 5.3.3 Editar revista Una vez el usuario haya iniciado sesión en la aplicación web, podrá desde su perfil acceder a la pantalla de visualización de revistas propias, mostrándose los datos de la revista seleccionada con opción de poder modificarlos, el código está desarrollado en HTML, CSS y JavaScript, que comprobará que si se modifican los campos de información de la revista, éstos se rellenen correctamente para su posterior envío. En la figura 6.3.3.1 aparece el código HTML del formulario y en la figura 6.3.3.2 el código JavaScript que valida los campos. 62 Figura 6.3.3.1 Código HTML del formulario de edición de revista 63 Figura 6.3.3.2 Código de la función de validación de campos de revista La solicitud HTTP del cliente es manejada por el DispatcherServlet, a continuación consultando HandlerMapping, a través de la anotación @RequestMapping, que es una anotación de Spring MVC (org.springframework.web.bind.annotation.RequestMapping), se asignan la solicitudes web al método de controlador para nuestro caso de uso, método que se muestra en la figura 6.3.3.3 64 Figura 6.3.3.3 Funciones de controlador para modificar los datos de revista Desde el controlador se accede al componente del modelo, haciendo una llamada la función encargada de pasar la revista que se va a modificar (Figura 6.3.3.4) a la función que modificará la base de datos (Figura 6.3.3.5) mediante un EntityManager de javax.persistence.EntityManager. Figura 6.3.3.4 Función intermedia de modificar revista 65 Figura 6.3.3.5 Función de modificación de datos de revista en la bbdd 5.3.4 Editar contraseña Una vez el usuario haya iniciado sesión en la aplicación web, podrá desde su perfil acceder a la pantalla de edición de perfil, mostrándose los datos propios del usuario con opción de poder modificarlos, dentro de esta pantalla accede a la vista para cambiar contraseña pulsando el botón de cambio de contraseña, el código está desarrollado en HTML, CSS y JavaScript, que comprobará que si se modifica la contraseña del perfil, éstos se rellenen correctamente para su posterior envío. En la figura 6.3.4.1 aparece el código HTML del formulario y en la figura 6.3.4.2 el código JavaScript que valida los campos. 66 Figura 6.3.4.1 Código HTML del formulario de edición de contraseña Figura 6.3.4.2 Código de la función de validación de campos de usuario log La solicitud HTTP del cliente es manejada por el DispatcherServlet, a continuación consultando HandlerMapping, a través de la anotación @RequestMapping, que es una anotación de Spring MVC 67 (org.springframework.web.bind.annotation.RequestMapping), se asignan la solicitudes web al método de controlador para nuestro caso de uso, método que se muestra en la figura 6.3.4.3 Figura 6.3.4.3 Funciones de controlador para modificar la contraseña de usuario Desde el controlador se accede al componente del modelo, comprobando si la contraseña antigua introducido por el usuario es correcta, y si es así el controlador realizara las llamadas de edición de perfil de usuario como en el caso de uso Editar perfil (Figura 6.3.1.4 y Figura 6.3.1.5). 68 5.3.5 Borrar evento Una vez el usuario haya iniciado sesión en la aplicación web, podrá desde su perfil acceder a la pantalla de visualización de eventos propios, mostrándose los datos del evento seleccionado, desde esa pantalla accederá a la pantalla de borrado de evento pinchando el botón de borrar evento, el código está desarrollado en HTML, CSS y JavaScript. En la figura 6.3.5.1 aparece el código HTML del formulario Figura 6.3.5.1 Código HTML del formulario de información de evento La solicitud HTTP del cliente es manejada por el DispatcherServlet, a continuación consultando HandlerMapping, a través de la anotación @RequestMapping, que es una anotación de Spring MVC (org.springframework.web.bind.annotation.RequestMapping), se asignan la solicitudes web al método de controlador para nuestro caso de uso, método que se muestra en la figura 6.3.5.2 75 Figura 6.3.7.5 Función de borrado de perfil de usuario en la bbdd 5.4 Módulo de interacción Este módulo hace referencia a las funcionalidades que permiten interactuar a los usuarios dentro de los grupos, estas funcionalidades son las de añadir un mensaje en un grupo y añadir un miembro en un grupo. A continuación se mostrarán las funciones implementadas dentro del módulo de interacción. 5.4.1 Añadir mensaje en un grupo Una vez el usuario haya iniciado sesión en la aplicación web, podrá desde su perfil seleccionar uno de sus grupos y acceder a la pantalla del grupo, allí podrá pulsar el botón para añadir un mensaje, que le redirigirá a la pantalladonde puede escribir el mensaje y añadirlo al grupo. El código está desarrollado en HTML, CSS y JavaScript, que comprobará que si se rellena correctamente el campo del mensaje. En la figura 6.4.1.1 aparece el código HTML del formulario y en la figura 6.4.1.2 el código JavaScript que valida el campo del mensaje. 76 Figura 6.4.1.1 Código HTML del formulario de escritura de mensaje Figura 6.4.1.2 Código de la función de validación de mensaje La solicitud HTTP del cliente es manejada por el DispatcherServlet, a continuación consultando HandlerMapping, a través de la anotación @RequestMapping, que es una anotación de Spring MVC (org.springframework.web.bind.annotation.RequestMapping), se asignan la solicitudes web al método de controlador para nuestro caso de uso, método que se muestra en la figura 6.4.1.3 77 Figura 6.4.1.3 Funciones de controlador para añadir nuevo mensaje de grupo Desde el controlador se accede al componente del modelo, haciendo una llamada la función encargada de pasar el mensaje de grupo que se va a añadir (Figura 6.4.1.4) a la función que insertará en la base de datos (Figura 6.4.1.5) mediante un EntityManager de javax.persistence.EntityManager. Figura 6.4.1.4 Función intermedia para añadir mensaje de grupo Figura 6.4.1.5 Función de inserción de mensaje de grupo en la bbdd 5.4.2 Añadir miembro de grupo Una vez el usuario haya iniciado sesión en la aplicación web, podrá desde su perfil seleccionar uno de sus grupos y acceder a la pantalla del grupo, allí podrá pulsar 78 el botón para añadir un miembro, que le redirigirá a la pantalla donde puede escribir el miembro que se busca y añadirlo al grupo. El código está desarrollado en HTML, CSS y JavaScript, que comprobará que si se rellena correctamente el campo del nickname del usuario. En la figura 6.4.4.1 aparece el código HTML del formulario y en la figura 6.4.4.2 el código JavaScript que valida el campo del mensaje. Figura 6.4.2.1 Código HTML del formulario de añadir miembro Figura 6.4.2.2 Código de la función de validación de nuevo miembro La solicitud HTTP del cliente es manejada por el DispatcherServlet, a continuación consultando HandlerMapping, a través de la anotación 79 @RequestMapping, que es una anotación de Spring MVC (org.springframework.web.bind.annotation.RequestMapping), se asignan la solicitudes web al método de controlador para nuestro caso de uso, método que se muestra en la figura 6.4.2.3 Figura 6.4.2.3 Funciones de controlador para añadir nuevo miembro de grupo Desde el controlador se comprueba que el usuario introducido no sea un miembro existente en el grupo, tras realizar esta comprobación se hace una llamada la función encargada de pasar el nuevo miembro de grupo que se va a añadir (Figura 6.4.2.4) a la función que insertará en la base de datos (Figura 6.4.2.5) mediante un EntityManager de javax.persistence.EntityManager. 80 Figura 6.4.2.4 Función intermedia para añadir nuevo miembro de grupo Figura 6.4.2.5 Función de inserción de nuevo miembro de grupo en la bbdd La solicitud HTTP del cliente es manejada por el DispatcherServlet, a continuación consultando HandlerMapping, a través de la anotación @RequestMapping, que es una anotación de Spring MVC (org.springframework.web.bind.annotation.RequestMapping), se asignan la solicitudes web al método de controlador para nuestro caso de uso, método que se muestra en la figura 6.4.1.3 Capítulo 6 - Conclusiones y trabajo futuro 81 6.1 Conclusiones En este proyecto se ha buscado desarrollar una aplicación que ayude a sus usuarios a gestionar de una manera sencilla sus agendas dentro del calendario académico. Para ello se ha implementado una aplicación web con unas interfaces de usuario intuitivas para poder realizar las todas las funcionalidades que permite la aplicación como la creación de un perfil propio el cual el usuario puede modificar, la gestión del perfil, pudiendo añadir, editar y borrar cualquier evento y revista, el acceso a las pantallas de grupos para poder interactuar con otros miembros. En el siguiente enlace se encuentra el código utilizado para desarrollar el proyecto: https://drive.google.com/drive/folders/1i9t25lOWWJL8ZGuKbQVwKt2VRzl7DmYG ?usp=drive_link 6.2 Trabajo futuro Las funcionalidades que se han desarrollado dentro del proyecto permiten el objetivo de poder gestionar fácilmente una agenda académica, pero existen funcionalidades que mejorarían la experiencia de los usuarios que podrían añadirse en un futuro a la aplicación, estas son: • Notificaciones al correo electrónico. Esta funcionalidad permitiría a la aplicación enviar notificaciones al correo electrónico del usuario, a modo de recordatorio, cuando se esté acercando una deadline de un evento y revista. • Mensajes dentro de la web. La aplicación ahora solo permite mensajes dentro de un grupo de usuarios, con esta funcionalidad usuarios podrían mandarse mensajes dentro de la aplicación, y así aumentar la interactuación entre usuarios. • Chat con administrador. Actualmente un usuario registrado no puede comunicarse con el administrador, por lo que los usuarios podrían 82 comunicarse con el administrador para tratar temas de gestión de sus cuentas. Capítulo 7 - Conclusions and future work 83 7.1 Conclusion In this project we have sought to develop an application that helps its users to easily manage their agendas within the academic calendar. For this, a web application has been implemented with intuitive user interfaces to be able to carry out all the functionalities that the application allows, such as the creation of their own profile which the user can modify, profile management, being able to add, edit and delete . any event and magazine, access to group screens to be able to interact with other members. 7.2 Future work The functionalities that have been developed within the project allow the objective of being able to easily manage an academic agenda, but there are functionalities that would improve the user experience that could be added to the application in the future, these are: • Email notifications. This functionality would allow the application to send notifications to the user's email, as a reminder, when a deadline for an event and magazine is approaching. • Messages within the web. The application now only allows messages within a group of users, with this functionality users could send messages within the application, and thus increase interaction between users. • Chat with administrator. Currently a registered user cannot communicate with the administrator, so users could contact the administrator to discuss management issues of their accounts. 84 BIBLIOGRAFÍA [1] EasyCahir: https://easychair.org/overview [2] OpenConf: https://www.openconf.com/ [3] Java: https://es.wikipedia.org/wiki/Java_(lenguaje_de_programación) 91 Secuencia normal 1. El usuario no registrado accede a la página de respuesta tras realizar la búsqueda. 2. Usuario selecciona el botón ver datos de usuario. 3. El sistema muestra los datos referentes al perfil de usuario. Postcondición Pantalla con los datos del perfil.. Excepciones CU – 04 Ver evento desde perfil buscado Actores Usuario sin registrar, usuario registrado y administrador. Descripción Ver evento creado por el perfil buscado. Entradas Perfil buscado Salidas Selección de evento para visualización. Precondición Existencia del usuario y al menos un evento creado. Secuencia normal 1. El usuario no registrado accede a la página del perfil tras realizar la búsqueda. 2. El sistema busca los eventos asociados a éste perfil. 3.1. Si tiene eventos creados, el sistema mostrará un listado de los eventos del perfil. 3. El usuario selecciona un evento que quiera ver. 92 Postcondición Pantalla con el evento creado. Excepciones 3.2. El sistema le indicará al usuario que éste perfil no tiene eventos creados. CU – 05 Buscar eventos por usuario Actores Usuario sin registrar, usuario registrado y administrador. Descripción Ver listado de eventos creados por el perfil buscado. Entradas Perfil buscado Salidas Listado de eventos del perfil Precondición Existencia del usuario y al menos un evento creado. Secuencia normal 1. El usuario no registrado accede a la página de inicio 2. El usuario introduce en el buscador de eventos por usuario el nombre(nick) del perfil del que quiere buscar los eventos. 3. El sistema busca los eventos del perfil introducido por el usuario. 3.1. Si el perfil introducido tiene eventos, se muestra el listado de los eventos. Postcondición Pantalla con listado de eventos. Excepciones 3.2. El sistema le indicará al usuario que éste perfil no tiene eventos creados. 93 CU – 06 Ver evento desde listado de búsqueda de eventos encontrados Actores Usuario sin registrar, usuario registrado y administrador. Descripción Ver evento dentro del listado de búsqueda. Entradas Búsqueda de evento (por nombre de evento, por usuario, listado total de eventos) Salidas Selección de evento para visualización. Precondición Existencia de al menos un evento creado. Secuencia normal 1. El usuario no registrado accede a la página del listado de eventos tras realizar la búsqueda. 2. El usuario selecciona un evento que quiera ver. Postcondición Pantalla con el evento creado. Excepciones 3.2. El sistema le indicará al usuario que no existen eventos con esa premisa de búsqueda. CU – 07 Buscar evento por su nombre Actores Usuario sin registrar y usuario registrado, administrador. Descripción Buscar evento por su nombre. 94 Entradas Evento buscado Salidas Listado de los eventos con el nombre buscado. Precondición Existencia de eventos con nombre introducido. Secuencia normal 1. El usuario no registrado accede a la página de inicio 2. El usuario introduce en el buscador de eventos por nombre el nombre del evento que quiere buscar. 3. El sistema busca los eventos con el nombre introducido por el usuario. 3.1. Si el nombre introducido existe, se muestra el listado de los eventos. Postcondición Pantalla con listado de eventos. Excepciones 3.2. El sistema le indicará al usuario que no existen eventos con ese nombre. CU – 08 Buscar revistas Actores Usuario sin registrar, usuario registrado y administrador. Descripción Busca las revistas que se encuentren Entradas 95 Salidas Revistas de los usuarios Precondición Secuencia normal 1. El usuario no registrado accede a la página de inicio 2. Usuario selecciona Buscar revistas. 3. El sistema busca las revistas en la base de datos. 3.1. Hay revistas y se muestra lista de las revistas. Postcondición Listado de revistas. Excepciones 3.2. No hay revistas y se le indica al usuario. CU – 09 Buscar revista por su nombre Actores Usuario sin registrar y usuario registrado, administrador. Descripción Buscar revista por su nombre. Entradas Revista buscada Salidas Listado de las revistas con el nombre buscado. Precondición Existencia de revistas con nombre introducido. Secuencia normal 1. El usuario no registrado accede a la página de inicio 2. El usuario introduce en el buscador de revistas por nombre el nombre de la revista que quiere buscar. 3. El sistema busca las revistas con el nombre introducido por el usuario. 3.1. Si el nombre introducido existe, se muestra el listado 96 de las revistas. Postcondición Pantalla con listado de revistas. Excepciones 3.2. El sistema le indicará al usuario que no existen revistas con ese nombre. CU – 10 Buscar revistas por usuario Actores Usuario sin registrar, usuario registrado y administrador. Descripción Ver listado de revistas creadas por el perfil buscado. Entradas Perfil buscado Salidas Listado de revistas del perfil Precondición Existencia del usuario y al menos una revista creada. Secuencia normal 1. El usuario no registrado accede a la página de inicio 2. El usuario introduce en el buscador de revistas por usuario el nombre(nick) del perfil del que quiere buscar las revistas. 3. El sistema busca las revistas del perfil introducido por el usuario. 3.1. Si el perfil introducido tiene revistas, se muestra el listado de las revistas. Postcondición Pantalla con listado de revistas. 97 Excepciones 3.2. El sistema le indicará al usuario que éste perfil no tiene revistas creados. CU – 11 Buscar usuarios Actores Usuario sin registrar, usuario registrado y administrador. Descripción Busca los usuarios que se encuentren Entradas Salidas Todos los usuarios Precondición Secuencia normal 1. El usuario no registrado accede a la página de inicio 2. Usuario selecciona Buscar usuarios. 3. El sistema busca los usuarios en la base de datos. 3.1. Hay usuarios y se muestra lista de los usuarios. Postcondición Listado de usuarios. Excepciones 3.2. No hay usuarios y se le indica al usuario. CU – 12 Crear evento Actores Usuario registrado y administrador. 98 Descripción Crear evento en el perfil del usuario registrado. Entradas Texto Salidas Nuevo evento en el perfil Precondición Existencia del usuario. Secuencia normal 1. El usuario registrado accede a la página de perfil. 2. El usuario pulsa el botón crear evento. 3. El usuario introduce los campos requeridos y pulsa el botón crear. 4. El sistema crea el evento en el perfil del usuario. 4.1. Si el nombre de evento introducido no existe en el perfil, se crea el evento en el perfil y se vuelve a la página del perfil. Postcondición Pantalla de perfil del usuario. Excepciones 4.2. El sistema le indicará al usuario que éste evento ya existe para el perfil. CU – 13 Borrar evento Actores Usuario registrado y administrador. Descripción Borrar evento en el perfil del usuario registrado. Entradas Evento existente 99 Salidas Evento borrado en el perfil Precondición Existencia del usuario y del evento en el perfil. Secuencia normal 1. El usuario registrado accede a la página de perfil. 2. El usuario pulsa el botón borrar evento. 3. El sistema busca el evento en el perfil del usuario. 3.1. Si el nombre de evento introducido existe en el perfil, se borra el evento en el perfil y se vuelve a la página del perfil. Postcondición Pantalla de perfil del usuario. Excepciones 3.2. El sistema le indicará al usuario que éste evento no existe para el perfil. CU – 14 Editar evento Actores Usuario registrado y administrador. Descripción Editar evento en el perfil del usuario registrado. Entradas Evento existente Salidas Evento editado en el perfil Precondición Existencia del usuario y del evento en el perfil. 100 Secuencia normal 1. El usuario registrado accede a la página de perfil. 2. El usuario pulsa el botón editar evento. 3. El sistema busca el evento en el perfil del usuario. 3.1. Si el nombre de evento introducido existe en el perfil, se permite al usuario editar el evento del perfil y se vuelve a la página del perfil. Postcondición Pantalla de perfil del usuario. Excepciones 3.2. El sistema le indicará al usuario que éste evento no existe para el perfil. CU – 15 Crear revista Actores Usuario registrado y administrador. Descripción Crear revista en el perfil del usuario registrado. Entradas Texto Salidas Nueva revista en el perfil Precondición Existencia del usuario. Secuencia normal 1. El usuario registrado accede a la página de perfil. 2. El usuario pulsa el botón crear revista. 3. El usuario introduce los campos requeridos y pulsa el botón crear. 4. El sistema crea la revista en el perfil del usuario. 4.1. Si el nombre de la revista introducido no existe en el perfil, se crea la revista en el perfil y se vuelve a la página del perfil. 107 Postcondición Pantalla principal sin sesión iniciada. Excepciones Dependencias Depende del caso de uso R21, Iniciar sesión. CU – 23 Borrar usuario Actores Usuario registrado y administrador. Descripción Borrar perfil de usuario. Entradas Usuario existente Salidas Perfil borrado del sistema. Precondición Existencia del usuario. Secuencia normal 1. El usuario registrado accede a la página de perfil. 2. El usuario pulsa editar usuario. 3. El usuario pulsa el botón eliminar perfil. 4. El sistema muestra un mensaje para confirmar que el usuario desea eliminar el perfil. 5. El usuario pulsa la opción de si eliminar el perfil. 6. El sistema busca el perfil y lo elimina. Postcondición Pantalla principal. 108 Excepciones 5.1 El usuario pulsa la opción de no eliminar el perfil y regresa a la página de perfil. CU – 24 Editar usuario Actores Usuario registrado y administrador. Descripción Editar perfil de usuario. Entradas Usuario existente Salidas Usuario con perfil editado. Precondición Existencia del usuario. Secuencia normal 1. El usuario registrado accede a la página de perfil. 2. El usuario pulsa editar perfil. 3. El usuario accede a la página de edición de perfil e introduce la nueva información que quiere modificar. 4. El sistema guarda los cambios el perfil del usuario. 4.1. Si la información es correcta, se permite al usuario editar el perfil y se vuelve a la página del perfil. Postcondición Pantalla de perfil del usuario. Excepciones 4.2. El sistema le indicará al usuario que la información introducida para uno o varios de los campos no es correcta y debe volver a introducir la información. CU – 25 Crear grupo 109 Actores Usuario registrado y administrador. Descripción Creación de un grupo para comunicarse entre diferentes usuarios. Entradas Nombre del grupo y usuario de creación Salidas Nuevo grupo creado. Precondición Estar registrado el usuario Secuencia normal 1. El usuario accede a la página del perfil. 2. Usuario selecciona el botón crear grupo. 3. El usuario introduce la información requerida para crear un grupo y pulsa el botón crear. 4. El sistema crea el grupo para el perfil del usuario. Postcondición El usuario vuelve a la página del perfil. Excepciones CU – 26 Añadir miembro a grupo Actores Usuario registrado y administrador. 110 Descripción Añadir un nuevo miembro a un grupo. Entradas Usuario y grupo al que se le desea invitar Salidas Nuevo miembro añadido al grupo. Precondición Ambos usuarios deben estar registrados, y el usuario que añade al nuevo miembro debe pertenecer al grupo. Secuencia normal 1. El usuario accede a la página del perfil. 2. Usuario selecciona Grupos para ver los grupos de los que es miembro. 3. El usuario selecciona el grupo al que desea añadir otro usuario. 4. El usuario pulsa el botón de añadir miembro. 5. El usuario introduce el nick del miembro al que quiere añadir y pulsa el botón Añadir. 6. El sistema busca éste perfil. 6.1. Si existe el perfil, el sistema añadirá a dicho perfil. Postcondición El usuario vuelve a la página de grupos. Excepciones 6.2. Si no existe el perfil, el sistema le indicará al usuario que éste perfil no existe. 6.3. Si ya es miembro el perfil que se desea añadir, el sistema le indicará al usuario que éste perfil ya se encuentra dentro del grupo. 111 CU – 27 Modificar grupo Actores Usuario registrado y administrador. Descripción Modificar información del grupo Entradas Grupo existente. Salidas Grupo modificado Precondición Existencia de grupo Secuencia normal 1. El usuario registrado accede a la página de perfil. 2. Usuario selecciona Grupos para ver los grupos de los que es miembro. 3. El usuario selecciona el grupo que desea modificar. 4. El usuario pulsa el botón de editar grupo. 5. El usuario accede a la página de edición de grupo e introduce la nueva información que quiere modificar. 6. El sistema guarda los cambios del grupo. 6.1. Si la información es correcta, se permite al usuario editar el grupo y se vuelve a la página del grupo. 112 Postcondición El usuario vuelve a la página de grupos. Excepciones 6.2. El sistema le indicará al usuario que la información introducida no es válida. CU – 28 Eliminar grupo Actores Usuario registrado y administrador. Descripción Borrar un grupo. Entradas Grupo existente. Salidas Grupo borrado. Precondición Existencia de grupo y miembro creador del grupo Secuencia normal 1. El usuario registrado accede a la página de perfil. 2. Usuario selecciona Grupos para ver los grupos de los que es miembro. 3. El usuario selecciona el grupo que desea borrar. 4. El usuario pulsa el botón de borrar grupo. 5. El sistema muestra un mensaje para confirmar que el usuario desea eliminar el grupo. 113 6. El usuario pulsa la opción de si eliminar el grupo. 7. El sistema busca el grupo, lo elimina y notifica al resto de miembros. Postcondición El usuario vuelve a la página de grupos. Excepciones CU – 29 Salir de grupo Actores Usuario registrado y administrador. Descripción Salir de un grupo. Entradas Grupo existente. Salidas Grupo borrado en el perfil del usuario. Precondición Existencia de grupo y miembro del grupo. Secuencia normal 1. El usuario registrado accede a la página de perfil. 2. Usuario selecciona Grupos para ver los grupos de los que es miembro. 3. El usuario selecciona el grupo del que desea salir. 114 4. El usuario pulsa el botón salir de grupo. 5. El sistema muestra un mensaje para confirmar que el usuario desea salir del grupo. 6. El usuario pulsa la opción de si salir del grupo. 7. El sistema busca el grupo y elimina a ese miembro del grupo. Postcondición El usuario vuelve a la página de grupos. Excepciones CU – 30 Añadir mensaje en el grupo Actores Usuario registrado y administrador. Descripción Añadir un nuevo mensaje en grupo. Entradas Mensaje que se desea añadir. Salidas Nuevo mensaje añadido al grupo. Precondición Usuario debe estar registrado, y el usuario que añade el nuevo mensaje debe pertenecer al grupo. 115 Secuencia normal 1. El usuario accede a la página del perfil. 2. Usuario selecciona Grupos para ver los grupos de los que es miembro. 3. El usuario selecciona el grupo al que desea escribir el mensaje. 4. El usuario pulsa el botón de añadir mensaje. 5. El usuario introduce el mensaje que quiere añadir y pulsa el botón Añadir. 6. El sistema añade el mensaje en el grupo. Postcondición El usuario vuelve a la página de grupos. Excepciones Anexo 2: Guía de usuario En este apartado se explicará la guía de usuario para la utilización de la aplicación, diferenciando las posibles funcionalidades dependiendo del tipo de usuario. Usuario no registrado o sin iniciar sesión Mientras un usuario no este registrado o sin iniciar sesión aparecerá a la derecha dentro de la barra que se encuentra en la parte superior de la pantalla las opciones de registrarse e iniciar sesión. En la figura A.1 aparece la pantalla donde el usuario que no ha iniciado sesión debe introducir sus credenciales para poner realizar el login. Deberá poner en los espacios donde se indica su nickname y su contraseña. 116 Figura A.1 Pantalla para iniciar sesión en la aplicación A continuación en la figura A.2 vemos la pantalla de registro de usuario, en la que aparece el formulario que el usuario debe rellenar con su información personal para poder registrarse una vez rellenos los campos y pulsando el botón “Register”. Figura A.2 Pantalla para registrarse en la aplicación 123 Figura A.13 Pantalla de búsqueda de un usuario Tras ello aparecerá la información del usuario buscado (Figura A.14) Figura A.14 Pantalla de información del usuario 124 En la figura A.15 aparece la pantalla con el listado de todos los usuarios registrados en la parte central y en la barra lateral las opciones de usuarios desplegadas con la búsqueda de todos los usuarios seleccionada. Figura A.15 Pantalla con el listado de los usuarios registrados Usuario registrado y con inicio de sesión Una vez el usuario ya registrado inicia sesión (figura A.1) podrá acceder a las funciones propias de un usuario registrado. En la barra lateral de la izquierda aparecerá un nuevo desplegable de creación, en el que el usuario podrá añadir a su perfil un nuevo evento, una revista y grupo, para poder desplegarlo se debe pinchar sobre él y aparecerán las opciones de creación. En la figura A.16 aparece la pantalla con el formulario que con los campos que se han de rellenar para crear un evento (si no se rellena correctamente saltara una alarma indicando como rellenar los campos y los campos que no pueden quedar vacíos). 125 Figura A.16 Pantalla de creación de evento En la figura A.17 aparece la pantalla con el formulario que con los campos que se han de rellenar para crear una revista (si no se rellena correctamente saltara una alarma indicando como rellenar los campos y los campos que no pueden quedar vacíos). Figura A.17 Pantalla de creación de revista 126 En la figura A.18 aparece la pantalla con el formulario que con los campos que se han de rellenar para crear un grupo (si no se rellena correctamente saltara una alarma indicando como rellenar los campos y los campos que no pueden quedar vacíos). Figura A.18 Pantalla de creación de grupo A parte de las opciones que aparecen en la barra lateral de la izquierda, el usuario registro puede acceder a otras funcionalides, que se encuentrarn en la barra superior a la derecha, pinchando sobre su nickname. Tras ello el usuario accede a la pantalla de su perfil, y desde ahí podrá editar su información personal, borrar su perfil, hacer logout y, si es administrador , acceder a la pantalla de admistrador. En la figura A.19 el usuario ha accedido a su perfil y aparece la pantalla con el listado de todos los eventos propios del usuario en la parte central. En la parte central aparecerán cuando se pinche sobre su pestaña las revistas (figura A.20) y los grupos en los que se encuentra el usuario (figura A.21). 127 Figura A.19 Pantalla de eventos propios del usuario Figura A.20 Pantalla de revistas propias del usuario 128 Figura A.21 Pantalla de grupos del usuario Desde la pantalla de perfil del usuario, éste puede editar su información personal. Pinchando sobre “Edit profile” en la barra superior a la derecha se accederá a la pantalla con un formulario dónde se aparece la información personal y se puede editar ésta misma (figura A.22). Figura A.22 Pantalla de edición de información de perfil 129 En la figura A.23 se muestra la pantalla de cambio de contraseña, a la cual se accede desde la pantalla de editar perfil. Figura A.23 Pantalla de cambio de contraseña En la figura A.24 se encuentra la pantalla de borrado de perfil, a ella se accede desde la pantalla de perfil de usuario pinchando sobre “Delete” situado en la barra superior a la derecha. Para eliminar el perfil el usuario deberá escribir correctamente su contraseña correctamente. 130 Figura A.24 Pantalla de borrado del perfil propio En la parte central de la pantalla donde se encuentra la información sobre los eventos, revistas y grupos (figuras A.19, A.20 y A.21), se puede acceder a la información completa de ellos. En la figura A.25 aparece la información completa de un evento del usuario, se accede a esta pantalla pinchando sobre “Go event”. Figura A.25 Pantalla de información de evento del usuario Bajo la información del evento aparecen tres botones, uno para editar el evento, otro para volver atrás y otro para borrarlo. En la figura A.26 se muestra la pantalla de edición de evento, en la que presionando el botón de “Edit” se edita la información de evento y en la figura A.27 aparece la pantalla de borrado de evento, en la que pinchando en el botón “Delete” se elimina el evento. 131 Figura A.26 Pantalla de edición de evento Figura A.27 Pantalla de borrado de evento En la figura A.28 aparece la información completa de una revista del usuario, se accede a esta pantalla pinchando sobre “Go Magazine”. 132 Figura A.28 Pantalla de información de revista del usuario Bajo la información de la revista aparecen tres botones, uno para editar la revista, otro para volver atrás y otro para borrarla. En la figura A.29 se muestra la pantalla de edición de revista, en la que presionando el botón de “Edit” se edita la información de la revista y en la figura A.30 aparece la pantalla de borrado de revista, en la que pinchando en el botón “Delete” se elimina la revista. Figura A.29 Pantalla de edición de revista