scieee AI-readable full text Open interactive document viewer

Desarrollo de un sistema de comunicación interna y gestión de la información para una ONG

Calabozo Maroto, Ramón

Abstract

Este trabajo, surge porque actualmente la ONG para la que estoy realizando el proyecto tiene un sistema de gestión de los datos muy antiguo y muy poco mantenible. En este sentido, la ONG ha ido cambiando, surgiendo la necesidad de adaptar la aplicación de gestión puesto que ya no realiza el trabajo para la cual fue diseñada en su momento. En particular, se han considerado la necesidad de implementar un sistema de comunicación interno. Actualmente la ONG realiza todas las comunicaciones a través de aplicaciones externas, siendo un trabajo muy tedioso, la forma de notificar, y ponerse en contacto entre los miembros de la ONG. Para poder realizar de manera más eficiente el trabajo de gestión y comunicación de la ONG se ha planteado en este proyecto una aplicación de gestión con servicios de comunicación como el Mailing, el envío de WhatsApps, salas de chat y la posibilidad de realizar videoconferencias. Además, la integración de la aplicación de gestión en el sistema creado permite utilizar los servicios de comunicación para enviar notificaciones según ciertos filtros definidos en base a la información proporcionada por el módulo de gestión de los datos, ayudando de esta forma a los administradores de la ONG en su trabajo.

Full text

