Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mejora de coverage y cambios esteticos menores #94

Merged
merged 19 commits into from
Apr 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified docs/images/07_diagrama_de_despliegue.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/Pruebacarga240.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/Pruebacarga900.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/images/Whitebox Overall System.jpg
Binary file not shown.
Binary file added docs/images/blockview0.drawio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/blockview1.drawio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/blockview2.drawio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/images/uiLevel2.png
Binary file not shown.
Binary file removed docs/images/whiteBoxGeneral.png
Binary file not shown.
Binary file removed docs/images/whiteLevel1.png
Binary file not shown.
2 changes: 1 addition & 1 deletion docs/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ include::src/config.adoc[]
:revdate: January 2023
:revremark: (based upon AsciiDoc version)
// toc-title definition MUST follow document title without blank line!
:toc-title: Table of Contents
:toc-title: Indice

//additional style for arc42 help callouts
ifdef::backend-html5[]
Expand Down
1 change: 1 addition & 0 deletions docs/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 8 additions & 9 deletions docs/src/01_introduction_and_goals.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,25 @@ ifndef::imagesdir[:imagesdir: ../images]
[[section-introduction-and-goals]]
== Introducción y Objetivos 🎇

El proyecto de wiq_es04d es un proyecto desarrollado en la asignatura Arquitectura del Software. Consiste en la creación de una aplicación web al estilo "Saber y Ganar". Es decir, es un juego de preguntas de cultura general.
El proyecto de WIQ 4D es un proyecto desarrollado en la asignatura Arquitectura del Software. Consiste en la creación de una aplicación web al estilo "Saber y Ganar". Es decir, es un juego de preguntas de cultura general generadas de forma automatica con ayuda de Wikidata, la base de conocimiento editada en colaboración..

Los desarrolladores de la aplicacion son por Zohaib Akhtar Kausar, Yago Navajas González y Santiago López Laso.
Los desarrolladores de la aplicacion son por Zohaib Akhtar Kausar, Yago Navajas González y Santiago López Laso.

La aplicación tendrá su base para las preguntas y las respuestas en Wikidata, la base de conocimiento editada en colaboración.


=== Requisitos Funcionales 🛠️
=== Requisitos Funcionales

****
* Los usuarios se deberán loggearse en la página; esto servirá para tener registro de una serie de parámetros, como puede ser las veces que se ha jugado.
* Se podrán responder preguntas autogeneradas y se verá si han acertado o fallado, así como la respuesta correcta.
* Las preguntas deberán ser respondidas en un tiempo límite.
* Las preguntas seguirán la misma estructura: 1 pregunta correcta y 3 incorrectas, generadas automáticamente.
* Los usuarios podrán consultar datos sobre su cuentas, como pueden ser las veces que han jugado o el número de preguntas que han acertado o fallado.
* Existirá un ranking que ordenará a los 10 mejores jugadores en función de una métrica.
* Se podrán acceder a los servicios de la aplicación a traves de una API REST.


****

=== Atributos de Calidad 👑
=== Atributos de Calidad

[options="header",cols="1,2,2"]
|===
Expand All @@ -35,7 +34,7 @@ La aplicación tendrá su base para las preguntas y las respuestas en Wikidata,
|===


=== Stakeholders 👨‍👩‍👦‍👦
=== Stakeholders

[options="header",cols="1,2,2"]
|===
Expand All @@ -46,5 +45,5 @@ Santiago Lopez Laso -> [email protected] | Los estudiantes que llevarán a cabo
| Profesores | Jose Emilio Labra Gayo | Supervisores de los avances y encargados de evaluar la aplicación final y el desarrollo de la misma.
| Usuario | Jugador de la aplicación | Personas que puedan interactuar tanto con el registro de usuarios como con el juego en sí y pueda completar correctamente una partida.
| HappySw | Empresa responsable | Empresa contratada, cuyo trabajo sera el desarrollo del juego de la mano del equipo de desarrollo.
| RTVE | Empleador | Interesados en la creacion del juego e impulsores de su creacion.
| RTVE | Empleador | Interesados en la creación del juego e impulsores de su desarrollo.
|===
12 changes: 6 additions & 6 deletions docs/src/02_architecture_constraints.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,24 @@ ifndef::imagesdir[:imagesdir: ../images]
== Restricciones de arquitectura ⛔


