Vista previa del material en texto
eCarta: Toma de pedidos y gestión de negocios gastronómicos Máster Universitario en Desarrollo de Aplicaciones y Servicios Web Trabajo Fin de Máster Autor: Oscar Trujillo Morales Tutor/es: Santiago Meliá Beigbeder Junio 2022 Memoria del proyecto Fin de Master – Máster Web 2021-2022 1 1.Índices Índice de Contenido 1. Índices ................................................................................................................................ 1 Índice de Contenido ................................................................................................................ 1 Índice de Figuras .................................................................................................................... 3 Índice de Tablas ...................................................................................................................... 4 2. Introducción ........................................................................................................................ 5 Propósito del proyecto ............................................................................................................ 5 Objetivos y motivación del proyecto ...................................................................................... 6 3. Requisitos: Visión y Glosario ............................................................................................. 8 Modelado de Requisitos ......................................................................................................... 8 Glosario ............................................................................................................................... 10 Modelo I* ............................................................................................................................. 12 Modelado de Interfaz de Usuario ......................................................................................... 13 Administración Web ......................................................................................................... 13 Móvil ................................................................................................................................ 17 Seguridad ............................................................................................................................ 18 4. Análisis y Diseño .............................................................................................................. 19 Modelo de dominio .............................................................................................................. 20 Descripción de Arquitectura ................................................................................................. 21 Tecnologías utilizadas ...................................................................................................... 23 Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: Oscar Trujillo Morales 2 Descripción de la funcionalidad ....................................................................................... 25 5. Pruebas de Aceptación ..................................................................................................... 29 Pruebas unitarias ................................................................................................................... 33 Otras pruebas realizadas ....................................................................................................... 33 Prestaciones Opcionales del proyecto .................................................................................. 33 6. Conclusiones .................................................................................................................... 34 7. Bibliografía ....................................................................................................................... 36 8. Anexos .............................................................................................................................. 38 Anexo 1. Manual de instalación ........................................................................................... 38 Servidor SQL Server ........................................................................................................ 38 Servidor web ..................................................................................................................... 38 Cliente encargado ............................................................................................................. 38 Cliente empleado .............................................................................................................. 39 Anexo 2. Estrategia SEO y estado de la competencia .......................................................... 40 Anexo 3. Repositorios de código ......................................................................................... 43 Memoria del proyecto Fin de Master – Máster Web 2021-2022 3 Índice de Figuras Figura 1 Modelo I* ................................................................................................................... 12 Figura 2 Mockup de la web eCarta .......................................................................................... 14 Figura 3 Captura de pantalla de la web eCarta ......................................................................... 14 Figura 4Mockups de la app eCarta ........................................................................................... 17 Figura 5 Captura de pantalla de la aplicación móvil eCarta ..................................................... 18 Figura 6 Flujo JWT .................................................................................................................. 19 Figura 7 Diagrama de Entidad-Relación .................................................................................. 20 Figura 8 Diagrama clases ......................................................................................................... 21 Figura 9 Fragmento de las fachadas REST implementadas ..................................................... 22 Figura 10 Principales tecnologías utilizadas ............................................................................ 24 Figura 11 Elementos principales de la arquitectura del proyecto ............................................ 28 Figura 12 Algunos contenidos de las asignaturas del Máster aplicados al TFM ..................... 35 Figura 13 Sugerencias de palabras clave para estrategia SEO ................................................. 41 Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: Oscar Trujillo Morales 4 Índice de Tablas Tabla 1 Definición de Requisitos ............................................................................................... 8 Tabla 2 Gráficos estadísticos .................................................................................................... 15 Tabla 3 Versiones de las software utilizados en el proyecto .................................................... 24 Tabla 4 Controladores implementados ..................................................................................... 26 Tabla 6 Historia de usuario 1 ................................................................................................... 29 Tabla 7 Historia de usuario 2 ................................................................................................... 30 Tabla 8 Historia de usuario 3 ................................................................................................... 30 Tabla 9 Historia de usuario 4 ................................................................................................... 31 Tabla 10 Historia de usuario 5 .................................................................................................31 Tabla 11 Historia de usuario 6 ................................................................................................. 32 Tabla 11 Resultados de búsqueda de palabras clave ................................................................ 40 file:///D:/Universidad/TFM/Oscar%20Trujillo%20Morales%20-%20Memoria%20TFM%20-%20eCarta.docx%23_Toc105963755 file:///D:/Universidad/TFM/Oscar%20Trujillo%20Morales%20-%20Memoria%20TFM%20-%20eCarta.docx%23_Toc105963756 file:///D:/Universidad/TFM/Oscar%20Trujillo%20Morales%20-%20Memoria%20TFM%20-%20eCarta.docx%23_Toc105963757 file:///D:/Universidad/TFM/Oscar%20Trujillo%20Morales%20-%20Memoria%20TFM%20-%20eCarta.docx%23_Toc105963758 file:///D:/Universidad/TFM/Oscar%20Trujillo%20Morales%20-%20Memoria%20TFM%20-%20eCarta.docx%23_Toc105963759 file:///D:/Universidad/TFM/Oscar%20Trujillo%20Morales%20-%20Memoria%20TFM%20-%20eCarta.docx%23_Toc105963760 Memoria del proyecto Fin de Master – Máster Web 2021-2022 5 2.Introducción Existe un alto potencial para el desarrollo de software para la gestión de restaurantes y negocios afines, ya que, en general, este tipo de herramientas facilita tareas habituales dentro de ese ámbito, como son el manejo de los pedidos, los inventarios e insumos del negocio, etc. Un software de gestión de negocios gastronómicos hace que estos sean más rentables y eficientes: se gana en agilidad en los procesos de administración, y los clientes quedan más satisfechos al reducirse el tiempo de espera en recibir los servicios. En este proyecto nos proponemos implementar una aplicación móvil que permita a los empleados de un restaurante o negocio similar ordenar pedidos de acuerdo con diferentes platos y mesas del local donde está. Como complemento, para manejar detalles necesarios para esta tarea y realizar otras tareas de administración, se implementa también un sitio web. En esta introducción se tomarán en cuenta brevemente el estado del arte del tipo de software que estamos creando (Anexo 2), para luego pasar al propósito, los objetivos y la motivación de este proyecto. Propósito del proyecto Luego de haber analizado estado del arte del ámbito del software de gestión de negocios gastronómicos (que están listadas al final del Anexo 2), planteamos como propósito principal de este TFM la implementación de productos que permitan, en conjunto, manejar las tareas básicas que consideramos imprescindibles en este dominio: • La gestión de varios negocios • El control de los empleados, e insumos de cada uno • La gestión de mesas • El control de los pedidos (comandas) • La gestión del estado financiero del negocio • La gestión de empleados, incluida la evaluación de su desempeño Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: Oscar Trujillo Morales 6 • Información gráfica descriptiva que resume o El estado financiero del negocio (ganancias vs. pérdidas) o Los productos más vendidos o Una comparativa mensual de los ingresos en el año o las destrezas de los empleados, en indicadores básicos, como son: ▪ Comunicación ▪ Resolución de problemas ▪ Cumple las tareas ▪ Trabajo diario • Precios muy económicos, sobre todo para los pequeños negocios • Sencillez y minimalismo en la interfaz (para trabajo futuro: con funcionalidades personalizadas según la solicitud de los clientes) En general, las ventajas que ofrecería la solución que proponemos está dada en que: • Ninguno de los productos de la competencia (Ver Anexo 2) tiene, en su conjunto, todas las prestaciones mencionadas anteriormente. • Se adapta a negocios grandes (de varios locales) o pequeños (de uno solo) Por lo cual tenemos dos productos a implementar: • Un sitio web la gestión de negocios gastronómicos • Una aplicación móvil para el manejo de los pedidos en un negocio específico Objetivos y motivación del proyecto Por lo dicho anteriormente, los objetivos principales de este Proyecto de Fin de Máster quedan definidos de esta manera: Crear de una aplicación móvil que permita: - Manejar las mesas y los platos de un negocio - Manejar los pedidos que hace un empleado de un negocio Memoria del proyecto Fin de Master – Máster Web 2021-2022 7 - Contabilizar los pedidos hechos por el empleado Crear de una aplicación web que permita: - La gestión de varios negocios gastronómicos - La gestión de los insumos y trabajadores en cada uno de los mismos - El manejo de las finanzas de cada negocio (ingresos y egresos) - La visualización de gráficas que resuman el estado de un negocio La motivación del trabajo es la necesidad de simplificar los procesos relacionados con la gestión de varios negocios gastronómicos desde una misma aplicación, así como la gestión de los pedidos y las ventas de los mismos, desde dispositivos móviles o desktop, sincronizando la información entre estos. Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: Oscar Trujillo Morales 8 3.Requisitos: Visión y Glosario En esta sección incluimos el modelo de los requisitos -funcionales y no funcionales- de nuestro proyecto, así como una breve descripción de su alcance y limitaciones. Más adelante, se presenta un glosario con los principales términos que se manejan en el contexto en que nos encontramos -negocios gastronómicos. Esta sección contiene, además, el Modelo I* para el modelado por objetivos, así como una descripción con capturas de los mockups y, por último, ejemplos las interfaces de usuario implementadas en este proyecto. Modelado de Requisitos Utilizamos el conocido mecanismo Modelamiento de requisitos funcionales y no funcionales para un proyecto de software. Esto nos serviría en un contexto empresarial, por ejemplo, para intentar abordar de la manera más clara posible lo que un cliente de negocios de un restaurante, cafetería u otro similar -que imaginamos- quiere. La idea fundamental de este artefacto es recopilar las necesidades de forma organizada teniendo en cuenta que sean adecuados, intentando que no existan equívocos, de manera que, a partir de este artefacto, construyamos los productos que queremos implementar. (Kumar, et al., 2018) Tabla 1 Definición de Requisitos Requisito Tipo Importancia No. Gestión de pedidos, cuentas e informes. Funcional Esencial 1 Gestión de cuentas de los empleados (darles alta o baja). Funcional Importante 2 Memoria del proyecto Fin de Master – Máster Web 2021-2022 9 Posibilidad de manejar varios negocios Funcional Preferible 3 Visualización de los datos relacionados a los negocios. Funcional Esencial 4 Evaluación del desempeño de los empleados Funcional Importante 5 Gestión y configuración de los insumos. Funcional Importante 6 Se requiere de una vista que sea utilizada por los empleados para la introducción de las comandas recibidas, crear cuentas, cobrar. Para ello tiene que tener los siguientes elementos: Funcional Esencial 7 - Visualización y gestión de los datos platos disponibles. Funcional Esencial 8 - Gestión de pedidos Funcional Esencial 9 Gestión de pagos Funcional Importante 10 Personalizar la interfaz en varios idiomas Funcional Preferible 11 - Mostrar la interfaz de usuario en varios idiomas Funcional Preferible 12 Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: Oscar Trujillo Morales 10 - Mostrar la interfaz de administrador en varios idiomas Funcional Preferible 13 Personalizar el ambiente de la aplicación Funcional Preferible 14 Diseño responsivo No funcional Importante 15 Efectuar el pago de los pedidos Funcional Esencial 16 Registro de las acciones de los diferentes actores en el sistema Funcional Preferible 17 Alcance y limitaciones de la solución En el caso del producto Web, se ejecuta en el navegador, y por tanto es independiente del sistema operativo del usuario. El producto para móviles será implementado inicialmentesolo para Android. Glosario 1. Insumos: está formado por todo el stock del negocio gastronómico, incluyendo los inventarios. Memoria del proyecto Fin de Master – Máster Web 2021-2022 11 2. Interfaz de usuario: es el conjunto de los controles y canales sensoriales mediante los cuales el usuario puede comunicarse con el sistema. 3. Interfaz de administrador: es el conjunto de los controles y canales sensoriales mediante los cuales el administrador puede comunicarse con el sistema y gestiona más detalles sobre los otros usuarios. 4. Pedidos: la expresión escrita (de forma digital) de los deseos del cliente que permita conocer, recordar, preparar, servir el pedido del cliente de forma adecuada. 5. Informes: un documento que tiene como fin comunicar, dar cuenta de las diferentes situaciones en el negocio gastronómico, informe de evaluación de los trabajadores, platos más vendidos, períodos del año en más ventas hubo. 6. Datos: conjunto de informaciones permiten dar la situación actual del negocio de forma general. Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: Oscar Trujillo Morales 12 Modelo I* Cada uno de los usuarios del proyecto deberá poder realizar un conjunto de tareas, como se muestra en el Modelo I* que aparece en la siguiente figura: Figura 1 Modelo I* Como se aprecia en la figura, tenemos dos tipos de usuarios, los “encargados” y los “empleados”, que describimos se describen a continuación: ● El encargado del sistema es la persona que se encargará de gestionar los negocios, así como los empleados, mesas, platos, operaciones de caja e insumos de cada uno de los negocios ● Los empleados son las personas que utilizarán la aplicación como medio para apuntar pedidos y registrar el cobro Memoria del proyecto Fin de Master – Máster Web 2021-2022 13 Modelado de Interfaz de Usuario Administración Web La administración web consiste en una vista Web (responsive) que proporciona diferente servicios acceso a los usuarios encargados de la administración del sistema. Únicamente accederán a estos servicios los usuarios que se hayan registrado en el sistema. La siguientes dos figuras muestran mockups de la interfaz web mencionada, a continuación aparece una captura de la aplicación web ya implementada: Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: Oscar Trujillo Morales 14 Figura 2 Mockup de la web eCarta Figura 3 Captura de pantalla de la web eCarta Memoria del proyecto Fin de Master – Máster Web 2021-2022 15 Personalización Para obtener una mejor satisfacción del cliente las vistas permitirán una personalización en la que podrá modificar el modo de presentación de la interfaz (modo claro/oscuro). Además, es posible elegir el idioma en que se muestra la interfaz, con dos opciones: Español e Inglés. Estadísticas: La siguiente tabla resume los gráficos estadísticos generados en el sitio web: Tabla 2 Gráficos estadísticos Informe del comportamiento de los ingresos por meses Gráfico que refleja los productos más vendidos Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: Oscar Trujillo Morales 16 Una comparativa de los ingresos vs gastos del restaurante Análisis de las destrezas de los empleados • Comunicación • Resolución de problemas • Cumple las tareas • Trabajo diario Memoria del proyecto Fin de Master – Máster Web 2021-2022 17 Móvil Consiste en una aplicación móvil que provee diferentes servicios al acceso a los usuarios finales de la misma. Únicamente accederán a estos servicios los usuarios que se hayan registrado en el sistema de Administración. Desde esta vista, los usuarios podrá cambiar el estado de pedido de una mesa, así como añadir o quitar productos de pedido. Una vez cerrado el pedido y cobrado, se pasa la operación a la caja para ser aprobada por el encargado. Figura 4Mockups de la app eCarta Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: Oscar Trujillo Morales 18 Figura 5 Captura de pantalla de la aplicación móvil eCarta Seguridad Para el cifrado de las contraseñas que se almacenan en la base de datos, se utilizó el paquete NuGet “BCrypt.Net-Next”, una versión de BCrypt.Net que utiliza una variante del algoritmo de cifrado Blowfish1. Para el manjeo de la autenticación, tanto en la aplicación móvil como en la web, se utilizó el estándar JSON Web Token (JWT). Haciendo uso de este garantizamos que los datos enviados entre las aplicaciones y el Backend válidos y seguros, que funciona de manera similar a cómo se muestra en la siguiente imagen, tomada de (García, 2016). 1 Blowfish es un cifrado de bloque simétrico que se puede usar de manera efectiva para el cifrado y la protección de datos. Es capaz de utilizar claves de longitud variable, de 32 bits a 448 bits, lo que lo hace ideal para proteger datos. Un estudio de cifrado con datos de entrada de diferentes contenidos y tamaños, para diferentes algoritmos de clave secreta como DES, 3DES, AES, y Blowfish, mostró que este último tiene muy buen desempeño en comparación con otros algoritmos. (Singh, s.f.). Memoria del proyecto Fin de Master – Máster Web 2021-2022 19 Figura 6 Flujo JWT La implementación de la capa de seguridad de este proyecto está basada en el tutorial disponible en la página (Labs, 2021), que contiene un ejemplo de autenticación utilizando ASP.NET Core y Angular JWT; así como pruebas realizadas para el inicio de sesión y cierre de sesión. Parte del código de la parte de seguridad de nuestro proyecto está basado en ese tutorial, en especial lo que está dentro de la carpeta “InfrastructuraSeguridad”. 4.Análisis y Diseño En esta sección se muestra el modelo de dominio, capturado del diagrama de la base de datos generado con Sql Server Management Studio. A continuación, se muestra un diagrama de clases, semejante al primero, e ilustra las relaciones y restricciones del dominio. En la siguiente sub-sección se describen las tecnologías utilizadas para las soluciones generadas, así como una descripción de las funcionalidades. Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: Oscar Trujillo Morales 20 Modelo de dominio En la siguiente figura se muestra el modelo de dominio, que ilustra las distintas entidades del dominio del problema, sus atributos y relaciones. Figura 7 Diagrama de Entidad-Relación Estrategia del modelado de clases Se utilizó una estrategia “Database-First” que proporciona Entity Framework para crear las clases, basado en la base de datos descrita anteriormente. En otras palabras, se utiliza la técnica de ingeniería inversa: generación automática de los modelos a partir de la base de datos (Anbazhagan, 2017). El proceso de “scaffolding” genera archivos de contexto de base de datos y modelos de datos correspondientes. Estos son los modelos generados. Memoria del proyecto Fin de Master – Máster Web 2021-2022 21 Figura 8 Diagrama clases Descripción de Arquitectura La lógica de la interfaz de usuario está implementada en una única página (SPA) que se hace llamadas a una API que sigue un diseño del estilo de arquitectura REST. Para implementar la API mencionada, se utilizó en una tecnología Web basada en el framework ASP .Net Core. En las vistas clientes, se proporcionó una vista Web y una vista móvil. Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: Oscar Trujillo Morales 22 En la vista Web se utilizó una tecnología SPA (Single Page Application): Angular. En la vista móvil se eligió una solución híbrida: Ionic. Por su lado, para la parte servidora se optó por una arquitectura monolítica, con una fachada de servicios por cada cliente (encargado y camarero), y una lógica de negocio y una BBDD común. Para la definición delas fachadas se utilizó el REST (HTTP/JSON) con ASP.Net Core Web API. Para documentar y probar estos servicios web, se utilizó Swagger. En esta captura se muestra un fragmento de las fachadas generadas. Figura 9 Fragmento de las fachadas REST implementadas Memoria del proyecto Fin de Master – Máster Web 2021-2022 23 Para el intercambio de la información entre las diferentes capas utilizaremos el patrón Transfer Object Assembler (para enviar los datos complejos de forma estructurada entre la capa de negocio y la de presentación). Para la capa de lógica de negocio elegimos un modelo de programación que nos permita mapear las estructuras de nuestra base de datos relacional. Para ello, hacemos uso del framework Objeto-Relacional (ORM) Entity Framework. De esta forma, queda separada la lógica orientada a objetos del acceso de una capa de datos relacional. Además, debemos asegurar la calidad del sistema implementando las pruebas sobre el código, a partir de los requisitos. Por un lado, definimos las pruebas unitarias para la capa de lógica de negocio y las pruebas de integración de la capa de servicio mediante el framework MSTest. Tecnologías utilizadas 1. ASP.NET Core 2. Entity Framework Core (mapea las instancias de nuestras entidades como objetos, para realizar operaciones CRUD y consultas LINQ a las entidades de forma sencilla) 3. Gherkin, para la realización de pruebas 4. JWT, para la autenticación 5. SQL Server (gestor que almacena nuestra base de datos) Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: Oscar Trujillo Morales 24 Figura 10 Principales tecnologías utilizadas Versiones de las herramientas utilizadas Tabla 3 Versiones de las software utilizados en el proyecto Software Versión Sistema Operativo Windows 10 Home 64-bit Microsoft Visual Studio Community 2019 Version 16.11.10 VSCode 1.67.1 Target framework del proyecto .NET 5.0 SQL Server MSSQL15.SQLEXPRESS SQL Server Management Studio 15.0.18410.0 Angular 12.2.10 NodeJS v14.18.1 npm 6.14.15 database backend frontend Memoria del proyecto Fin de Master – Máster Web 2021-2022 25 Paquetes NuGet instalados en el proyecto Web API: BCrypt.Net-Next Version=4.0.3 Microsoft.AspNetCore.Authentication.JwtBearer Version=5.0.4 Microsoft.EntityFrameworkCore.SqlServer Version=5.0.16 Microsoft.EntityFrameworkCore.Tools Version=5.0.16 Microsoft.VisualStudio.Web.CodeGeneration.Design Version=5.0.2 Swashbuckle.AspNetCore Version=6.1.0 Otras herramientas Para el diseño de los mockups: https://mockflow.com/ Para el modelo i*: https://www.cin.ufpe.br/~jhcp/pistar/tool/# Sistema de control de versiones: Git, servicio https://github.com/ Descripción de la funcionalidad En este apartado describimos brevemente la funcionalidad básica de la aplicación entregada. El “lado del servidor” (la parte de nuestra aplicación que no es directamente visible para el usuario) es, en nuestro caso, una Web API (esto quiere decir que las aplicaciones que aquí proponemos están diseñadas para funcionar a través de internet, por lo cual nuestros clientes accederían a un servidor remoto desde el navegador de sus propios dispositivos, sin necesidad de instalar software adicional). A continuación, listamos los controladores implementados en la Web API, que son los encargados de responder a las peticiones que hacen los usuarios: https://mockflow.com/ https://www.cin.ufpe.br/~jhcp/pistar/tool/ https://github.com/ Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: Oscar Trujillo Morales 26 Tabla 4 Controladores implementados Controlador Funciones Autenticación EmpleadoLogin, EncargadoLogin, GetCurrentUser, Logout, RefreshToken Empleados GetEmpleadoPorDni, GetNegociosPorEncargado, GetEmpleados, GetEmpleado, PutEmpleado, PostEmpleado, DeleteEmpleado Encargados CambiarPasswdEmpleados, GetEncargadoPorDni, GetEncargados, PutEncargado, PostEncargado, DeleteEncargado EvaluaciónEmpleados GetEvalEmpPorEmp, GetEvalEmpPorNeg, GetEvaluacionEmpleados, GetEvaluacionEmpleado, PutEvaluacionEmpleado, PostEvaluacionEmpleado, DeleteEvaluacionEmpleado Insumos GetInsumosPorNegocio, GetInsumos, GetInsumo, PutInsumo, PostInsumo, DeleteInsumo Mesas GetMesasPorNegocio, GetMesas, GetMesa, PutMesa, PostMesa, DeleteMesa Negocios GetNegociosPorEncargado, GetNegocios, GetNegocio, PutNegocio, PostNegocio, DeleteNegocio OperacionesCajas GetTotalCajaPorNegocio, GetOperacionesCajasDia, GetOperacionesCajas, GetOperacionCaja, PutOperacionCaja, PostOperacionCaja, DeleteOperacionCaja Platos GetPlatosPorEncargado, GetPlatos, GetPlato, PutPlato, PostPlato, DeletePlato Nota: En cursivas los nombres de los métodos que han sido implementados manualmente, el resto han sido generados utilizando las herramientas “Scaffolding” de ASP.NET que proporciona Visual Studio. Memoria del proyecto Fin de Master – Máster Web 2021-2022 27 En cuanto al “lado del cliente”, es decir, el código que se ejecuta dentro del navegador, ha sido implementado utilizando Angular (o Ionic/Angular en el caso de la app para móviles) y muestra el contenido mostrando al usuario utilizando HTML, estilos SCSS (o SASS). Cada componente de Angular utiliza servicios implementados en TypeScript, que proporcionan diferentes servicios que no están vinculados directamente a las vistas, logrando que el código sea modular, reusable y mantenible. Las solicitudes HTTP llegan desde el navegador al backend. Cada solicitud contiene datos en el cuerpo de la solicitud. El servidor responde a cada solicitud enviado los datos en formato JSON. Para preparar el la respuesta (“response”), el backend usualmente realiza una o más consultas a la base de datos, en este caso un servidor SQL Server. Los objetos de la base de datos son manejados como objetos, gracias al uso del ORM Entity Framework, que genera un objeto contexto que contiene en tiempo de ejecución una copia en memoria de los datos almacenados en la base de datos. Las tablas son mapeadas en clases de entidad. En el caso de los pedidos hechos por el empleado, estos se almacenan temporalmente en el almacenamiento local del dispositivo (localstorage) en formato JSON, hasta que el pedido es confirmado y pasa a la base de datos. En la siguiente figura se muestra de manera simplificada la comunicación entre los elementos mencionados: Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: Oscar Trujillo Morales 28 Figura 11 Elementos principales de la arquitectura del proyecto Memoria del proyecto Fin de Master – Máster Web 2021-2022 29 5.Pruebas de Aceptación Con el objetivo de aclarar las funcionalidades definidas más arriba (Sección 3), vistas ahora desde la perspectiva del usuario que va a utilizar la aplicación, vamos a utilizar historias de usuario. Para cada una de las historias de usuario existe una prueba de aceptación y decidir si se acepta el software, se necesitan criterios claros: pruebas de aceptación2. Con cada una de estas pruebas, intentamos verificar que los sistemas que estamos implementando se comportan de la manera esperada, tal y cómo entendimos al realizar la captura de requisitos. Registro de pedidos 2 La metodología para conectar historias de usuario con criterios de aceptación o validación está documentada por autores como (Sibal, 2018) Historia de usuario Como [camarero], Quiero [registrar los platos y cantidades que me solicita un cliente] Para poder [atender un pedido]. Criterios de validación Dado que [un cliente realiza un pedido], cuando [se introducen las comandas en el sistema] entonces [se crea un pedido] Y [se calcula automáticamente el precio acumulado a medida que se introducen los datos]. Tabla 5 Historia de usuario 1 Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: OscarTrujillo Morales 30 Cierre de pedido Control de pedidos pendientes Historia de usuario Como [encargado], Quiero [consultar un listado de las mesas que están en estado “en preparación”, es decir, que no ha sido servida] Para poder [tener un control de la eficiencia de los cocineros]. Criterios de validación Dado que [se ha realizado un pedido], cuando [se consulta el estado del pedido] entonces [aparece el estado actual del pedido en tiempo real]. Historia de usuario Como [camarero], Quiero [contabilizar los pedidos hechos una vez cerrados] Para poder [tener un registro de todas las operaciones llevadas en el día]. Criterios de validación Dado que [un cliente paga un pedido], cuando [se cierra el pedido] entonces [se muestra un registro de las operaciones realizadas hasta el momento] Tabla 6 Historia de usuario 2 Tabla 7 Historia de usuario 3 Memoria del proyecto Fin de Master – Máster Web 2021-2022 31 Control de pedidos procesados y no pagados Control de ventas Historia de usuario Como [encargado], Quiero [consultar los pedidos de venta procesados clasificándolos por productos y el importe generado] Para poder [conocer cuáles son los productos más vendidos]. Criterios de validación Dado que [han sido registrado pedidos], cuando [consulto las estadísticas] entonces [obtengo un listado de operaciones de caja, que puedo organizar por productos]. Historia de usuario Como [encargado], Quiero [consultar un listado de los pedidos de venta que han sido entregados y que están pendientes de pago] Para poder [tener un control de la eficiencia de los camareros]. Criterios de validación Dado que [existen pedidos registrados pendientes de procesar], cuando [filtro la página de pedidos] entonces [se muestra el resultado de los pedidos pendientes]. Tabla 8 Historia de usuario 4 Tabla 9 Historia de usuario 5 Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: Oscar Trujillo Morales 32 Histórico de ventas Historia de usuario Como [encargado], Quiero [consultar el flujo de los ingresos a través del tiempo] Para poder [conocer el momento del año en que más se vende]. Criterios de validación Dado que [han sido registrado pedidos], cuando [consulto las estadísticas] entonces [obtengo un listado de operaciones de caja, que se muestran en una gráfica de tiempo]. Tabla 10 Historia de usuario 6 Memoria del proyecto Fin de Master – Máster Web 2021-2022 33 Pruebas unitarias Se prueban los diferentes casos de valores de entrada para el cálculo de la tasa de crecimiento. Caso 1: Valores inicial y final, positivos, valor final mayor que valor inicial (crecimiento positivo). También se realizó un “feature” de Gherkin para este caso. Caso 2: Valores inicial y final, iguales: crecimiento cero (se comprueba que se obtiene el mismo resultado si los valores inicial y final son iguales a cero) Caso 3: Valor inicial igual a cero. Para evitar una división por 0, se pone 0.01 en el denominador, de forma que se obtiene una tasa de crecimiento muy alta (suponiendo que el valor final sea positivo) Caso 4: Valores inicial mayor que valor final: crecimiento negativo. Otras pruebas realizadas Devuelve Código de error 401 al intentar loguear con credenciales no válidas: Devuelve login satisfactorio y token válido con credenciales válidas Devuelve el estado de la caja (haciendo un mock de los datos y llamando al controlador correspondiente), con el incremento, el decremento y la tasa de crecimiento. Prestaciones Opcionales del proyecto A continuación, se detalla un conjunto mejoras que han sido incorporadas al proyecto (son de carácter no funcional): • La parte de administración ha sido realizada con una tecnología SPA. (Utilización de un framework SPA para Web: Angular) • Utilización de un framework híbrido para móviles (Ionic) • Internacionalización (Angular i18n). Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: Oscar Trujillo Morales 34 6.Conclusiones En este proyecto de fin del Máster Universitario Oficial de Desarrollo de Aplicaciones y Servicios Web, hemos hecho uso de las tecnologías vistas en clase de las diferentes asignaturas vistas en el curso. Entre ellas: • Servicios web REST • Bases de datos • Seguridad en REST con JWT • Frontend con Angular Habíamos visto estas tecnologías de forma aislada. En este TFM, hemos tenido oportunidad de apreciar cómo se articulan y se comunican entre ellas. En el siguiente esquema resaltamos algunos de los contenidos de las asignaturas del Máster que han tenido que ver con este TFM: Memoria del proyecto Fin de Master – Máster Web 2021-2022 35 Figura 12 Algunos contenidos de las asignaturas del Máster aplicados al TFM Diseño de Interfaces de Usuario • Identificación de elementos clave del UI •Estilos visuales Programación Avanzada en Entornos de Escritorio •Acceso a datos • i18n Desarrollo de Aplicaciones Web • ASP.net CORE e interacción con frameworks clientes XML •Reglas de sintaxis XML (en el manejo de los paquetes NuGet del proyecto BE) Pruebas y Control de Calidad •Pruebas unitarias (MS Test y Specflow •Pruebas de integración Desarrollo de Interfaces Ricos para Internet •Framework para aplicaciones web SPA: Angular Análisis de las Tendencias en Internet •Modelo de negocios para una aplicación Programación de Dispositivos Móviles •Frameworks para desarrollar apps híbridas: Ionic Análisis Avanzado de Sistemas Software •Modelado i* •Diagramas de clase para modelo de dominio inicial •Gherkin Bases de Datos •Conceptos fundamentales de manejo de una base de datos relacional •SQL Server • Introducción a ORMs Metodologías Avanzadas de desarrollo de Software •Historias de usuario •SCRUM Tecnologías de Internet Orientadas al Navegador •Estudio de tecnologías para crear aplicaciones autocontenidas Diseño Dirigido por Patrones •Patrones de diseño software •Patrones aplicados a la UI Arquitectura de Sistemas Software •Proyecto complejo que integra varias tecnologías: Servicios SOA, REST, JWT, framework SPA Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: Oscar Trujillo Morales 36 7.Bibliografía Anbazhagan, P., 2017. Mastering Entity Framework Core 2.0. Birmingham: Packt Publishing. Anon., 2022. Cocimia. [En línea] Available at: https://blog.cocimia.com/software-para-restaurantes/ [Último acceso: 10 6 2022]. Anon., 2022. SoftDoit: comparador y consultora online #1 de software para empresas. [En línea] Available at: https://www.softwaredoit.es/tpv/software-hosteleria-restaurantes-bares.html [Último acceso: 10 6 2022]. García, R., 2016. JWT tokens and security – working principles and use cases. [En línea] Available at: https://www.vaadata.com/blog/jwt-tokens-and-security-working-principles-and- use-cases/ [Último acceso: 13 5 2022]. Kumar, P. y otros, 2018. Software Engineering Requirement Model. International Journal of Scientific & Engineering Research, 11 11, pp. 523-529. Labs, .., 2021. GitHub. [En línea] Available at: https://github.com/dotnet-labs/JwtAuthDemo [Último acceso: 1 5 2022]. Patel, N., 2022. Neilpatel. [En línea] Available at: https://neilpatel.com/es/ubersuggest/ [Último acceso: 10 6 2022]. Sibal, R. &. K. P. &. S. C., 2018. Prioritization of User Story Acceptance Tests in Agile Software Development Using Meta-Heuristic Techniques and Comparative Analysis.. Singh, G., s.f. A Study of New Trends in Blowfish Algorithm. 1(2), pp. 321-326. Memoria del proyecto Fin de Master – Máster Web 2021-2022 37 Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: Oscar Trujillo Morales 38 8.Anexos Anexo 1.Manual de instalación Servidor SQL Server • Descargar el instalador de la página oficial de Microsoft https://www.microsoft.com/en- us/sql-server/sql-server-downloads, elegiendo la plataforma y la edición adecuada. • Seguir los pasos de instalación • Crear la base de datos • Restaurar la base de datos, con el fichero proporcionado para ello en este producto • Guardar la cadena de conexión, que se deberá proporcionar más adelante Servidor web • Configurar e instalar el sitio ASP.NET, por ejemplo, en un servidor IIS, siguiendo los pasos contenidos en esta guía https://docs.microsoft.com/en-us/iis/application- frameworks/scenario-build-an-aspnet-website-on-iis/configure-an-asp-net-website-on- iis o Paso 1: Instalar IIS y los módulos ASP.NET o Paso 2: Configurar ASP.NET o Paso 3: Configurar el origen de datos, con la cadena de conexión obtenida en el punto anterior o Paso 4: Configurar la seguridad de la aplicación Cliente encargado Alojar la web en una plataforma (por ejemplo, Firebase), para lo cual debemos seguir los siguientes pasos • Crear una cuenta de Firebase para implementar una aplicación angular • Instalar e inicializar el proyecto usando Firebase CLI https://www.microsoft.com/en-us/sql-server/sql-server-downloads https://www.microsoft.com/en-us/sql-server/sql-server-downloads https://docs.microsoft.com/en-us/iis/application-frameworks/scenario-build-an-aspnet-website-on-iis/configure-an-asp-net-website-on-iis https://docs.microsoft.com/en-us/iis/application-frameworks/scenario-build-an-aspnet-website-on-iis/configure-an-asp-net-website-on-iis https://docs.microsoft.com/en-us/iis/application-frameworks/scenario-build-an-aspnet-website-on-iis/configure-an-asp-net-website-on-iis Memoria del proyecto Fin de Master – Máster Web 2021-2022 39 • Crear compilación de producción • Implementar la aplicación en Firebase Hosting Cliente empleado • Crear compilación de producción • Configurar correctamente la implementación • Instalación de la aplicación en un dispositivo Android Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: Oscar Trujillo Morales 40 Anexo 2. Estrategia SEO y estado de la competencia Comenzamos haciendo una búsqueda general de palabras clave relacionadas con nuestro dominio de interés, para tener una idea del número de resultados aproximado que Google tiene indexado. Tabla 11 Resultados de búsqueda de palabras clave Término Número aproximado de resultados Número de páginas que tienen en su título el término buscado (intitle:término) Software para restaurantes 30,400,000 117,000 Software para la gestión de negocios gastronómicos 895,000 2,330 TPV para bares, cafeterías, restaurantes 60,200 597 Aplicación móvil para toma de comandas gastronómicos 181,000 10 Como puede apreciarse, el número de resultados generales es bastante alto. Es considerable también el número de páginas que incorporan estos términos en su título, lo cual nos da a entender que la competencia tiene una presencia fuerte en internet. Esto nos permite afirmar que, para lograr un buen posicionamiento, habrá que llevar adelante una estrategia SEO. Se pueden incorporar las palabras clave de la tabla anterior, y también otras como las que nos sugiere el sitio web (Patel, 2022), que son tendencia de búsqueda en internet: Memoria del proyecto Fin de Master – Máster Web 2021-2022 41 Figura 13 Sugerencias de palabras clave para estrategia SEO Haciendo un análisis, ahora con las palabras clave “TPV restaurantes”, (Patel, 2022) nos sugiere que para que nuestra página web quede posicionada entre las 10 primeras, debe tener un mínimo en dominio de autoridad valorado en 27, y 4 “backlinks” (enlaces a nuestra página de sitios externos). Una vez puesto en línea el sitio web, estos indicadores pueden valorarse con esta u otras herramientas. Realizando una búsqueda de los sitios de la competencia, vemos que existen en el marcado distintos tipos de software, ofrecidos en una amplia gama de precios y funcionalidades, como aparecen en fuentes como (Anon., 2022) y (Anon., 2022). Señalemos algunos, destacando los puntos fuertes para posibles estrategias a seguir en funciones que se puedan añadir, en futuras actualizaciones, a nuestro proyecto: • OfiBarman: Destaca el sistema de facturación muy bien integrado al sistema de pedidos (la posibilidad de sistema de facturación no ha sido pensado para este proyecto, ya que se ha concebido para negocios gastronómicos de cara a clientes que no necesitan facturas). • Glop TPV hostelería: Su alcance va más allá del ámbito de los negocios gastronómicos, por lo cual, si se quiere expandir nuestra aplicación, sería un buen ejemplo a seguir. Dispone de gran variedad de diseños para platos Master Web –UA. TFM. Tutor: Santiago Meliá Beigbeder. Autor: Oscar Trujillo Morales 42 • Loyverse: Ofrece funcionalidades básicas de forma gratuita. Las funciones más avanzadas son de pago. Esta es una posible estrategia a seguir para hacer rentable nuestras aplicaciones. Memoria del proyecto Fin de Master – Máster Web 2021-2022 43 Anexo 3. Repositorios de código Web API (contiene además el script de la base de datos) https://github.com/oscartmxpgit/entregaTfmWebApi Aplicación de Ionic/Angular https://github.com/oscartmxpgit/EntregaTfmIonCamareroFront Aplicación web de Angular https://github.com/oscartmxpgit/entregaTFMNgEncargadoFront https://github.com/oscartmxpgit/entregaTfmWebApi https://github.com/oscartmxpgit/EntregaTfmIonCamareroFront https://github.com/oscartmxpgit/entregaTFMNgEncargadoFront