Logo Studenta

eCarta_Trujillo_Morales_Oscar

¡Este material tiene más páginas!

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