=== Restricciones Técnicas 📛
=== Restricciones Técnicas
[options="header",cols="1,2"]
|===
|Restricción|Descripción
|API Wikidata|El numero de consultas en un tiempo espcidfico es la mayor limitacion de la API, junto con la disponibilidad de los datos. Esto puede afectar a tiempos de carga, por ejemplo.
|Git|Conflictos al realizar trabajo por separado por parte de mas de um miembro sobre un mismo recurso.
|API Wikidata|El número de consultas en un tiempo espcifico es la mayor limitacion de la API, junto con la disponibilidad de los datos. Esto puede afectar a tiempos de carga, por ejemplo.
|Git|Conflictos al realizar trabajo por separado por parte de mas de un miembro sobre un mismo recurso.
|GitHub|La falta de experiencia puede conducir a problemas en la gestion del proyecto asi como en su despliegue y lo que ello conlleva.
|Integración continua/despliegue continuo (CI/CD)|Restricciones en la configuración de pipelines de CI/CD para automatizar las pruebas, compilaciones y despliegues de la aplicación en el servidor Docker, lo que podría afectar la velocidad y la frecuencia de las entregas de nuevas características o correcciones de errores.
|Maquina Virtual Azure|Esta plataforma impone limites a la cantidad de recursos que podemos usar con la licencia de estudiantes, por lo que debemos ir con cuidado de cuando tenemos la maquina encendida para no agotar el credito.
|Máquina Virtual Azure|Esta plataforma impone límites a la cantidad de recursos que podemos usar con la licencia de estudiantes, por lo que debemos ir con cuidado de cuando tenemos la máquina encendida para no agotar el crédito.
|===


=== Resticciones organizacionales 🔗
=== Resticciones organizacionales
[options="header",cols="1,2"]
|===
|Restricción | Descripción
|Horarios y Disponibilidad| Los diferentes compromisos personales y académicos de los miembros del grupo pueden dificultar la coordinación de horarios para reuniones y sesiones de trabajo en equipo.
|Expectativas y motivación| Los miembrosd del equipo tienen distintas expectativas sobre el trabajo y esto afecta a la dedicacion que realizan.
|Expectativas y motivación| Los miembros del equipo tienen distintas expectativas sobre el trabajo y esto afecta a la dedicacion que realizan.
|Politicas de la Universidad|Las entregas de otra asignaturas se interponen en la realización del trabajo y puede derivar en una falta de tiempo para realizarlo.
|Diferencias en el nivel de habilidades técnicas|A pesar de no ser muy acusadas si que existen diferencias que pueden afectar en una distribucion igualitaria del trabajo.
|===
14 changes: 7 additions & 7 deletions docs/src/03_system_scope_and_context.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,26 @@ ifndef::imagesdir[:imagesdir: ../images]
[[section-system-scope-and-context]]
== Alcance del sistema y Contexto 💭

=== Contexto de negocio 💰
=== Contexto de negocio
image::03_diagrama_contexto_negocio.png["Diagrama de contexto de negocio"]
En esta tabla se muestra el contexto de negocio de la aplicación. Las entradas son los mensajes que van desde el agente externo hacia la aplicación, y las salidas son los mensajes que van desde la aplicación hacia al agente externo.
[options="header",cols="1,2,3"]
|===
|Agente externo|Entradas|Salidas
|Usuario|Datos registro, datos login, respuesta a cada pregunta|Preguntas, histórico
|Usuario|Datos registro, datos login, respuesta a cada pregunta|Preguntas, historial
|Wikidata|Items (elementos) de Wikidata|Petición a la API de Wikidata
|===

=== Contexto técnico 🔧
=== Contexto técnico

image::03_diagrama_contexto_tecnico.png["Diagrama de contexto técnico"]
|===

|Agente externo|Entradas|Salidas
|Usuario|Datos registro, datos login, respuesta a cada pregunta|Preguntas, histórico
|WIQ|Peticiones del usuario | respuesta a las peticiones
|Usuario|Datos registro, datos login, respuesta a cada pregunta|Preguntas, historial
|WIQ|Peticiones del usuario | Respuesta a las peticiones
|WebApp| Entradas del usuario | Salidas de WIQ
|Wikidata| Peticiones de datos | Datos
|Base de datos|Nuevos usuarios, preguntas de Wikidata y respuestas del usuario| validacion de usuarios, nuevas preguntas de Wikidata e historico
|Máquina Virtual| peticion de Despliegue | Despliegue
|Base de datos|Nuevos usuarios, preguntas de Wikidata y respuestas del usuario| Validación de usuarios, nuevas preguntas de Wikidata e historial
|Máquina Virtual| Petición de Despliegue | Despliegue
|===
34 changes: 15 additions & 19 deletions docs/src/04_solution_strategy.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,38 +3,34 @@ ifndef::imagesdir[:imagesdir: ../images]
[[section-solution-strategy]]
== Estrategia de Solución 📚

=== Decisiones tecnológicas 💻
=== Decisiones tecnológicas

