Skip to content

Commit

Permalink
arreglos doc 1-7
Browse files Browse the repository at this point in the history
  • Loading branch information
fer4github committed Apr 30, 2024
1 parent 030d909 commit 71fb39c
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 25 deletions.
4 changes: 2 additions & 2 deletions docs/src/01_introduction_and_goals.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,14 @@ See https://docs.arc42.org/section-1/[Introduction and Goals] in the arc42 docum
****

* *Frontend Web Desplegado*: Habrá una interfaz web accesible vía navegador.
* *Registro de Usuarios y Consulta de Historial*: Usuarios podrán registrarse y ver su historial de participación.
* *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.

Mira los (https://docs.google.com/document/d/1pahOfYFY--Wi7_9bbxiKOGevB_9tOSyRm78blncgBKg/edit)[Requisitos de la práctica] para obtener más información.
Mira los https://docs.google.com/document/d/1pahOfYFY--Wi7_9bbxiKOGevB_9tOSyRm78blncgBKg/edit[Requisitos de la práctica] para obtener más información.


=== Metas de Calidad
Expand Down
2 changes: 1 addition & 1 deletion docs/src/02_architecture_constraints.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ a través de nuestro grupo de WhatsApp y en casos necesarios realizamos reunione
|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 un que sigamos los principios de "codigo limpio"
|_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*
Expand Down
6 changes: 3 additions & 3 deletions docs/src/03_system_scope_and_context.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -113,16 +113,16 @@ image::03_2_contexto_tecnico2.png["Diagrama de contexto técnico"]
|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
|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
|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 funcina como puerta de enlace para coordinar el resto de modulos del sistema.
|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.
Expand Down
6 changes: 2 additions & 4 deletions docs/src/04_solution_strategy.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,6 @@ See https://docs.arc42.org/section-4/[Solution Strategy] in the arc42 documentat

* *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 su historial de partidas, así como algunas de sus estadísticas.
* *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.

* *MySQL:* Es una base de datos relacional ampliamente utilizada en proyectos debido a su fiabilidad, rendimiento y escalabilidad. Su estructura tabular facilita la organización de datos y su consulta a través de un lenguaje estándar (SQL).
* *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.
14 changes: 7 additions & 7 deletions docs/src/06_runtime_view.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -39,23 +39,23 @@ See https://docs.arc42.org/section-6/[Runtime View] in the arc42 documentation.

=== Inicio de Sesión

Al iniciar sesión en nuestra Web App, 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.
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 Web App 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.
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 Web App, donde se utilizará para mantener la sesión del usuario durante su interacción con la plataforma de juego.
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 Web App cambiará su interfaz para mostrar que ha iniciado sesión correctamente.
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.

image::06_acceso3.png["Diagrama vista de tiempo de ejecución para el acceso"]

=== Interacción con Preguntas

Comenzaremos con la REST API que obtendrá las preguntas de Wikidata junto con sus opciones de respuestas correctas e incorrectas.
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 Web App 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 Web App verificará la precisión de la respuesta.
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 Web App ofrecerá una retroalimentación visual clara que permitirá al usuario comprender si su respuesta fue correcta o incorrecta.
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.

Expand Down
19 changes: 11 additions & 8 deletions docs/src/07_deployment_view.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,16 @@ For multiple environments or alternative deployments please copy and adapt this

image::07_DiagramaDespliegue5.png["Diagrama de despliegue"]

****
Utilizamos como servidor en la nube Azure como infraestructura principal, dentro de ella tenemos desplegados cinco contenedores de Docker.
* UserService encargado de la gestión de usuarios, maneja autenticación, gestión de los perfiles, etc.
* WebApp donde reside la aplicación, con lo que interactúan los usuarios a traves de una interfaz de usuario en el navegador web.
* GatewayService es la puerta de enlace entre la aplicación y los servicios subyacentes.
* QuestionService encargado de obtener las preguntas de un servidor externo que en este caso es wikidata.
* MongoDB alberga la base de datos para almacenar usuarios y sus estadísticas.
* *UserService*: encargado de la gestión de usuarios, maneja autenticación, gestión de los perfiles, etc..
* *WebApp*: donde reside la aplicación, con lo que interactúan los usuarios a traves de una interfaz de usuario en el navegador web.
* *GatewayService*: es la puerta de enlace entre la aplicación y los servicios subyacentes.
* *QuestionService*: encargado de obtener las preguntas de un servidor externo que en este caso es Wikidata.
* *MongoDB*: alberga la base de datos para almacenar usuarios y sus estadísticas.
****


Mapeo de bloques de construcción a infraestructura::
Expand All @@ -81,11 +85,10 @@ Mapeo de bloques de construcción a infraestructura::
|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, almacenándola
posteriormente en una base de datos MySQL.
|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 haciendo uso de la API Firebase.
|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.
Expand Down

0 comments on commit 71fb39c

Please sign in to comment.