1. Introducción y Metas (wiq_es05a)
El objetivo es crear una aplicación web llamada Quizz Master basada en el programa de televisión "Saber y Ganar". La aplicación permitirá registrarse a los usuarios para poder jugar. Dicho juego consiste en una serie de preguntas generadas aleatoriamente, de diferentes temáticas y respuestas, que deberán responderse en un tiempo determinado. Por cada respuesta correcta se obtendrá un premio.
1.1. Vista de Requerimientos
-
Frontend Web Desplegado: Habrá una interfaz web accesible vía navegador.
-
Registro de Usuarios y Consulta de Estadísticas: Usuarios podrán registrarse y ver sus estadísticas de participación.
-
Generación Automática de Preguntas desde Wikidata: Las preguntas se generarán automáticamente usando datos de Wikidata.
-
Plazo de Tiempo para Responder: Los usuarios tendrán un límite de tiempo para responder preguntas.
-
Respuestas Correctas e Incorrectas Automatizadas: Cada pregunta tendrá una respuesta correcta y varias incorrectas, generadas automáticamente.
-
Acceso a Información de Usuarios vía API: Otros sistemas podrán acceder a los datos de los usuarios a través de un API.
-
Acceso a Información de Preguntas vía API: Otros sistemas podrán acceder a los detalles de las preguntas generadas mediante un API.
1.2. Metas de Calidad
Nombre | Descripción |
---|---|
Usabilidad |
La aplicación tiene que poder usarse por el mayor tipo de usuarios, promoviendo una experiencia intuitiva y accesible desde el primer contacto.Conforme los usuarios se familiarizan y exploran más la aplicación, su uso se vuelve más intuitivo y sencillo, gracias a la curva de aprendizaje. |
Rendimiento |
La aplicación debe de ofrecer un tiempo de respuesta rápido para garantizar una experiencia fluida y eficiente para los usuarios. |
Testeable |
Las pruebas deben ser capaces de detectar errores de manera rápida y precisa, fáciles de mantener y actualizar a medida que el código base cambia. Esto implica que las pruebas estén bien estructuradas y documentadas. |
Disponibilidad |
Debemos asegurar que la aplicación esté funcional y operativa durante la mayor parte del tiempo. |
1.3. Stakeholders
Rol/Nombre | Expectativa | Descripción |
---|---|---|
Profesor |
Aplicar correctamente los conocimientos y competencias adquiridos en la asignatura Arquitectura del Software |
Profesor de la asignatura |
HappySw |
Una aplicación buena para atraer al mayor número de usuarios |
Equipo de desarrollo |
Wikidata |
Usar su aplicacion con precaución, sin sobrecargar sus servicios |
Empresa que nos facilita la API para obtener información |
Usuarios Registrados |
Poder jugar en la aplicación que recrea el juego sin tener que participar en el programa. |
Usuarios registrados en la plataforma, pudiendo haber jugado una o más partidas. |
Usuarios No Registrados |
Poder registrarse lo más rápido posible para empezar a jugar al juego de preguntas y respuestas |
Usuarios que nunca se han registrado antes |
RTVE |
Versión mejorada de "Saber y Ganar" para ganar mayor audiencia e interés social. |
Dueño del producto |
2. Limitaciones de Arquitectura
Este proyecto tiene una serie de restricciones de arquitectura marcadas por los responsables de la asignatura. Por ello esta aplicación está desarrollada siguiendo una serie de limitaciones las cuales nombraremos a continuación.
2.1. Limitaciones técnicas
Restricción | Explicación |
---|---|
GIT |
En la asignatura se requiere el uso del sistema de control de versiones GIT, además de emplear GitHub como repositorio. Asimismo, nos permite una continua integración de forma remota mediante la paralelización del trabajo usando el sistema de ramas. |
Docker |
Esta tecnología de contenerización será requerida ya que la usaremos para desplegar la aplicación web tanto en el entorno de desarrollo como en el de producción y realizar las pruebas pertinentes. |
Wikidata |
En la asignatura se requiere que esta sea la fuente de información principal para generar aleatoriamente tanto las preguntas como las respuestas correctas e incorrectas del juego. |
APIs rest |
Son una limitación por varias razones, no proporcionan seguridad avanzada, no ofrecen un esquema de datos detallados, pueden no ser ideales para operaciones mas complejas y requieren endpoints predefinidos. |
2.2. Limitaciones organizativas
Restricción | Explicación |
---|---|
Equipo |
El equipo de trabajo está compuesto por 4 integrantes, por lo que la cooperación y coordinación es esencial para el desarrollo de la aplicación. |
Experiencia |
Es la primera ocasión en la que los miembros del equipo trabajan en un proyecto de esta envergadura. Al comienzo del proyecto, los miembros del equipo de desarrollo enfrentaba una curva de aprendizaje considerable con respecto al uso de algunas de las tecnologías necesarias, por lo que fue necesario aprender a trabajar, en algunos casos desde cero, con alguna de estas. |
Reuniones |
Para mantener un buen ritmo de trabajo a través de una correcta organización se realizan reuniones semanales en las clases prácticas de la asignatura. Además, mantenemos contacto a través de nuestro grupo de WhatsApp y en casos necesarios realizamos reuniones extraordinarias utilizando nuestro servidor de Discord. |
Issues |
Para el seguimiento y la gestión de las tareas, problemas, mejoras, autoinformes, etc. de la aplicación tendremos que usar las issues ofrecidas por github; esto es una obligación ya que reflejara el trabajo realizado por cada miembro del equipo al poder asignarse cada issue. |
Actas |
Al igual que las issues, las actas servirán para la organización de las tareas asi como para la toma de decisiones, y tendrán que reflejar el trabajo repartido a cada miembro. Se deberán realizar obligatoriamente cada vez que se realice una reunión y deberán constar los miembros del equipo que han participado. |
Decisiones arquitectónicas |
Las decisiones arquitectónicas pueden ser una limitación organizativa al definir la estructura básica de un sistema de software, lo que podría obstaculizar la capacidad de realizar cambios y adaptarse a nuevas necesidades y tecnologías. |
2.3. Convenciones
Restricción | Explicación |
---|---|
Diseño del software |
Para lograr un buen diseño es indispensable que el código de la aplicación sea flexible, mantenible y comprensible. Además se espera que sigamos los principios de "codigo limpio" en cuanto a modularidad, limpieza, nombrado de métodos y variables. |
Documentación |
Para crearla usaremos la plantilla Arc42 con la finalidad de que sea sencilla y práctica. |
Estructura |
Debe seguir una estructura de paquetes fija y bajo los mismos estandares. Los diferentes modulos estarán separados en carpetas: 'userservice' para la gestión de usuarios (registro y autentificación), 'questionservice' para la comunicación con wikidata y 'webapp' para el desarrollo de la aplicación. Todos estos servicios estarán comunicados por 'gatewayservice'. |
Convenciones del lenguaje de programación |
Es fundamental adherirse a las convenciones de los diferentes lenguajes de programación utilizados para garantizar que la aplicación tenga un código legible, que facilite su mantenimiento. |
3. Alcance y Contexto del Sistema
3.1. Contexto de Negocio
Componentes | Explicación |
---|---|
Sistema |
Contiene el frontend y backend de la aplicación. |
Usuario nuevo |
Usuario nuevo en la aplicación se registrará y será el propio sistema el que confirme el registro o le muestre un error. |
Usuario registrado |
Usuario antiguo que podrá jugar y el sistema le irá devolviendo feedback de la partida o podrá entrar a consultar datos de partidas anteriores que el sistema le devolverá. |
Wikidata |
Fuente de información para la creación de las preguntas y respuestas. |
3.2. Contexto Técnico
Componentes | Explicación |
---|---|
Sistema |
Contiene el frontend y backend de la aplicación. |
MongoDB |
Base de datos no relacional para el almacenamiento de usuarios y registro de sus partidas. |
Usuario |
Persona que interactua con nuestra aplicación web a través del navegador. |
Wikidata API |
API de donde obtendremos las preguntas y respuestas correctas y falsas para el juego de la aplicación, todas estas preguntas serán cargadas al inicio del juego. |
Javascript |
Lenguaje de programación principal de la aplicación permite una sintaxis uniforme en toda la aplicación y facilita el mantenimiento del código. Además, al usar JavaScript en el frontend y el backend, se puede compartir lógica entre ambas partes para un desarrollo más eficiente. |
Express JS |
Express es un framework de aplicación web para Node.js, que te permite crear aplicaciones web robustas y escalables en JavaScript para el backend. |
React |
Biblioteca de Javascript para creación de interfaces de usuario, utilizado en el frontend. |
Bootstrap |
Biblioteca de código abierto que proporciona herramientas y estilos para el diseño de aplicaciones web y sitios responsivo. Podemos crear interfaces de usuario atractivas y funcionales de manera rápida y sencilla. |
webapp |
Módulo del sistema que se encarga de la interfaz del sistema. |
questionservice |
Módulo del sistema que se encarga de crear preguntas obteniendo tanto preguntas como respuestas correctas e incorrectas de la API Wikidata. |
gateway |
Módulo del sistema que funciona como puerta de enlace para coordinar el resto de modulos del sistema. |
userservice |
Módulo del sistema que se encarga de tener los modelos y hacer las consultas para el almacenamiento correcto de los usuarios de la aplicación y del registro de partidas con la ayuda de nuestra base de datos MongoDB. |
authservice |
Módulo del sistema que se encarga de gestionar la autenticación del usuario. |
4. Estrategia de solución
-
JavaScript: Este lenguaje es muy buena opción para utilizar en proyectos en que se empleé la biblioteca REACT. Nos pareció mejor opción que otros lenguajes como TypeScript debido a que su compresión y manejo es más sencillo. Además usamos Express es una infraestructura de aplicaciones web en Node.js que ofrece una solución rápida, minimalista y flexible para desarrollar aplicaciones web y móviles1
-
React: Esta libreria de JavaScript permite la creación de interfaces de usuario para la aplicacion web de forma sencilla.
-
Docker: Utilizaremos esta plataforma para desplegar la aplicacion web, de manera que puedan realizarse pruebas aisladas de esta misma.
-
Mongo-DB: Esta API nos servirá como sistema de autenticación del usuario para poder llevar un registro de sus estadísticas, así como algunas de sus estadísticas.
-
Microservicios: Enfoque arquitectónico donde el software está compuesto por pequeños servicios independientes. Lo hemos elegido debido a la facilidad para modificar una parte de la aplicación sin afectar al resto.
5. Vista de Bloques
5.1. Nivel 1: Sistema General de Caja Blanca
- Motivación
-
La motivación de este diagrama es ofrecer una representación clara y sencilla de cómo el sistema interactúa con los usuarios y los servicios externos.
- Bloques de construcción contenidos
Nombre | Responsabilidad |
---|---|
Usuario |
Cuando alguien usa nuestra aplicación, se comunica con ella a través de Internet usando un lenguaje especial llamado HTTP. Cuando se registra en la aplicación, los datos que ingresa se guardan en una base de datos especial llamada MongoDB. Para que esto suceda, usamos una herramienta llamada Mongoose, que nos ayuda a conectarnos y comunicarnos con la base de datos de una manera fácil y segura. Entonces, cada vez que alguien se registra en nuestra aplicación, Mongoose se asegura de guardar esos datos en la base de datos para que puedan ser utilizados más tarde. |
WIQ |
La propia aplicación, encargada de pedir las preguntas a wikidata para poder llevar a cabo la partida. |
Wikidata |
Servicio externo desde donde obtenemos los datos para generar las preguntas. |
5.2. Nivel 2: WIQ
- Bloques de construcción contenidos
Nombre | Responsabilidad |
---|---|
webapp |
La interfaz con la que interactua el usuario. |
gatewayservice |
Servicio de puerta de enlace que actúa como intermediario entre los usuario que quieran juagar y otros servicios, reenviando las solicitudes a los servicios correspondientes y devolviendo las respuestas al cliente. |
authservice |
Servicio que se encarga de verificar las credenciales de los usuarios al iniciar sesión en la aplicación. Si las credenciales son correctas, se genera un token de acceso que permite al usuario autenticado acceder a partes protegidas de la aplicación. |
userservice |
Servicio que gestiona el registro de nuevos usuarios en la aplicación. Cuando un usuario se registra, se asegura de que se proporcionen los campos necesarios y luego cifra la contraseña antes de guardarla. También ofrece funciones para actualizar las estadísticas del usuario y obtener información de usuario. |
questionservice |
Este servicio se encarga de proporcionar preguntas y respuestas basadas en datos de Wikidata. Utiliza consultas SPARQL para obtener información de Wikidata y luego genera preguntas aleatorias basadas en estos datos para ser utilizadas en la aplicación." |
Wikidata |
Servicio externo desde donde obtenemos los datos para generar las preguntas. |
MongoDB |
MongoDB es un sistema de gestión de bases de datos NoSQL utilizado en la aplicación para almacenar y organizar los datos de manera eficiente. Su responsabilidad principal es gestionar la persistencia de los datos de la aplicación, permitiendo el almacenamiento, consulta y manipulación de la información de manera escalable y flexible. |
OpenAPI |
Encargado de la especificación utilizada junto a swagger para la creación de una documentacio de todos los métodos que se realizan en gateway. |
6. Vista en Tiempo de Ejecución
6.1. Inicio de Sesión
Al iniciar sesión en nuestra WebApp, se presentará una interfaz solicitando al usuario que ingrese los datos necesarios para comenzar a jugar. Estos datos incluirán información de identificación única, como nombre de usuario y contraseña, así como posiblemente otros detalles relevantes para el perfil del jugador.
Una vez que el usuario proporciona estos datos, la WebApp los enviará al servicio userService a través de gatewayService, que actuará como el backend encargado de autenticar al usuario y gestionar su sesión. UserService verificará la validez de los datos proporcionados por el usuario y, si son correctos, emitirá un token de sesión único que identificará al usuario.
Este token de sesión se devolverá a la WebApp, donde se utilizará para mantener la sesión del usuario durante su interacción con la plataforma de juego.
Una vez que el proceso de inicio de sesión se completa con éxito, la WebApp cambiará su interfaz para mostrar que ha iniciado sesión correctamente.
6.2. Interacción con Preguntas
Comenzaremos con la API REST que obtendrá las preguntas de Wikidata junto con sus opciones de respuestas correctas e incorrectas.
Al obtener dicha información, QuestionService se la transmitirá a GatewayService que a su vez ira mostrando en WebApp pregunta por pregunta junto con todas las opciones de respuesta disponibles al usuario, quien podrá seleccionar una única respuesta entre las opciones proporcionadas. Una vez que el usuario ha realizado su selección, la WebApp verificará la precisión de la respuesta.
Posteriormente, basándose en la respuesta proporcionada por el usuario, la WebApp ofrecerá una retroalimentación visual clara que permitirá al usuario comprender si su respuesta fue correcta o incorrecta.
Por tanto, terminaremos con una retroalimentación visual por pantalla del resultado obtenido tras la respuesta del jugador.
Tras esto y cuando el jugador solicite la siguiente pregunta se seguirá repitiendo el proceso de GatewayService proporcionando a WebApp una nueva pregunta hasta terminar el juego.
Este flujo de interacción garantiza una experiencia de usuario fluida y comprensible, optimizando así la participación y el compromiso del usuario con la plataforma.
7. Vista de Despliegue
7.1. Infrastructura Nivel 1
- Mapeo de bloques de construcción a infraestructura
Elemento | Descripción |
---|---|
Servidor Azure |
Servidor alojado en la nube de Microsoft Azure sobre el que se realiza el despliegue. |
Contenedores Docker |
Son instancias virtualizadas y aisladas que contienen cada una uno de los microservicios que conforman la aplicación. |
WebApp |
Microservicio responsable de las vistas de la aplicación y sus interacciones con el usuario. |
QuestionService |
Microservicio responsable de generar preguntas y respuestas utilizando la información de Wikidata. |
UserService |
Microservicio encargado de gestionar los diferentes usuarios y sus partidas realizadas. |
Navegador Web |
Programa sobre el que el cliente visualiza e interactúa con la aplicación web. |
8. Conceptos transversales
8.1. Prototipos de pantalla
En la siguiente sección, vamos a mostrar los primeros prototipos de pantalla, aunque pueden estar sujetos a cambios en el futuro.
Pantalla principal La pantalla principal que aparece al entrar en la aplicación, con las opciones de jugar y ver las estadisticas de los juegos solo si estás registrado en la aplicación. Además de las propias opciones de iniciar sesión y registrarse.
Pantalla de juego Irán apareciendo 5 diferentes preguntas con 4 posibles rspuestas, de las cuales solo una será la correcta. También podremos ver el tiempo que trascurre durante todo el juego.
Pantalla de estadísticas Solo se podrá acceder a esta página si estás registrado en la aplicación. Aqui podremos observar diferentes estadisticas en los juego que hayas jugado.
9. Decisiones arquitectónicas
Aspecto | Descripción | Decisión | Explicación | Alternativas |
---|---|---|---|---|
Lenguaje de Programación |
Lenguaje en el que se desarrollara la aplicación. |
JavaScript |
Hemos elegido esta opción porque es la mejor para usar en proyectos con REACT. Es fácil de entender y de manejar. |
TypeScript, pero creemos que es mas complejo. |
Framework |
Marco de trabajo para desarrollar la parte grafica de la aplicación. |
React |
Optamos por este framework debido a su capacidad para simplificar el proceso de creación de interfaces gráficas. |
Angular, Vue… |
Base de Datos |
Donde almacenaremos la información de los usuarios. |
MongoDB |
Decidimos utilizarla porque es una base de datos no relacional que se adapta bien a estructuras de datos flexibles como las que necesitamos para almacenar información de usuarios. |
PostgreSQL, Redis, MariaDB, SQLite… |
Arquitectura |
La forma en la que se estructura la aplicación. |
Microservicios |
Es una manera simple de organizar, facil de desacoplar y reutilizar. |
Simplemente basada en front-end y back-end. |
10. Requerimientos de Calidad
10.1. Árbol de Calidad
10.2. Escenarios de Calidad
Calidad | Escenario | Acciones de usuario | Respuesta |
---|---|---|---|
Usabilidad |
Un usuario que nunca ha interactuado con la aplicación |
El usuario quiere iniciar sesión y posteriormente jugar y que todo sea intuitivo |
La aplicación facilita al usuario iniciar/registrar en la aplicación y posteriormente se le muestra la opción para jugar de forma visual |
Rendimiento |
Un usario, un poco impaciente y ya registrado quiere jugar tranquilamente una partida |
Empieza la partida y espera a que se procese la pregunta y respuestas, sin importar cuantos usuarios esten jugando en ese momento |
El sistema de obtención de preguntas es ágil y se muestra la pregunta con sus respuestas antes de que el usuario se canse de esperar |
Testeable |
Un desarrollador esta realizando una nueva funcionalidad del sistema, pero se equivoca y produce fallos en la aplicación |
Igualmente realiza un commit en su rama con el objetivo de incorporar la nueva funcionalidad al sistema |
Las pruebas automáticas detectan un error de programación e impide que el problema se propague a la aplicación funcional |
Disponibilidad |
Un usuario quiere jugar a las 03:00 AM, sin que ocurra ninguna caida por mantenimiento o cualquier otro error. |
El usuario inicializa la aplicación de forma estandar |
La aplicación es funcional pese a no ser una hora habitual |
11. Riesgos y Deudas Técnicas
11.1. Riesgos Técnicos
11.1.1. Riesgos internos
Riesgo | Explicación |
---|---|
Abandono |
Durante el desarrollo del proyecto cabe la posibilidad de que alguno de los miembros que conforman el equipo abandone este, provocando un serio problema el ritmo y carga de trabajo de los demás compañeros. |
Otras Asignaturas |
Las demás asignaturas en la que están matriculados los miembros del equipo puede exigir una carga importante de trabajo por lo que provocar que el equipo no dedique el suficiente tiempo al desarrollo de este proyecto. |
Errores de diseño |
Los errores que surjan debido al diseño, implementacion o gestion interna del proyecto; nos obligarán a realizar cambios e invertir más horas de las planeadas para solucionar este tipo de problemas. |
11.1.2. Riesgos externos
Riesgo | Explicación |
---|---|
Caída de Servicios |
Nuestra aplicacion web puede verse comprometida a errores si alguno de los servicios utilizados, como por ejemplo Docker, parara de funcionar en algún momento. Ya que los servicios no son creados por nosotros no podemos saber si estarán disponibles en todo momento por lo tanto esto podría bloquear la entrega de alguna de las funcionalidades del proyecto. |
Problemas Software |
No podemos asegurar que nuestra aplicación pueda ser utilizada por todos los usuarios ya que en ciertos casos dependerá del sistema operativo de cada usuario. |
Problemas Hardware |
Dependiendo desde el dispositivo que se acceda a la aplicación si este no cumple los requisitos, como la resolución de pantalla, puede ser que la aplicacion no se vea de la forma esperada. |
11.2. Deudas Técnicas
Descripción | Consideraciones |
---|---|
Pruebas E2E |
Se han impletado pruebas e2e pero finalmente solo hemos sido capaces de sacar una adelante con exito. Por falta de tiempo no hemos encontrado los errores en las pruebas por lo que nos hemos visto obligados a eliminarlas. |
Botón finalizar partida |
Después de finalizar la partida, añadimos un botón con la intención de que al pulsarlo guardara las estadísticas y nos redirigiera a la página principal. Sin embargo, al no lograr que con esta implementación nos pasase los test, optamos por modificarlo para que muestre la opción de elegir si desea guardar las estadísticas y, en dicho caso, muestre un mensaje. Podria dar confusión a los usuarios ya que se puede dar el caso que no sepan como jugar otra partida. |
Mostrar tiempo de respuesta |
Hemos intentado incorporar como estadísitica el tiempo de respuesta medio de las preguntas, pero lamentablemente no hemos podido lograrlo debido a que optamos por centrarnos en arreglar problemas del proyecto. Esta funcionalidad habría sido beneficiosa para mejorar el apartado de las estadísticas de nuestra aplicación. |
Requisitos opcionales |
No hemos abordado los requisitos opcionales porque nuestra atención ha estado centrada en desarrollar la parte fundamental de la aplicación y asegurarnos de que funcione correctamente. |
Internacionalización de la web |
Inicialmente, valoramos adaptar la aplicación a otros idiomas como el inglés pero finalmente no se llevo a cabo. Esto hace que la aplicación sea menos accesible para aquellos usuarios que no tengan el español como lengua principal. |
Limpieza y organización de código |
Nuestro código podría tener áreas que podrían mejorarse, ya que no se han desarrollado de la manera más eficiente posible. Una estructura más organizada podría facilitar la localización de elementos y la inclusión de comentarios adicionales podría mejorar la comprensión. Esta situación hace que sea complicado mantener, ampliar y depurar el código. Por lo tanto, es crucial realizar revisiones regulares del código, refactorizaciones y actualizaciones de la documentación para garantizar la calidad y la facilidad de mantenimiento del código del proyecto. |
12. Testing
12.1. Tests unitarios (TDD)
Para los tests unitarios utilizamos Jest y Testing Library de React para probar los componentes de nuestra aplicación web.
Creamos pruebas separadas para cada componente, con el fin de probar partes aisladas y verificar si cada aspecto de nuestra aplicación funcionaba correctamente, pero enfrentamos algunos problemas en el proceso, ya que resultó ser casi imposible verificar todo, principalmente debido a problemas de tiempo y dificultad para probar los errores.
En el momento de escribir este documento, alcanzamos una cobertura total del 91% con 14 archivos tests para los componentes, 8 de ellos cubiertos al 100%.
12.2. Tests de integración (BDD)
Utilizamos Jest y Puppeteer para realizar pruebas de integración en nuestra aplicación. Diseñamos pruebas e Historias de Usuario con la estructura: "Dado, Cuando, Entonces", lo que resultó en muchas facilidades al implementarlas.
Al final, logramos tener 3 pruebas generales e2e, pero solo conseguimos que funcionase la primera en el despliege.
1 Feature: Registering a new user
Scenario: The user is not registered in the site Given An unregistered user When I fill the data in the form and press submit Then A confirmation message should be shown in the screen
2 Feature: Logging in as a user
Scenario: Logging in with valid credentials Given A user that is logged in the application When I enter valid username and password Then A confirmation message should be shown in the screen
3 Feature: Access the app
Scenario: A registered user enters the app Given A user that is logged in the application When I navigate to the Home page Then I should be able to interact with the app
12.3. Tests de carga
Se ha realizado los siguientes tests de carga con las acciones de:
-
Registrarse
-
Iniciar Sesion
-
Jugar una Partida.
La primera prueba se lanzo solamente con un usuario, podemos observar que se han realizado 11 peticiones donde solo una tardo mas de 800 milisegundos.
La siguiente prueba se lanzo con 10 usuarios, podemos observar que se han realizado 110 peticiones, la mayoria han pasado en menos de 800 milisegundos y una ha fallado.
Podemos concluir que a partir de las 100 peticiones, el sistema comienza a tener fallos.
13. Glosario
Término | Definición |
---|---|
API Rest |
Interfaz de programación de aplicaciones que permite interactuar con un sistema para obtener datos o ejecutar una función, de manera que el sistema comprenda la solicitud y la cumpla. |
Arc42 |
Un marco de arquitectura que proporciona un conjunto de prácticas y plantillas para documentar y diseñar arquitecturas de software. |
Docker |
Plataforma de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software. |
MongoDB |
Es un sistema de gestión de bases de datos NoSQL de código abierto que permite el almacenamiento de datos de forma flexible y escalable. MongoDB es ampliamente utilizado en diversas aplicaciones, ofreciendo una estructura de datos dinámica que se adapta bien a casos de uso donde se requiere una manipulación ágil de la información. |
Saber y Ganar |
Programa televisión española de tipo concurso de preguntas y respuestas culturales. |
TypeScript |
Lenguaje de programación de código abierto desarrollado por Microsoft que es un superset de JavaScript y añade tipos estáticos opcionales a la sintaxis del lenguaje. |
WCAG |
Son una serie de pautas de accesibilidad web publicadas por la Iniciativa de Accesibilidad Web (WAI) del Consorcio World Wide Web (W3C). Estas pautas explican cómo hacer que el contenido web sea más accesible para las personas con discapacidades. |
Web App |
Interfaz de usuario en el navegador del cliente. Permite al usuario interactuar con el servidor, enviar solicitudes y recibir respuestas. |
WikiData |
Base de datos colaborativa libre que almacena datos estructurados para respaldar proyectos de la Fundación Wikimedia. |
About arc42
arc42, the template for documentation of software and system architecture.
Template Version 8.2 EN. (based upon AsciiDoc version), January 2023
Created, maintained and © by Dr. Peter Hruschka, Dr. Gernot Starke and contributors. See https://arc42.org.