[options="header",cols="1,2"]
|===
|Aplicación|Breve explicación
|React / JS|Biblioteca de JavaScript que nos servirá para realizar las interfaces de usuario necesarias para el Front-End. Esto nos indica que el lenguaje principal usado en el proyecto es JavaScript.
|Microservicios|Se usaran microservicios diferentes para los diferentes componentes del proyecto como la generacion de preguntas o el registro de usuarios en el sistema.
|Azure|Para el alojamiemto de la pagina web se usara una maquina virtual Azure con el credito de estudiante proporcionado
|Docker
|Encargado de dividir el contenido del proyecto en diversos contenedores (en nuestro caso 4) y sea más fácil de manipular el contenido de dicho proyecto.
|GitHub Actions
|Nos servirá para el despliegue del proyecto, pero de forma automática en vez de desplegarlo todo a mano. Cabe a destacar que también están implementados
unos test para asegurar el correcto despliegue del proyecto.
|Microservicios|Se usaran microservicios diferentes para los diferentes componentes del proyecto como la generación de preguntas o el registro de usuarios en el sistema.
|Azure|Para el alojamiemto de la página web se usara una máquina virtual Azure con el credito de estudiante proporcionado
|Docker|Encargado de dividir el contenido del proyecto en diversos contenedores (en nuestro caso 6) y sea más fácil de manipular el contenido de dicho proyecto.
|GitHub Actions|Nos servirá para el despliegue del proyecto, pero de forma automática en vez de desplegarlo todo a mano. Cabe a destacar que también están implementados unos test para asegurar el correcto despliegue del proyecto.
|===

Decisiones de cómo llegar a las metas principales (En desarrollo):
Decisiones de cómo llegar a las metas principales.
[options="header",cols="1,2"]
|===
| Decision | Como llegar
| Usabilidad | La aplicacion seguira los principios basicos de usabilidad y estos seran testeados en diferentes escenarios.
| Mantenibilidad | El sistema sera mantenible gracias a la mantenibilidad de sus subsistemas.
| Eficiciencia | Para que la aplicacion sea rapida se usaran la base de datos y no se tendran que generar datos en caliente que pueden perjudicar a los tiempo de carga.
| Fiabilidad | Todos los datos mostrados seran correctos y para esta comprobacion se usara la base de datos de Wikidata y sus entidades e ID's asociados.
| Privacidad | Los datos de los usuarios seran privados y no seran accesibles a ningun usuario.

| Decisión | Como llegar
| Usabilidad | La aplicación seguirá los principios básicos de usabilidad y estos serán testeados en diferentes escenarios.
| Mantenibilidad | El sistema será mantenible gracias a la mantenibilidad de sus subsistemas.
| Eficiciencia | Para que la aplicacián sea rápida se usará la base de datos y no se tendran que generar datos en caliente que pueden perjudicar a los tiempo de carga.
| Fiabilidad | Todos los datos mostrados serán correctos y para esta comprobación se usará la base de datos de Wikidata y sus entidades e ID's asociados.
| Privacidad | Los datos sensibles de los usuarios seran privados y no seran accesibles a ningun usuario.
|===

=== Decisiones organizativas 👥
=== Decisiones organizativas

Este grupo ha sido formado a partir de un grupo ya existente pasando de 5 integrantes a 3. Se ha decidido utilizar el proyecto inicial cuando se dio esta situacion para empezar de 0.
Este grupo ha sido formado a partir de un grupo ya existente pasando de 5 integrantes a 3. Se ha decidido volver al proyecto inicial cuando se dio la situación de ruptura del grupo para empezar de 0.

No existe una división clara entre las funcionalidades que desempeña cada usuario, todos hacen de todo.

Se realizará una reunion a la semana en clase y una reunión fuera de la escuela, para organizar y llevar recuento del trabajo realizado.
Se realizará una reunion a la semana en clase y una reunión fuera de la escuela, para organizar y llevar recuento del trabajo realizado y que será lo siguiente en lo que se va a trabajar.

98 changes: 20 additions & 78 deletions docs/src/05_building_block_view.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,104 +3,46 @@ ifndef::imagesdir[:imagesdir: ../images]
[[section-building-block-view]]


== Vista de Bloque de Construcción (EN desarollo) 🗳️
image::Building Block View.jpg["Building Block View"]
== Vista de Bloque de Construcción


=== Sistema general de caja blanca 📏
=== Sistema general de caja blanca

Este diagrama del sistema general muestra una descripción del sistema con los componentes básicos.

image::Whitebox Overall System.jpg["Whitebox Overall System"]



image::blockview0.drawio.png["Whitebox Overall System"]

Bloques de Construcción Contenidos::

* User Interface (Frontend)

* Logica de Negocio(Backend)

* Base datos

* API Preguntas


Interfaces Importantes::


EN DESARROLLO.