DESARROLLO DE UN SISTEMA DE COMUNICACIÓN INTERNA Y GESTIÓN DE LA INFORMACIÓN PARA UNA ONG DEVELOPMENT OF AN INTERNAL COMMUNICATION AND INFORMATION MANAGEMENT SYSTEM OF AN NGO RAMÓN CALABOZO MAROTO GRADO EN INGENIERÍA INFORMÁTICA FACULTAD DE INFORMÁTICA UNIVERSIDAD COMPLUTENSE DE MADRID TRABAJO DE FIN DE GRADO CURSO 2019-2020 DIRECTOR: ANTONIO SARASA CABEZUELO A todos los que me han apoyado, para que este proyecto fuese posible AGRADECIMIENTOS Quiero dar las gracias en primer lugar a la ONG que ha confiado en mí para el desarrollo de este proyecto. Además, dar las gracias a mis padres José Ramón y María Luisa, que siempre me dan ánimo y apoyo para poder seguir adelante y que, de manera muy especial, me han comprendido y apoyado durante la realización de este trabajo de fin de grado. Por otro lado, agradecer a mis hermanos Javier y Luis por interesarse por la evolución del trabajo; y a todos mis amigos y familiares que, en la medida de sus capacidades, han sabido ayudarme en los momentos de dificultad. De igual manera, agradecer a la universidad la formación que me ha aportado durante todos estos años, la cual me va a ayudar a desempeñar la profesión de ingeniero informático. Por último, dar las gracias de manera significativa a Antonio, mi director del proyecto. RESUMEN Este trabajo, surge porque actualmente la ONG para la que estoy realizando el proyecto tiene un sistema de gestión de los datos muy antiguo y muy poco mantenible. En este sentido, la ONG ha ido cambiando, surgiendo la necesidad de adaptar la aplicación de gestión puesto que ya no realiza el trabajo para la cual fue diseñada en su momento. En particular, se han considerado la necesidad de implementar un sistema de comunicación interno. Actualmente la ONG realiza todas las comunicaciones a través de aplicaciones externas, siendo un trabajo muy tedioso, la forma de notificar, y ponerse en contacto entre los miembros de la ONG. Para poder realizar de manera más eficiente el trabajo de gestión y comunicación de la ONG se ha planteado en este proyecto una aplicación de gestión con servicios de comunicación como el Mailing, el envío de WhatsApps, salas de chat y la posibilidad de realizar videoconferencias. Además, la integración de la aplicación de gestión en el sistema creado permite utilizar los servicios de comunicación para enviar notificaciones según ciertos filtros definidos en base a la información proporcionada por el módulo de gestión de los datos, ayudando de esta forma a los administradores de la ONG en su trabajo. Palabras clave Aplicación de gestión, integración de servicios, envío de notificaciones ABSTRACT This work is the result of a real need, because the NGO for which I am currently carrying out the project has a very old and very little maintainable data management system. In this sense, the NGO has been changing according to the necessity to adapt the management work since it no longer performs the work for which it was designed. Concretely, the need to implement an internal communication system has been considered. Currently the NGO carries out all the communications through external applications, which is a very rough work, the way to notify, and to get in touch among the members of the NGO. To carry out the management and communication work of the NGO in a more efficient way, a management application with communication services (such as Mailing, sending WhatsApps, chat rooms and the possibility of videoconferences) has been proposed in this project. In addition, the integration of the management application in the created system allows the use of communication services to send notifications according to certain filters defined based on the information provided by the data management module, helping this way the administrators of the NGO in their work. Key Words Management application, services integration, sending notifications ÍNDICE RESUMEN ......................................................................................................................... 4 Palabras clave ................................................................................................................ 4 ABSTRACT ....................................................................................................................... 5 Key Words ...................................................................................................................... 5 ÍNDICE .............................................................................................................................. 6 ÍNDICE DE FIGURAS ....................................................................................................... 8 ÍNDICE DE TABLAS ....................................................................................................... 10 CAPÍTULO 1: INTRODUCCIÓN ..................................................................................... 11 1.1. Motivación ............................................................................................................. 11 1.2. Objetivos .............................................................................................................. 11 1.3. Estructura de la memoria ....................................................................................... 11 CHAPTER 1: INTRODUCTION ...................................................................................... 13 1.1. Motivation .............................................................................................................. 13 1.2. Objectives ............................................................................................................. 13 1.3. Structure of the report ............................................................................................ 13 CAPÍTULO 2: ESTADO DEL ARTE ................................................................................ 14 2.1. CRM (Customer relationship management) ........................................................... 14 2.2. ERP (Enterprise Resource Planning) ..................................................................... 15 2.3. Sistemas de comunicación .................................................................................... 15 CAPÍTULO 3: TECNOLOGÍA EMPLEADA .................................................................... 17 3.1 Modelio ................................................................................................................... 17 3.2 MySQL ................................................................................................................... 17 3.3 C#........................................................................................................................... 17 3.4 XAML ..................................................................................................................... 18 3.5 Entity Framework .................................................................................................... 18 3.6 Amazon Web Service (AWS) .................................................................................. 18 3.7 WhatsmsApi ........................................................................................................... 18 3.8 Avspeed SDK ......................................................................................................... 19 3.9 Git........................................................................................................................... 19 CAPÍTULO 4: CASOS DE USO ....................................................................................... 20 4.1 Actores ................................................................................................................... 20 4.2 Casos de uso relacionados con los Administradores. ............................................. 21 4.3. Casos de uso relacionados con los Miembros Básicos .......................................... 27 4.4. Casos de uso comunes a varios actores ............................................................... 29 CAPÍTULO 5: MODELO DE DATOS .............................................................................. 33 5.1 Modelo Entidad Relación ........................................................................................ 33 5.2 Modelo Relacional .................................................................................................. 35 CAPÍTULO 6: ARQUITECTURA DE LA APLICACIÓN ................................................. 38 6.1 Arquitectura ............................................................................................................ 38 6.2 Patrones de diseño ................................................................................................. 40 CAPÍTULO 7: EVALUACIÓN ......................................................................................... 41 7.1. Metodología ........................................................................................................... 41 7.2 Resultado de la evaluación ..................................................................................... 42 1) Detalles Generales del encuestado ................................................................... 42 2) Satisfacción desde el punto de vista de los administradores .............................. 43 3) Satisfacción desde el punto de vista de los usuarios básicos ............................ 47 4) Satisfacción general de la aplicación ................................................................. 49 CAPÍTULO 8: CONCLUSIONES Y TRABAJO FUTURO ................................................ 50 CHAPTER 8: CONCLUSIONS AND FUTURE WORK .................................................... 51 BIBLIOGRAFÍA .............................................................................................................. 52 ANEXOS .......................................................................................................................... 55 Anexo 1: Guía de instalación Rápida ............................................................................ 55 Anexo 2: Guía de uso de la aplicación.......................................................................... 64 1. Funcionalidades para los usuarios administradores ........................................... 64 2. Funcionalidades para los usuarios básicos ........................................................ 71 3. Funcionalidades compartidas entre todos los tipos de usuarios ......................... 73 Anexo 3: Evaluación de la usabilidad ........................................................................... 77 ÍNDICE DE FIGURAS Figura 1: Estructura de permisos de la aplicación ............................................................ 20 Figura 2: Diagrama de casos de uso de los Administradores. .......................................... 21 Figura 3: Diagrama de casos de uso de los Miembros básicos ........................................ 27 Figura 4: Diagrama del Modelo Entidad Relación ............................................................ 34 Figura 5: Diagrama del Modelo Relacion ......................................................................... 35 Figura 6: Arquitectura de la aplicación ............................................................................. 39 Figura 7: Evaluación del tipo de empleado de los encuestados ....................................... 42 Figura 8: Evaluación de la edad de los encuestados ....................................................... 43 Figura 9: Evaluación de la pantalla Login ......................................................................... 43 Figura 10: Evaluación de la pantalla de Administración ................................................... 44 Figura 11: Evaluación de la pantalla de Inserción de usuarios ......................................... 44 Figura 12: Evaluación de la pantalla de filtrado de usuarios ............................................. 45 Figura 13: Evaluación de la pantalla de envío de correos ................................................ 45 Figura 14: Evaluación de la pantalla de envío de WhatsApp ............................................ 46 Figura 15: Evaluación de la pantalla de videoconferencias .............................................. 46 Figura 16: Evaluación de la opción de cambiar el idioma de la aplicación ........................ 47 Figura 17: Evaluación de la pantalla Principal .................................................................. 47 Figura 18: Evaluación de la edición del perfil de usuario .................................................. 48 Figura 19: Evaluación de cómo de intuitiva es la aplicación ............................................. 49 Figura 20: Evaluación de la satisfacción general de la aplicación .................................... 49 Figura 21: Elección de la acción del instalador MySQL .................................................... 55 Figura 22: Aceptación de los términos de uso en la instalación MySQL ........................... 56 Figura 23: Elección tipo de instalación MySQL ................................................................ 56 Figura 24: Progreso de la Instalación MySQL .................................................................. 57 Figura 25: Primera parte configuración del servidor MySQL ............................................ 57 Figura 26: Segunda parte configuración del servidor MySQL........................................... 58 Figura 27: Primera parte para importar base de datos en el servidor MySQL .................. 58 Figura 28: Segunda parte para importar base de datos en el servidor MySQL ................ 59 Figura 29: Instalación conector MySQL para Visual Studio .............................................. 59 Figura 30: Finalización de la Instalación conector MySQL para Visual Studio .................. 60 Figura 31: Iniciar instalación Visual Studio 2019 .............................................................. 60 Figura 32: Instalación Visual Studio 2019 sin cargas de trabajo ....................................... 61 Figura 33: Progreso de la instalación Visual Studio 2019 ................................................. 61 Figura 34: Fin de la instalación Visual Studio 2019 .......................................................... 62 Figura 35: Abrir un proyecto en Visual Studio 2019 ......................................................... 62 Figura 36: Cambio en la cadena de conexión en Visual Studio 2019 ............................... 63 Figura 37: Pantalla de filtrado .......................................................................................... 64 Figura 38: Pantalla de inicio de la videoconferencia ......................................................... 65 Figura 39: Pantalla de sala de chat y videoconferencia .................................................... 65 Figura 40: Pantalla de Mailing .......................................................................................... 66 Figura 41: Pantalla de Mailing con archivos adjuntos ....................................................... 66 Figura 42: Pantalla de envío de WhatsApps .................................................................... 67 Figura 43: Pantalla principal del Administrador Actualizar ................................................ 67 Figura 44: Pantalla de actualización de usuarios ............................................................. 67 Figura 45: Pantalla principal administrador local eliminación de usuarios ........................ 68 Figura 46: Pantalla aviso eliminación de usuarios ............................................................ 68 Figura 47: Pantalla de inserción de usuarios .................................................................... 69 Figura 48: Correo electrónico petición de registro ............................................................ 70 Figura 49: Importar archivo de usuario ............................................................................. 70 Figura 50: Pantalla de inserción de usuarios campos rellenos ......................................... 70 Figura 51: Pantalla principal del administrador Insertar permiso ...................................... 71 Figura 52: Pantalla de Login Petición de registro ............................................................. 72 Figura 53: Pantalla de Petición de registro ....................................................................... 72 Figura 54: Pantalla de Login ............................................................................................ 73 Figura 55: Pantalla principal del administrador ................................................................. 73 Figura 56: Pantalla principal del usuario básico ............................................................... 74 Figura 57: Primera forma para cambiar el idioma de la aplicación ................................... 74 Figura 58: Segunda forma para cambiar el idioma de la aplicación .................................. 75 Figura 59: Pantalla de edición del perfil ........................................................................... 75 Figura 60: Pantalla principal del administrador Cerrar sesión ........................................... 76 Figura 61: Cuestiones generales de la evaluación ........................................................... 77 Figura 62: Cuestiones desde el punto de vista de los administradores (1) ....................... 78 Figura 63: Cuestiones desde el punto de vista de los administradores (2) ....................... 79 Figura 64: Cuestiones desde el punto de vista de los administradores (3) ....................... 80 Figura 65: Cuestiones desde el punto de vista de los usuarios básicos (1) ...................... 81 Figura 66: Cuestiones desde el punto de vista de los usuarios básicos (2) ...................... 81 Figura 67: Cuestiones de satisfacción general ................................................................. 82 16 ● Skype Software distribuido por Microsoft que permite comunicación de texto, voz y vídeo sobre Internet [10]. Sus principales características son las siguientes: - Llamadas de audio y videollamadas de alta definición - Mensajes inteligentes - Pantalla compartida - Grabación de llamadas y subtítulos en directo - Llamadas a teléfonos - Conversaciones privadas [11] • Slack Es una herramienta de comunicación en equipo. Es servicio de pago, pero también tiene una cuenta gratuita para equipos pequeños [12]. Sus principales características son las siguientes: - Ofrece salas de chat organizadas por temas, así como grupos privados y mensajes directos. - Posee un cuadro de búsqueda que permite acceder a todo el contenido de la aplicación - Integra una gran cantidad de servicios a terceros y respalda las integraciones hechas para la comunidad [13] 17 CAPÍTULO 3: TECNOLOGÍA EMPLEADA En este capítulo se va a describir las herramientas y tecnologías que han sido empleadas para el desarrollo del proyecto. 3.1 Modelio Modelio es un software de código abierto, que permite la realización de diagramas UML. Sus de sus características son las siguientes: - Modelador de UML - Soporte BPMN integrado con UML - Generador de código Java - XMI importación /exportación - Publicación de modelos HTML - Sistema de extensión - Soporte de lenguaje de script [14 3.2 MySQL MySQL es un gestor de base de datos relacionales [15]. Sus principales características son las siguientes - Amplio subconjunto del lenguaje SQL. - Disponibilidad en gran cantidad de plataformas y sistemas - Posibilidad de selección de mecanismos de almacenamiento que ofrecen diferentes velocidades de operación, soporte físico, capacidad, distribución geográfica, transacciones. - Transacciones y claves foráneas - Conectividad segura - Replicación - Búsqueda e indexación de campos de texto [16 3.3 C# Lenguaje de programación basado en objetos y con seguridad de tipos. C# tiene sus raíces en la familia de lenguajes C. Es un lenguaje, que como se ha dicho anteriormente es un lenguaje orientado a objetos, aunque también incluye compatibilidad para programación orientada a componentes [17]. Sus principales características son las siguientes: - Sintaxis sencilla - Sistema de tipos unificado - Espacio de nombres - Polimorfismo - Operadores sobrescritos - Bibliotecas - Eliminación de problemas de las DLLs [18] 18 3.4 XAML XAML e un lenguaje declarativo basado en XML, optimizado para describir gráficamente interfaces de usuarios visuales ricas desde el punto de vista gráfico [19]. Sus principales características son las siguientes: - Interfaz gráfica declarativa - Diseño dinámico - Gráficos basados en vectores - Estilos [20] 3.5 Entity Framework Entity Framework trabajar con datos utilizando objetos de clases específicas de dominio sin centrarse en las tablas y columnas subyacentes de la base de datos donde se almacenan los datos. Con Entitity Framework, se puede trabajar en un nivel más alto de abstracción cuando se manejan los datos. Sus principales características son las siguientes: - Multiplataforma - Modelado - Consulta - Seguimiento de cambios - Concurrencia - Transacciones - Almacenamiento en caché - Configuraciones - Migraciones [21] [22] 3.6 Amazon Web Service (AWS) Es una colección de servicios de la computación en la nube pública, también llamados servicios web [23]. El servicio utilizado para el desarrollo de este proyecto ha sido SES (Simple Email Service), que como indica su propio nombre, es el servicio que permite el envío de emails. Sus principales características son las siguientes: - Alta capacidad de entrega - Personalización del contenido - Autenticación - Direcciones IP dedicadas - Monitoreo - Administración de la reputación del remitente - Recepción flexible de emails [24] [25] 3.7 WhatsmsApi Es una Api (Interfaz de Programación de Aplicaciones) proporcionada por Facebook, que permite enviar mensajes de WhatsApp a través de una aplicación externa. Sus principales características son las siguientes: - Envío de mensajes - Accede al historial de mensajes enviados [26] 19 3.8 Avspeed SDK SDK (Software Development Kit), que proporciona el servicio para la realización de las videoconferencias. Sus principales características son las siguientes: - Uso de WebRTC - Para la señalización se puede usar tanto socket.io como signalR[27] 3.9 Git Git es sistema de control de versiones distribuido gratuito y de código abierto [28]. Sus principales características son las siguientes: - Ramificación - Gestión distribuida - Gestión eficiente de proyectos grandes - No depende de un repositorio central - Software libre 20 CAPÍTULO 4: CASOS DE USO En este capítulo se van a presentar os casos de uso desarrollados para implementar la aplicación. En primer lugar, se presentarán los actores considerados y a continuación se mostrarán los casos de uso definidos agrupados de acuerdo al actor que interviene. 4.1 Actores Los actores que van a intervenir en la aplicación son los siguientes: ● Administrador: Representa a un empleado de la ONG que gestiona la información y comunicaciones de un conjunto de usuarios que tiene asignados de acuerdo con una jerarquía de administradores definida. En este sentido, existen tres tipos de administradores: generales, provinciales, y locales Cada uno de ellos con diferentes permisos y usuarios a gestionar. ● Miembro Básico: Es el usuario normal de la aplicación. Es un miembro de la ONG, que aporta, trabaja, pero que no tiene asignada ninguna tarea de gestión. En la figura 1 se observa la estructura de permisos que hay en la aplicación Figura 1: Estructura de permisos de la aplicación 21 4.2 Casos de uso relacionados con los Administradores. En la figura 2 se muestra los casos de uso definidos con respecto al actor “Administrador” Figura 2: Diagrama de casos de uso de los Administradores. A continuación, se van a describir cada uno de los casos de uso: Identificador Admin-1 Nombre Gestionar Permisos Actores Administrador Descripción Permite a un administrador, dar ciertos permisos a otros usuarios. Precondiciones Ser Administrador Postcondiciones El usuario, tiene ciertos permisos 22 Flujo principal Para Insertar Permiso: 1. El administrador pulsa en una de las personas, el botón de insertar permiso. 1.1. Si el administrador es General se le darán permisos de Administrador Provincia. 1.2. Si el administrador es Provincial se le darán permisos de Administrador Local. Para eliminar Permiso: 1. El administrador pulsa en una de las personas, el botón de eliminar permiso. 2. El usuario, quedará convertido automáticamente en un miembro básico de la aplicación En ambos casos saldrá un mensaje de información, indicando que la operación ha sido realizada con éxito Flujo alternativo 1. Si se produce un error, se producirá un mensaje de error y se volverá a la pantalla principal. Tabla 1: Caso de uso Gestionar permisos Identificador Admin-2 Nombre Consultar/ modificar la base de datos Actores Administrador Descripción Permite a los administradores modificar la Base de Datos Precondiciones Tiene que ser un Administrador Postcondiciones La aplicación permite consultar / modificar la base de datos 23 Flujo principal 1. Se podrá consultar buscando al miembro de la ONG en la pantalla principal. 2. Una vez encontrado al miembro buscado, le aparecerá la información general del miembro de la ONG. Para Ver la información/actualizarla 1. Si se quiere ver la ficha completa o modificar el campo, de centro, grupo o grado el administrador pulsa en actualizar. Para eliminar a un miembro 1. pulsa en eliminar 2. Se le indicará que este es un proceso irreversible, y el usuario pulsará en el botón “SÍ”, indicando que está seguro de que quiere eliminar a esa persona de la base de datos de la ONG Para insertar a un miembro 1. Pulsará en insertar. 2. La aplicación le llevará a una nueva pantalla, donde tiene que introducir los datos, o importar un archivo que le ha llegado a su correo, de la persona que ha pedido la petición de registro 3. Pulsará en aceptar En todas estas operaciones, se indicará que la operación ha sido realizada con éxito Flujo alternativo 1. Si se produce un error, se producirá un mensaje de error y se volverá a la pantalla principal. Tabla 2: Caso de uso Consultar/modificar la base de datos Identificador Admin-3 Nombre Mailing 24 Actores Administrador Descripción La aplicación permite enviar correos, por correo electrónico a los miembros de los cuales el administrador tiene permisos Precondiciones En ese momento debe haber acceso a internet Postcondiciones Envío de la notificación Flujo principal 1. El administrador pulsará el botón “enviar aviso” 2. Introducirá mediante un filtro, a los miembros que quiere que llegue la notificación, dentro de los cuales el administrador tenga permisos. 3. Pulsará en el botón “Enviar Correo” 4. Escribirá el asunto y el texto del mensaje, y añadirá los archivos adjuntos que desee. 5. Se enviará el correo electrónico. Flujo alternativo 1. En caso de que no pueda enviar a algunos de los usuarios el correo electrónico, al administrador le saldrá una notificación indicando que a ese usuario no se ha podido enviar el correo Tabla 3: Caso de uso Mailing Identificador Admin-4 Nombre Notificación por WhatsApp Actores Administrador 25 Descripción La aplicación permite enviar WhatsApp a los miembros de los cuales el administrador tiene permisos Precondiciones En ese momento debe haber acceso a internet, en caso de que no tenga acceso a internet, el mensaje llegará a los miembros, cuando el administrador tenga acceso a internet Postcondiciones Envío de la notificación Flujo principal 1. El administrador pulsará el botón “enviar aviso” 2. Introducirá mediante un filtro, a los miembros que quiere que llegue la notificación, dentro de los cuales el administrador tenga permisos. 3. Pulsará en el botón “Enviar WhatsApp” 4. Escribirá el texto del mensaje. 5. Se enviará el mensaje de WhatsApp. Flujo alternativo 1. En caso de que no pueda enviar a algunos de los usuarios el mensaje de WhatsApp, al administrador le saldrá una notificación indicando que a ese usuario no se ha podido enviar el WhatsApp Tabla 4: Caso de uso Notificación por WhatsApp Identificador Admin-5 Nombre Crear salas de chat y videoconferencia Actores Administrador Descripción La aplicación permite crear salas de chat y videoconferencia, incluyendo en ellas, a los miembros de los cuales el administrador tiene permisos 32 Flujo alternativo En caso de error, se le indicará al usuario mediante un mensaje de error Tabla 10: Caso de uso Editar perfil Identificador Com-5 Nombre Cerrar sesión Actores Cualquier usuario de la aplicación Descripción Cierra sesión en la aplicación Precondiciones Postcondiciones Se cierra sesión en la aplicación Flujo principal 1. El usuario pulsará el botón de “Cerrar sesión” 2. El usuario aparecerá en la pantalla de Login Flujo alternativo Tabla 11: Caso de uso Cerrar sesión 33 CAPÍTULO 5: MODELO DE DATOS En este capítulo se va a describir el modelo de datos utilizado para realizar la persistencia de la información. En la sección 5.1 se mostrará el modelo E-R que se ha definido de acuerdo con la información que es necesaria gestionar, y en la sección 5.2 se describirá la implementación de este modelo mediante una base de datos relacional. 5.1 Modelo Entidad Relación En la figura 4 se muestra el diagrama del modelo E-R que se ha definido para la aplicación desarrollada. En este diagrama se representan las entidades, los atributos y las relaciones entre ellas de los requisitos que ha proporcionado la ONG, para el desarrollo del proyecto - La ONG está compuesta de personas, que tienen los siguientes atributos: Nacionalidad, E-mail, Dirección, IDPersona, Población, Primer apellido, Segundo apellido, Nombre, Móvil, Código Postal, Cónyuge, Teléfono, Estado Civil, Fecha de nacimiento, Padre, Madre, DNI, Observaciones, Usuario, Contraseña. - Cada persona, pertenece a un grupo y a un grado, pudiendo pertenecer muchas personas al mismo grupo y grado. - Es obligatorio que cada miembro de la ONG pertenezca a un centro, que, a la vez, pertenece a una localidad, que así mismo pertenece a una provincia localizada en un país. - En la aplicación habrá, tres tipos de permisos: - Local: Permiso que poseen ciertas personas, que le permiten gestionar la cierta localidad. - Provincial: Permiso que poseen ciertas personas, que le permiten gestionar cierta provincia (junto con todas las localidades que pertenecen a dicha localidad). - General: Permiso que permite gestionar toda la ONG. - Es posible que las personas no tengan ningún permiso, por lo que se quedan como miembros básicos de la aplicación 34 Figura 4: Diagrama del Modelo Entidad Relación 35 5.2 Modelo Relacional Para implementar el modelo E-R descrito en el apartado anterior se ha decidido utilizar una base de datos de tipo relacional. En la figura 5 se muestran las tablas y relaciones existentes entre ellas. Figura 5: Diagrama del Modelo Relacion 36 A continuación, se va a describir cada Tabla • Tabla persona: Contiene la información de las personas que componen la ONG: - IDPersona: ID de la persona, que le identifica en la ONG - Permiso: Clave foránea del permiso que tiene dentro de la ONG - PaisVivir: Clave foránea del país donde reside - Grupo: Clave foránea del grupo al que pertenece - Grado: Clave foránea del grado al que pertenece - CentroPertenece: Clave foránea del centro al que está inscrito - Idioma: Clave foránea del idioma - Nacionalidad: Nacionalidad - Nombre: Nombre de la persona - Apellido_1: Primer apellido - Apellido_2: Segundo apellido - DNI: Documento nacional de identidad - Telefono: Teléfono al que se puede contactar - Movil: Teléfono móvil al que se puede contactar - e_mail: Correo electrónico con que se le puede contactar - Padre: Padre de la persona - Madre: Madre de la persona - Conyuge: Cónyuge del miembro de la ONG - Direccion: Dirección de la persona - Poblacion: Población - CodigoPostal: Código postal - EstadoCivil: Estado civil del miembro de la ONG - FechaNacimiento: Fecha de nacimiento - Observaciones: Campo en el que la persona puede añadir observaciones adicionales que la persona considere oportunas - Usuario: Nombre de usuario para la aplicación - Contrasena: Contraseña de la persona para la aplicación • Tabla País: Contiene la información de los países, en los que está presente la ONG: - Nombre: Nombre del país • Tabal Grupo: Contiene la información de los distintos grupos que componen la ONG: - Nombre: Nombre del grupo • Tabal Grado: Contiene la información de los distintos grupos que componen la ONG: - Nombre: Nombre del grado • Tabal Idioma: Contiene la información de los Idiomas en los que se puede ejecutar la aplicación: - Idioma: Nombre del idioma • Tabla TipoPermiso: Contiene la información de los tipos de permisos que hay en la aplicación: - Tipo: Nombre del tipo de permiso 37 • Tabal Permiso: Contiene la información de los distintos permisos que hay en la ONG: - IdPermiso: Id del permiso - Tipo: Clave foránea al tipo de permiso que tiene ese Permiso • Tabal AdminlLocal: Contiene la información de las distintas personas que poseen un permiso de administrador local en la ONG - IdAdminLocal: Clave foránea del Persona que tiene el miembro con permiso de administrador local - Localidad: Localidad donde tiene permisos el administrador local • Tabal AdminProvincial: Contiene la información de las distintas personas que poseen un permiso de administrador provincial en la ONG - IdAdminProvincial: Clave foránea de Persona que tiene el miembro con permiso de administrador provincial - Provincia: Provincia donde tiene permisos el administrador provincial • Tabal AdminGeneral: Contiene la información de las distintas personas que poseen un permiso de administrador general en la ONG - IdAdminGeneral: Clave foránea del Persona que tiene el miembro con permiso de administrador general • Tabla Provinicia: Contiene la información de las provincias que posee la ONG - Nombre: Nombre de la provincia - Pais: Clave foránea, del país al que pertenece • Tabla AgrupaciónLocal: Contiene la información de las agrupaciones locales que posee la ONG - Nombre: Nombre de la agrupación local - Provincia: Clave foránea de la provincia a la que pertenece • Tabla Centro: Contiene la información de lo centro que posee la ONG - Nombre: Nombre del centro - AgrupaciónLocal: Clave foránea de la agrupación local a la que pertenece - Activo: Valor booleano que indica si el centro está actualmente activo 38 CAPÍTULO 6: ARQUITECTURA DE LA APLICACIÓN En este capítulo se va a explicar la arquitectura que se ha utilizado para el desarrollo de la aplicación, y los patrones de diseño que se han usado durante el desarrollo del proyecto. 6.1 Arquitectura La implementación de la aplicación se ha realizado utilizando un patrón Modelo Vista Controlador (MVC). El patrón modelo vista controlador es un patrón que permite separar la parte visual, los datos, y la lógica de la aplicación. Las ventajas de usar el patrón de diseño Modelo Vista Controlador son las siguientes: - Cambios independientes en interfaz/ lógica, por lo que se puede tener varias vistas para un mismo modelo. - Modelo independiente de la interfaz de usuario y del comportamiento de la entrada de datos En este caso se ha aplicado este patrón de diseño de la siguiente manera: Modelo Se ocupa de la persistencia de los datos de la aplicación. Se ha utilizado el framework Entity Framework. El cual permite trabajar con los datos en forma de objetos. Al tener acceso a los datos también es el encargado de realizar las consultas a la base de datos para servírselos al resto de módulos de la aplicación. Además, posee la lógica de negocio. Por lo que permite gestionar los distintos servicios que ofrece la aplicación. Al ser una aplicación que integra desarrollo de terceros, se ha tenido que llamar a esos servicios a través de sus APIs, además de gestionar el propio servicio de gestión de los datos. Los servicios de terceros que se han usado son los siguientes: - Amazon Web Services (AWS), en concreto Simple Email Service. Permite él envió de correos electrónicos. - AvSpeed permite el desarrollo de chat y videoconferencias, a partir de WebRTC - WhatsmsApi permite él envió de WhatsApps a través de un servicio rest Vista Se encarga de mostrar los datos al usuario. Es la capa con la que interacciona el usuario. Controlador Gestiona las llamadas que le realiza el usuario, para transmitirlas al modelo, y así poder ofrecer en todo momento el servicio que el usuario desea. En la figura 6 se muestra la arquitectura que se ha utilizado durante el desarrollo de la aplicación 39 Figura 6: Arquitectura de la aplicación 40 6.2 Patrones de diseño A continuación, se van a explicar los patrones de diseño que se han utilizado para desarrollar la aplicación: • DAO (Data Access Object) Este patrón permite independizar la capa de representación de los datos de su acceso. Esto produce el poder cambiar la capa del Modelo sin tener que cambiar la lógica de negocio, por lo que este patrón permite no depender de la forma, arquitectura y representación de los datos para poder acceder a ellos. • Factoría Dado que en el desarrollo de la aplicación se busca hacer de esta lo más escalable posible, se quiere separar la implementación concreta de las funcionalidades, es decir, con este patrón se busca no depender de una implementación concreta para ofrecer ciertos servicios. Para ello se crea una interfaz, con el conjunto de funciones a realizar, y una clase factoría con un método que devuelve una implementación de esta interfaz. Por lo que, si se quiere resolver la implementación de cierta clase o servicio con otra tecnología, otro desarrollo etc., simplemente sé tiene que implementar esta interfaz, y en la clase factoría devolver esa nueva implementación, pudiendo cambiar a la implementación antigua de una manera muy fácil 41 CAPÍTULO 7: EVALUACIÓN En este capítulo se va a describir los resultados de una evaluación de la usabilidad que ha sido realizado entre algunos de los miembros de la ONG a la que va dirigida la aplicación desarrollada. 7.1. Metodología Para la realización de la evaluación de la aplicación, se buscó a miembros de la ONG, tanto administradores como usuarios básicos. Estos usuarios se conectaban a un ordenador donde está instalada la aplicación a través del programa AnyDesk, y se les proporcionaba un formulario creado en Google Forms, que contenía una serie de cuestiones, que tenían que ir respondiendo. Para ir respondiendo a las cuestiones el usuario al que se le estaba haciendo la entrevista tenía que ir realizando los pasos que había en el cuestionario. Después de realizar cada uno de los pasos se le ofrecía que respondiese con una calificación del 1 al 10 sobre la satisfacción de la acción realizada, siendo la respuesta del 1 un nivel de satisfacción muy bajo, y la respuesta de 10 significa un nivel de satisfacción muy alto. Las cuestiones se han dividido en cuatro secciones: 1) Detalles generales del encuestado En esta sección, se buscaba evaluar qué tipo de usuarios eran los que habían realizado la evaluación de la aplicación y la edad que tenían. Analizando estos datos se podía ver si la evaluación que se hacía sobre la aplicación era significativa, dado el tipo de persona que la estaba realizando 2) Punto de vista de los administradores En esta sección se buscaba evaluar, el uso de la aplicación con las funcionalidades de los administradores, y si para realizar dichas funciones la aplicación era intuitiva y fácil de utilizar. En la figura 8 se ve unos ejemplos de cuestiones para la segunda sección 3) Punto de vista de los usuarios básicos En esta sección se buscaba evaluar, el uso de la aplicación con las funcionalidades de los usuarios básicos, y si para realizar dichas funciones la aplicación era intuitiva y fácil de utilizar. En la figura 9 se ve unos ejemplos de cuestiones para la tercera sección 48 Figura 18: Evaluación de la edición del perfil de usuario Para la satisfacción con la pantalla de edición de perfil, los encuestados han votado con valoraciones que van del 7 al 9, comprendiendo las notas 7 y 8 el 84.6% de los votos, y siendo el 8 la nota más votada con el 46.2% En la figura 23 se muestra el resultado de la evaluación de la satisfacción con respecto con la pantalla de videoconferencias Figura 17: Evaluación de la pantalla de videoconferencias Para la pantalla de videoconferencias hemos obtenido notas que comprenden del 6 al 9, siendo la nota más votada el 7 por el 46,2% de los encuestados, por lo que la mayoría de los encuestados le dan una valoración de notable. 49 4) Satisfacción general de la aplicación En la figura 19 se muestra el resultado de la evaluación de la satisfacción con respecto con lo intuitiva que es la aplicación Figura 19: Evaluación de cómo de intuitiva es la aplicación Los encuestados perciben que la aplicación es bastante intuitiva, siendo la nota más votada el 8 por el 46.2% de los encuestados, habiendo también un nivel de satisfacción completa, es decir, con nota de 10, por el 7.7% de los encuestados. En la figura 20 se muestra el resultado de la evaluación de la satisfacción de la aplicación en general Figura 20: Evaluación de la satisfacción general de la aplicación El 77% de las valoraciones comprenden una nota en intervalo del 8 y 9, por lo que se percibe que el trabajo realizado es bueno 50 CAPÍTULO 8: CONCLUSIONES Y TRABAJO FUTURO En este proyecto se ha desarrollado un proyecto real de gestión para una ONG. En esta aplicación se permite la gestión de los miembros de la ONG, pudiendo modificar la base de datos según el permiso que tenga cada usuario de la aplicación. Además, a esta aplicación de gestión se le ha integrado otros servicios de terceros para poder realizar comunicaciones internas dentro de la aplicación, por lo que integrando el servicio SES de Amazon Web Services, se ha permitido el envío de correos electrónicos, integrando la Api Whatsms Api proporcionada por Facebook, se permite el envío de WhatsApps, y por último, integrando el SDK de AvSpeed, se permite la creación de salas de chat y videoconferencia. Gracias a que todos estos servicios se encuentran integrados en la aplicación de gestión, el envío de notificaciones se puede hacer según los filtros que desea el administrador que envía la notificación. En este sentido con el desarrollo de esta aplicación se consigue el primer objetivo de esta aplicación, hacer más fácil el trabajo de gestión de los administradores de la aplicación, y ayudar a estos en el envío de notificaciones a los miembros que están a su cargo, añadiendo una red interna de comunicaciones dentro de la ONG. El proyecto desarrollado puede ser extendido y mejorado de varias maneras. En este sentido, se tienen las siguientes líneas de trabajo futuro: - Añadir ciertas funcionalidades a los usuarios básicos tales como crear foros donde compartir información, crear videoconferencias con otros miembros de la ONG, aunque no pertenezcan al mismo centro o no tengan permisos de administración, y poder disponer de un repositorio de archivos comunes - Integrar alguna red social de forma que los usuarios puedan ir publicando noticias, trabajos, fotos, … y los miembros de la ONG puedan comentarlos y mantener una conversación sobre el tema que se ha subido con el miembro de la ONG que ha hecho la publicación - Mejorar el sistema de autenticación y seguridad de los datos. - Implementar una versión para dispositivos móviles tales como tablets, smartphones... - Mejorar las funcionalidades o interfaces de usuarios de acuerdo con las valoraciones realizadas por los usuarios en la evaluación de la usabilidad. 51 CHAPTER 8: CONCLUSIONS AND FUTURE WORK In this project a real management project for an NGO has been developed. In this application the management of the members of the NGO is allowed, being able to modify the database according to the credentials that each user of the application has. In addition, this management application has been integrated with other third-party services to be able to carry out internal communications within the application. By integrating the Amazon Web Services SES, the sending of emails has been allowed, integrating the Whatsms Api provided by Facebook, the sending of WhatsApps is allowed, and finally, integrating the AvSpeed SDK, the creation of chat rooms and videoconferences is allowed too. Since all these services are integrated into the management application, notifications can be sent according to the filters that the administrator wants. With the development of this application the first objective is achieved: to make the management work of the application administrators easier, and to help them in sending notifications to the members who are in charge of them, adding internal communications network within the NGO. The developed project can be extended and improved in several ways. In this sense, the following lines of future work are available: - Add some functionalities to basic users such as creating forums where they can share information, create video conferences with other members of the NGO, even if they do not belong to the same center or do not have administrator credentials, and be able to have a common file repository - Integrate a social network so that users can publish news, works, photos, ... and the members of the NGO can comment on them and have a conversation on the topic that has been uploaded by the NGO member who has made the publication. - Improve the authentication and data security system. - Implement a new version for mobile devices such as tablets, smartphones ... - Improve the functionalities or user interfaces according to the evaluations made by the users in the usability evaluation. 52 BIBLIOGRAFÍA [1] <<Elegir CRM>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://www.elegircrm.com/crm/que-es-un-crm [2]<<Sugar CRM Wikipedia>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://es.wikipedia.org/wiki/SugarCRM [3] <<SoftDoit Sugar CRM>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://www.softwaredoit.es/sugarcrm/sugarcrm.html [4] << Base CRM>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: http://www.appdegestion.com/app/base-crm.html [5] <<IDX ¿Qué es un CRM y para qué sirve?>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://www.innovadeluxe.com/que-es-un-erp-y-para-que-sirve/ [6] <<IEBS. ¿Qué es SAP y para qué sirve?>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://www.iebschool.com/blog/que-es-para-que-sirve-sap-management/ [7] <<SAP ERP Wikipedia>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://es.wikipedia.org/wiki/SAP_ERP [8] <<SAP ERP>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://www.sap.com/spain/products/enterprise-management-erp.html#key-capabilities [9] <<Infor LN ERP>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://www.infor.com/es-es/products/ln [10] <<Skype Wikipedia>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://es.wikipedia.org/wiki/Skype [11] <<Skype>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://www.skype.com/es/ [12] <<Slack Wikipedia>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://es.wikipedia.org/wiki/Slack_(software) 53 [13] <<Slack>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://slack.com/intl/es-es/ [14] <<Modelio>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://www.modelio.org/ [15] <<MySQL>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://www.mysql.com/ [16] <<MySQL Wikipedia>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://es.wikipedia.org/wiki/MySQL [17] <<C#>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://docs.microsoft.com/es-es/dotnet/csharp/tour-of-csharp/ [18] <<Lenguaje de programación C#>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://lenguajesdeprogramacion.net/c-sharp/ [19] <<XAML Wikipedia >>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://es.wikipedia.org/wiki/XAML#:~:text=XAML%20(acr%C3%B3nimo%20pronunciado %20xammel%20del,cual%20es%20uno%20de%20los%20%22 [20] <<Programación fácil WPF>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://programarfacil.com/blog/programacion-net-blog/que-es-wpf/ [21] <<Entity framework Tutorial>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://www.entityframeworktutorial.net/what-is-entityframework.aspx [22] <<Entity framework>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://docs.microsoft.com/es-es/dotnet/framework/data/adonet/ef/overview [23] <<Amazon Web Services Wikipedia>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://es.wikipedia.org/wiki/Amazon_Web_Services 54 [24] <<Amazon Web Services detalles SES>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://aws.amazon.com/es/ses/details/ [25] <<Amazon Web Services>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://aws.amazon.com/es/ses/ [26] <<Whatsms Api>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://whatsmsapi.com/ [27] <<AvSpeed>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://avspeed.com/ [28] <<Git>>. [En línea]. Revisado el 16 de junio de 2020. Disponible en: https://git-scm.com/ 55 ANEXOS Anexo 1: Guía de instalación Rápida 1. Lo primero es descargarse el instalador del mysql-community-5.6, y el instalador del conector de MySQL para Visual Studio, los cuales se encuentran en esta dirección la siguiente dirección dentro de la carpeta MySQL. Software Necesario TFG 2. Una vez descargado, se instala el MySQL community, que pide confirmar si se quiere que esa aplicación pueda hacer cambios en nuestro ordenador y se responde que sí. 3. A continuación, se llega a la siguiente ventana y se pulsa en la opción de Install MySQL Products, en la figura 21 se visualiza la pantalla de elección de la acción que se quiere que realice el instalador MySQL. Figura 21: Elección de la acción del instalador MySQL 4. Una vez que se pulsa en ese enlace, aparece la siguiente pantalla, se aceptan los términos de la licencia y se pulsa en Next >, en la figura 22 se muestra la pantalla en la que se tienen que aceptar los términos de uso en la instalación. 56 Figura 22: Aceptación de los términos de uso en la instalación MySQL 5. A continuación, aparece la siguiente pantalla, y se elige la opción de Developer Default, y se pulsa en el botón Next >, en la figura 23 se visualiza la opción que hay que escoger para la instalación Figura 23: Elección tipo de instalación MySQL 57 6. En la figura 24 se ve cómo va evolucionando la instalación Figura 24: Progreso de la Instalación MySQL 7. Ahora tiene que configurar el servidor de MySQL, en la figura 25 viene indicado el valor de los parámetros que tiene que introducir Figura 25: Primera parte configuración del servidor MySQL 8. Para terminar con la instalación del MySQL community se tiene que darle una contraseña al root, esta contraseña es sumamente importante, ya que luego se utilizará para acceder a la base de datos, desde código C#. En la figura 26 se observa la pantalla donde se tiene que introducir la contraseña del usuario root 64 Anexo 2: Guía de uso de la aplicación En este anexo se describe una guía de uso de la aplicación de acuerdo con los diferentes tipos de usuarios que pueden usarla. 1. Funcionalidades para los usuarios administradores a) Funcionalidades comunes a todos los tipos de administradores • Enviar avisos Todos los usuarios administradores, pueden enviar avisos a todos los usuarios, de los cuales tengan permisos . Para enviar cualquier tipo de aviso, existe una parte común, que es el filtrado de los usuarios a los cuales se quiere que llegue el aviso. Para ello el usuario pulsará en el botón “Enviar aviso”, y la aplicación le llevará a la pantalla para que filtre por campos y se envíe el aviso a los usuarios que cumplan dichos filtros. En la figura 37 se observa la pantalla principal donde el usuario puede realizar los filtros a para enviar la notificación a los usuarios los cuales cumplan dichos filtros Figura 37: Pantalla de filtrado Según el tipo de aviso que seleccione, le llevará a una pantalla u a otra 1) Crear videoconferencia Si el usuario pulsa en este botón la aplicación enviará un mensaje con un código para unirse a la videoconferencia a todos los usuarios seleccionados, y al usuario que administrador que ha convocado la videoconferencia le llevará a la pantalla para iniciar dicha videollamada y sala de chat. En la figura 38 se visualiza un ejemplo de creación de una sala de chat y videoconferencia. 65 Figura 38: Pantalla de inicio de la videoconferencia A continuación, el usuario pulsará en el botón “Iniciar”. En este momento se activará la sala de chat y videoconferencia como se puede ver en la figura 39 Figura 39: Pantalla de sala de chat y videoconferencia 66 2) Enviar Correo electrónico Al pulsar en este botón la aplicación le llevará a la pantalla para que el usuario pueda enviar correos electrónicos. En la figura 40 se ve la pantalla de Mailing. Figura 40: Pantalla de Mailing El usuario, escribirá el asunto del correo, y el cuerpo del mensaje pudiendo además adjuntar archivos como se ven en la figura 41 Figura 41: Pantalla de Mailing con archivos adjuntos Tras pulsar, en el botón de “Enviar correo”, se enviará este correo electrónico a todos los miembros seleccionados anteriormente. 3) Enviar WhatsApp Tras pulsar el botón de “Enviar WhatsApp”, la aplicación le llevará a la pantalla para que puede enviar el WhatsApp, a los miembros seleccionados. En la figura 42 se puede observar la pantalla de envío de WhatsApp 67 Figura 42: Pantalla de envío de WhatsApps Cuando el usuario haya terminado de escribir el mensaje, le dará al botón de enviar, y el mensaje se enviará a todos los usuarios anteriormente seleccionados • Consultar / modificar la base de datos Cuando uno de los administradores, quiera modificar el campo centro, grupo, grado de algunos de los usuarios de los que tiene permisos, pulsará el botón “Actualizar” del usuario al que quiere modificar alguno de dichos campos. En la figura 43 se observa un ejemplo en que se va a actualizar el usuario Federico Gómez Figura 43: Pantalla principal del Administrador Actualizar La aplicación le enviará a la pantalla de actualización de usuarios, para que el administrador se disponga a actualizar uno de los mencionados campos En la figura 44 se visualiza un ejemplo de la pantalla de actualización de usuarios Figura 44: Pantalla de actualización de usuarios 68 Cuando ya se hayan actualizado los campos, pulsará en el botón “Actualizar”, se actualizarán los cambios en la base de datos, y la aplicación le enviará a la pantalla principal. Tanto para eliminar a un usuario como para añadir a un nuevo usuario a la aplicación, el administrador ha de ser un administrador local de la aplicación. Para eliminar basta con pulsar el botón de eliminar, del usuario que deseamos eliminar. En la figura 45 se observa un ejemplo para eliminar al usuario Juan Carlos Figura 45: Pantalla principal administrador local eliminación de usuarios A continuación, nos saldrá un mensaje de precaución como el de la figura 46, para preguntarnos si estamos seguro de querer realizar la siguiente acción, ya que es una función delicada de cara a la persistencia de los datos Figura 46: Pantalla aviso eliminación de usuarios Al pulsar que “Sí”, se elimina definitivamente al miembro de la aplicación Para insertar a un nuevo miembro a la aplicación, el usuario administrador deberá pulsar en el botón “Insertar” A continuación, la aplicación le llevará a la pantalla de inserción de nuevos miembros, como se observa en la figura 47. 69 Figura 47: Pantalla de inserción de usuarios Para la inserción de usuarios hay dos posibilidades: - La primera manera de inserción de nuevos usuarios es la más rudimentaria y en ella el administrador tiene que ir copiando todos los datos de uno en uno, en sus respectivos campos. - La segunda manera, es más fácil para los administradores. En primer lugar, el administrador tiene que descargarse el archivo que le llega al correo electrónico con una nueva petición de registro. En la figura 48, se observa un ejemplo de un correo electrónico que contiene un adjunto con los datos de la persona a insertar 70 Figura 48: Correo electrónico petición de registro En segundo lugar, el administrador pulsará en el botón de “Importar archivo”. Seleccionando a continuación el archivo que desea importar. Realizando esta operación como se ve en la figura 49 Figura 49: Importar archivo de usuario A continuación, se rellenan los campos automáticamente, como se puede ver en el ejemplo de la figura 50 Figura 50: Pantalla de inserción de usuarios campos rellenos En ambos casos el administrador pulsará en el botón “Aceptar”, y el nuevo miembro quedará insertado en la aplicación. 71 A continuación, le llegará un correo a dicho miembro indicado, que ya puede iniciar sesión en la aplicación. b) Funcionalidades comunes a los administradores generales y provinciales • Gestión de permisos Los administradores provinciales y generales pueden gestionar los permisos que tienen los usuarios en la aplicación Como se ha explicado anteriormente en el capítulo cuatro, la estructura de permisos es piramidal, por lo que si un administrador añade un permiso a un usuario le convierte en un administrador local, y si un administrador general añade un permiso a un cierto usuario le convierte en un administrador provincial. Tanto para los administradores generales como para los administradores provinciales, el proceso para añadir un nuevo permiso es el mismo. En la pantalla de administrador debe pulsar en el botón “Insertar permiso”, de aquel usuario al que le quiera añadir un permiso, como se puede ver en el ejemplo de la figura 51, en el que se inserta un permiso al usuario Juan Carlos. Figura 51: Pantalla principal del administrador Insertar permiso Para eliminar un permiso, el administrador debe pulsar en el botón “Eliminar permiso”, del usuario al que quiere eliminar el permiso. Cuando a un usuario le eliminan un permiso se convierte automáticamente en un usuario básico de la aplicación 2. Funcionalidades para los usuarios básicos • Pedir petición de registro Cuando hay una persona interesada en unirse a la ONG, tiene que pedir una petición de registro, para introducirla en la base de datos de la ONG. 72 Para ello el futuro usuario desde la pantalla de Login pulsará en el botón “Pedir petición de usuario” En la figura 52 se visualiza la pantalla de Login, en la que un usuario está pulsando sobre el botón de “Petición de registro” Figura 52: Pantalla de Login Petición de registro Tras pulsar en este botón, la aplicación nos llevará a la pantalla para pedir la petición de registro como en la figura 53. Figura 53: Pantalla de Petición de registro En esta pantalla rellenaremos nuestros datos, y pulsaremos en el botón “Aceptar”. A continuación, se enviará un correo electrónico al administrador local del centro al que queremos empezar a tomar parte en la ONG. Cuando el administrador nos inserte en la aplicación, nos llegará un correo electrónico de la ONG, diciéndonos que ya podemos iniciar sesión en la aplicación 73 3. Funcionalidades compartidas entre todos los tipos de usuarios • Login En la figura 54 se visualiza la pantalla de Login. Figura 54: Pantalla de Login Para que un usuario pueda hacer Login en la aplicación deberá estar registrado. El usuario, introducirá su usuario y contraseña y accede a su pantalla principal. En caso de que sea un usuario administrador la aplicación se visualizará como el ejemplo de la figura 55 Figura 55: Pantalla principal del administrador En caso de que sea un usuario básico, la aplicación se visualizara como se ve en el ejemplo de la figura 56 80 Figura 64: Cuestiones desde el punto de vista de los administradores (3) En la figura 65 se observa la primera parte de las preguntas de la sección de los usuarios básicos 81 Figura 65: Cuestiones desde el punto de vista de los usuarios básicos (1) En la figura 66 se visualiza la segunda parte de las preguntas de la sección de los usuarios básicos Figura 66: Cuestiones desde el punto de vista de los usuarios básicos (2) 82 En la figura 67 se observa las preguntas de satisfacción general de la aplicación Figura 67: Cuestiones de satisfacción general