Skip to content

Commit

Permalink
Merge branch 'newDevelop' into Fer-Despliegue
Browse files Browse the repository at this point in the history
  • Loading branch information
fer4github committed Apr 30, 2024
2 parents 3fb6f28 + b91bf3e commit 4733608
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 26 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,15 @@
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_es05a&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_es05a)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_es05a&metric=coverage)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_es05a)

This is a base repo for the [Software Architecture course](http://arquisoft.github.io/) in [2023/2024 edition](https://arquisoft.github.io/course2324.html).
This is a repo for the [Software Architecture course](http://arquisoft.github.io/) in [2023/2024 edition](https://arquisoft.github.io/course2324.html).

This repo is a basic application composed of several components.

- **Gateway service**. Express service that is exposed to the public and serves as a proxy to the two previous ones.
- **User service**. Express service that handles the insertion of new users in the system.
- **Auth service**. Express service that handles the authentication of users.
- **Webapp**. React web application that uses the gateway service to allow basic login and new user features.
- **Question service**. API Rest service that generates questions and answers for the game using Wikidata.

Both the user and auth service share a Mongo database that is accessed with mongoose.

Expand Down
2 changes: 1 addition & 1 deletion docs/src/01_introduction_and_goals.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ These include
* relevant stakeholders and their expectations
****

El objetivo es crear una aplicación web llamada QuizMaster basada en el programa de televisión "Saber y Ganar".
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.

Expand Down
9 changes: 4 additions & 5 deletions docs/src/09_architecture_decisions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,10 @@ There you will find links and examples about ADR.
|*Angular, Vue...*

|*Base de Datos*
|_Donde almacenaremos la informacion de los usuarios._
|*MySQL*
|_Decidimos utilizarla porque es una base de datos relacional y para almacenar preguntas con sus respectivas respuestas no necesitamos una base de datos
no relacional con una complejidad excesiva._
|*MongoDB, Postgress, Redis, MariaDB, SQLLite...*
|_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._
Expand Down
31 changes: 15 additions & 16 deletions docs/src/11_technical_risks.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -51,42 +51,41 @@ las planeadas para solucionar este tipo de problemas._
|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, parará 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._
| _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 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._
| *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._

|===

=== Deudas Técnicas

TODO=== Deudas técnicas

[cols="e,2e" options="header"]
|===

| 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
| *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 solo guarde las estadísticas y muestre un mensaje al jugador actual, dándole la opción de elegir qué desea hacer a continuación. Podria dar confusión a los usuarios ya que se puede dar el caso que no sepan como seguir la 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 el tiempo de respuesta al finalizar la partida en las estadísticas de cada jugador, pero lamentablemente no hemos podido lograrlo. Esta funcionalidad habría sido beneficiosa para mejorar el apartado de las estadísticas de nuestra aplicación.
| _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.
| _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, nuestra aplicación estará disponible solo en español. Una vez que hayamos asegurado que todas las funcionalidades están correctamente implementadas, daremos el paso de internacionalizarla. Esto nos permitirá hacerla accesible para usuarios que no hablen español como lengua principal
| _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.
| _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._
|===
6 changes: 3 additions & 3 deletions docs/src/12_glossary.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ See https://docs.arc42.org/section-12/[Glossary] in the arc42 documentation.
|*Docker*
|Plataforma de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software.

|*MySQL*
|Es el sistema de gestión de bases de datos relacionales de código abierto más popular del mundo.
MySQL es utilizado por muchas de las aplicaciones más accedidas, incluyendo Facebook, Twitter, Netflix, Uber, Airbnb, Shopify y Booking.com.
|*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.
Expand Down

0 comments on commit 4733608

Please sign in to comment.