==== <Interfaz Gráfica>
[options="header",cols="1,2"]
|===
| UI | Descripción
| Proposito / Responsabilidad | La Interfaz de Usuario (UI) - Black Box 1 es responsable de proporcionar una interfaz interactiva y amigable para los usuarios finales. Sirve como el punto principal de interacción entre la aplicación y los usuarios, y facilita la experiencia general del usuario.
| Interface(s) | Interfaz de Entrada del Usuario: Acepta la entrada del usuario a través de varios controles, como botones, formularios y campos de entrada.
Interfaz de Visualización: Renderiza y muestra información al usuario, incluyendo datos, mensajes y elementos visuales.
| Caracteristicas de Calidad / Rendimiento | Capacidad de Respuesta: La UI debe responder de manera rápida a las interacciones del usuario para garantizar una experiencia fluida y eficiente.
Accesibilidad: Adhiere a los estándares de accesibilidad para proporcionar una experiencia inclusiva para los usuarios.
|===



=== <Loggin>

Su función principal es permitir el acceso a los usuarios a la aplicación , y guardar los resultados de estos.



==== <Api de preguntas>
Su propósito es proporcionar preguntas de manera dinámica al usuario.


EN DESARROLLO.

==== <Lógica de negocio >
Se encargará de gestionar toda la programación necesaria de cara a la lógica.

EN DESARROLLO.

==== <Base de datos>
Dará almacenamiento al sistema de manera persistente y a los récords de los usuarios.

EN DESARROLLO.

=== Level 2

==== White Box _<Interfaz de usuario>_

En desarollo.

==== White Box _<Login>_

En desarollo.
* wiq_es0d: la aplicación web. Los usuarios pueden usarla para jugar o pueden usar su API. Usa Wikidata para generar las preguntas.

=== Nivel 2

==== White Box _<Api preguntas>_
image::blockview1.drawio.png["Nivel 2"]

En desarollo.
==== White Box _webapp_

==== White Box _<Logica de negocio >_
Interfaz web.

En desarollo.
==== White Box _gatewayservice_

Puente entre webapp y resto de componentes.

=== Level 3 En desarrollo.
==== White Box _questionservice_

Generador de las preguntas.

==== White Box <_building block x.1_>
=== Nivel 3.

En desarollo.
image::blockview2.drawio.png["Nivel 3"]

==== White Box _authservice_

==== White Box <_building block x.2_>
Gestión del inicio de sesión.

En desarollo.
==== White Box _historyservice_

Gestión del histórico de participación de los usuarios en el sistema.

==== White Box <_building block y.1_>
==== White Box _userservice_

En desarollo.
Gestión del registro de usuarios.
8 changes: 3 additions & 5 deletions docs/src/06_runtime_view.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,14 @@ ifndef::imagesdir[:imagesdir: ../images]
== Vista de Ejecución 📽️


=== Escenario de Ejecucion1️⃣
=== Escenario de Ejecución 1

[plantuml,"Sequence diagram",png]

image::Diagrama de secuencia plantuml.png["Diagrama de secuencia plantuml"]

Diagrama de secuencia con plantuml (se contempla sólo el uso correcto de la aplicación)


=== Escenario de Ejecucion2️⃣
=== Escenario de Ejecución 2

*** Diagrama de secuencia
** Descripción: diagrama de los usos básicos en la aplicación, como inicio de sesión, empezar a jugar y contestar las preguntas.
Expand All @@ -24,7 +22,7 @@ Diagrama de secuencia con plantuml (se contempla sólo el uso correcto de la apl

image::Digrama de secuencia Juego de preguntas.jpg["Diagrama de secuencia"]

=== Escenario de Ejecucion3️⃣
=== Escenario de Ejecución 3

*** Diagrama de casos de uso:
** Descripción: diagrama básico de los distintos casos de uso que hay en el proyecto
Expand Down
4 changes: 2 additions & 2 deletions docs/src/07_deployment_view.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ ifndef::imagesdir[:imagesdir: ../images]
== Vista de Despliegue 👀


Los sevicios que se van a desplegar son los siguientes:
Los servicios que se van a desplegar son los siguientes:

* User service: Servicio Express que maneja la inserción de nuevos usuarios en el sistema.
* Auth service: Servicio Express que maneja la autenticación de usuarios.
* Question service: Servicio Express que maneja la generación y las llamadas a la API de Wikidata.
* Question service: Servicio Express que maneja la generación de preguntas y las llamadas a la API de Wikidata.
* Webapp: Aplicación web React que utiliza el servicio de puerta de enlace para permitir funciones básicas de inicio de sesión y nuevos usuarios.
* History service: Servicio Express que maneja el historial de juegos jugados por los usuarios.
* Gateway service: Servicio Express expuesto al público que sirve como proxy a los anteriores.
Expand Down
Loading