Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
uo289432 committed Mar 12, 2024
2 parents e78442c + ee48a7c commit 4188e50
Show file tree
Hide file tree
Showing 72 changed files with 25,600 additions and 451 deletions.
1 change: 0 additions & 1 deletion .env

This file was deleted.

23 changes: 12 additions & 11 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ on:
push:
branches:
- master
- develop
pull_request:
types: [opened, synchronize, reopened]
jobs:
Expand All @@ -13,16 +14,16 @@ jobs:
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm --prefix users/authservice ci
- run: npm --prefix users/userservice ci
- run: npm --prefix gatewayservice ci
- run: npm --prefix webapp ci
- run: npm --prefix users/authservice test -- --coverage
- run: npm --prefix users/userservice test -- --coverage
- run: npm --prefix gatewayservice test -- --coverage
- run: npm --prefix webapp test -- --coverage
- name: Analyze with SonarCloud
uses: sonarsource/sonarcloud-github-action@master
#- run: npm --prefix users/authservice ci
#- run: npm --prefix users/userservice ci
#- run: npm --prefix gatewayservice ci
#- run: npm --prefix webapp ci
#- run: npm --prefix users/authservice test -- --coverage
#- run: npm --prefix users/userservice test -- --coverage
#- run: npm --prefix gatewayservice test -- --coverage
#- run: npm --prefix webapp test -- --coverage
#- name: Analyze with SonarCloud
# uses: sonarsource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
58 changes: 8 additions & 50 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,8 @@ jobs:
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm --prefix users/authservice ci
- run: npm --prefix users/userservice ci
- run: npm --prefix gatewayservice ci
- run: npm --prefix webapp ci
- run: npm --prefix users/authservice test -- --coverage
- run: npm --prefix users/userservice test -- --coverage
- run: npm --prefix gatewayservice test -- --coverage
- run: npm --prefix webapp test -- --coverage
# - run: npm --prefix webapp test -- --coverage
- name: Analyze with SonarCloud
uses: sonarsource/sonarcloud-github-action@master
env:
Expand All @@ -33,12 +27,9 @@ jobs:
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm --prefix users/authservice install
- run: npm --prefix users/userservice install
- run: npm --prefix gatewayservice install
- run: npm --prefix webapp install
- run: npm --prefix webapp run build
- run: npm --prefix webapp run test:e2e
# - run: npm --prefix webapp run test:e2e
docker-push-webapp:
name: Push webapp Docker Image to GitHub Packages
runs-on: ubuntu-latest
Expand All @@ -52,14 +43,15 @@ jobs:
uses: elgohr/Publish-Docker-Github-Action@v5
env:
API_URI: http://${{ secrets.DEPLOY_HOST }}:8000
REACT_APP_FIREBASE_KEY: ${{ secrets.REACT_APP_FIREBASE_KEY }}
with:
name: arquisoft/wiq_es05a/webapp
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
registry: ghcr.io
workdir: webapp
buildargs: API_URI
docker-push-authservice:
buildargs: API_URI, REACT_APP_FIREBASE_KEY
docker-push-questionservice:
name: Push auth service Docker Image to GitHub Packages
runs-on: ubuntu-latest
permissions:
Expand All @@ -71,49 +63,15 @@ jobs:
- name: Publish to Registry
uses: elgohr/Publish-Docker-Github-Action@v5
with:
name: arquisoft/wiq_es05a/authservice
name: arquisoft/wiq_es05a/questionservice
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
registry: ghcr.io
workdir: users/authservice
docker-push-userservice:
name: Push user service Docker Image to GitHub Packages
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
needs: [e2e-tests]
steps:
- uses: actions/checkout@v4
- name: Publish to Registry
uses: elgohr/Publish-Docker-Github-Action@v5
with:
name: arquisoft/wiq_es05a/userservice
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
registry: ghcr.io
workdir: users/userservice
docker-push-gatewayservice:
name: Push gateway service Docker Image to GitHub Packages
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
needs: [e2e-tests]
steps:
- uses: actions/checkout@v4
- name: Publish to Registry
uses: elgohr/Publish-Docker-Github-Action@v5
with:
name: arquisoft/wiq_es05a/gatewayservice
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
registry: ghcr.io
workdir: gatewayservice
workdir: questionservice
deploy:
name: Deploy over SSH
runs-on: ubuntu-latest
needs: [docker-push-userservice,docker-push-authservice,docker-push-gatewayservice,docker-push-webapp]
needs: [docker-push-questionservice,docker-push-webapp]
steps:
- name: Deploy over SSH
uses: fifsky/ssh-action@master
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
node_modules
coverage
docs/build
.vscode
.env
.vscode
63 changes: 5 additions & 58 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,68 +1,18 @@
version: '3'
services:
mongodb:
container_name: mongodb-${teamname:-defaultASW}
image: mongo
questionservice:
container_name: questionservice-${teamname:-defaultASW}
image: ghcr.io/arquisoft/wiq_es05a/questionservice:latest
profiles: ["dev", "prod"]
volumes:
- mongodb_data:/data/db
ports:
- "27017:27017"
networks:
- mynetwork

authservice:
container_name: authservice-${teamname:-defaultASW}
image: ghcr.io/arquisoft/wiq_es05a/authservice:latest
profiles: ["dev", "prod"]
build: ./users/authservice
depends_on:
- mongodb
ports:
- "8002:8002"
networks:
- mynetwork
environment:
MONGODB_URI: mongodb://mongodb:27017/userdb

userservice:
container_name: userservice-${teamname:-defaultASW}
image: ghcr.io/arquisoft/wiq_es05a/userservice:latest
profiles: ["dev", "prod"]
build: ./users/userservice
depends_on:
- mongodb
build: ./questionservice
ports:
- "8001:8001"
networks:
- mynetwork
environment:
MONGODB_URI: mongodb://mongodb:27017/userdb

gatewayservice:
container_name: gatewayservice-${teamname:-defaultASW}
image: ghcr.io/arquisoft/wiq_es05a/gatewayservice:latest
profiles: ["dev", "prod"]
build: ./gatewayservice
depends_on:
- mongodb
- userservice
- authservice
ports:
- "8000:8000"
networks:
- mynetwork
environment:
AUTH_SERVICE_URL: http://authservice:8002
USER_SERVICE_URL: http://userservice:8001
- "2500:2500"

webapp:
container_name: webapp-${teamname:-defaultASW}
image: ghcr.io/arquisoft/wiq_es05a/webapp:latest
profiles: ["dev", "prod"]
build: ./webapp
depends_on:
- gatewayservice
ports:
- "3000:3000"

Expand All @@ -73,12 +23,9 @@ services:
networks:
- mynetwork
volumes:
- ./gatewayservice/monitoring/prometheus:/etc/prometheus
- prometheus_data:/prometheus
ports:
- "9090:9090"
depends_on:
- gatewayservice

grafana:
image: grafana/grafana
Expand Down
Binary file modified docs/images/03_1_contexto-negocio.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 modified docs/images/03_2_contexto_tecnico.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/05_nivel_2.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/05_sistema-general-caja-blanca.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/06_acceso.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/06_pregunta.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/07_diagramaDespliegue.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/08_1_pantalla-estadisticas.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/08_1_pantalla-juego.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/08_1_pantalla-principal.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/10_1_arbol-calidad.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 6 additions & 5 deletions docs/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@
// configure EN settings for asciidoc
include::src/config.adoc[]

= image:arc42-logo.png[arc42] Template
= image:arc42-logo.png[arc42] Documentación wiq_es05a
:revnumber: 8.2 EN
:revdate: January 2023
:revremark: (based upon AsciiDoc version)
// toc-title definition MUST follow document title without blank line!
:toc: left
:toc-title: Table of Contents

//additional style for arc42 help callouts
Expand All @@ -29,10 +30,8 @@ ifdef::backend-html5[]
endif::backend-html5[]


include::src/about-arc42.adoc[]

// horizontal line
***


[role="arc42help"]
****
Expand Down Expand Up @@ -96,4 +95,6 @@ include::src/11_technical_risks.adoc[]
// 12. Glossary
include::src/12_glossary.adoc[]


// horizontal line
***
include::src/about-arc42.adoc[]
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.

36 changes: 22 additions & 14 deletions docs/src/01_introduction_and_goals.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,16 @@ See https://docs.arc42.org/section-1/[Introduction and Goals] in the arc42 docum
****

* Los usuarios podrá registrarse en la aplicación.
* Los ususarios registrados podrán iniciar su sesión en la aplicación.
* Los usuarios registrados podrán jugar.
* Los usuarios registrados podrán consultar su historial de participación: número de juegos, preguntas acertadas/falladas, tiempos, etc.
* *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.
* *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.


=== Metas de Calidad

Expand All @@ -71,11 +77,13 @@ If you as an architect do not know how the quality of your work will be judged..
.Form
A table with quality goals and concrete scenarios, ordered by priorities
****
[cols="e,2e" options="header"]
|===
|Nombre|Descripción
|Usabilidad| La aplicación tiene que poder usarse por un publico diverso
|Privacidad| Los datos de los usuarios tienen que ser privados
|Testeable| La aplicación debe probarse con cada actualización
|*Usabilidad*| _La aplicación tiene que poder usarse por el mayor tipo de usuarios_
|*Rendimiento*| _El tiempo de respuesta de la aplicación debe ser rápido_
|*Testeable*| _La aplicación debe pasar las pruebas generadas automaticamente para cada versión_
|*Disponibilidad*| _La aplicación debe estar disponible y caerse lo menos posible_
|===
=== Stakeholders

Expand All @@ -99,13 +107,13 @@ These stakeholders determine the extent and the level of detail of your work and
Table with role names, person names, and their expectations with respect to the architecture and its documentation.
****

[options="header",cols="1,2,2"]
[cols="e,2e,2e" options="header"]
|===
|Rol/Nombre|Expectativa|Descripción
| Cristian Augusto | Una buena aplicación | Profesor de la asignatura
| HappySw | Una aplicación buena para atraer al mayor número de usuarios | Equipo de desarrollo
| Wikidata | Un buen uso de su aplicación | Empresa que nos facilita la API para obtener información
| Usuarios Registrados | Una buena aplicación | Los usuarios de la aplicación
| Usuarios No Registrados | Una buena aplicación | Los usuarios de la aplicación
| RTVE | Una buena versión de su juego "Saber y Ganar" | Empresa contratista, el cliente
| *Cristian Augusto* | _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* | _Una aplicación que proporcione los servicios esperados_ | _Los usuarios de la aplicación_
| *Usuarios No Registrados* | _Una buena aplicación_ | _Los usuarios de la aplicación_
| *RTVE* | _Una buena versión de su juego "Saber y Ganar"_ | _Dueño del producto_
|===
27 changes: 20 additions & 7 deletions docs/src/02_architecture_constraints.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ See https://docs.arc42.org/section-2/[Architecture Constraints] in the arc42 doc
****

Este proyecto está limitado por una serie de pautas marcadas por los responsables de la asignatura.
Por ello esta aplicación está desarrollada siguiendo una serie de requisitos los cuales nombraremos a continuación.
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.

=== Limitaciones técnicas

Expand All @@ -36,15 +36,16 @@ Por ello esta aplicación está desarrollada siguiendo una serie de requisitos l
|Restricción |Explicación

|*GIT*
|_Esta tecnología nos permite almacenar el proyecto y llevar un control de versiones de este, utilizando el servicio de GitHub. Además nos permite
|_En la asignatura se requiere el uso del sistema de control de versiones GIT, además de emplear GitHub como repositorio. Además nos permite
una continua integración mediante la paralelización del trabajo usando el sistema de ramas. También GitHub permite organizar las distintas tareas de cada
miembro del equipo mediante el uso de las Issues._

|*Docker*
|_Este programa es utilizado para desplegar aquí la aplicación web y realizar las pruebas pertinentes._
|_Esta tecnología de contenerización es utilizada para desplegar la aplicación web tanto en el entorno de desarrollo como en el de producción
y realizar las pruebas pertinentes._

|*Wikidata*
|_Todas las preguntas del juego se obtienen a partir de esta plataforma, generando aleatoriamente las preguntas y respuestas correctas y también las falsas._
|_Fuente de información utilizada para generar aleatoriamente tanto las preguntas como las respuestas correctas e incorrectas del juego._
|===

=== Limitaciones organizativas
Expand All @@ -59,7 +60,7 @@ 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
estaban poco experimentados con el uso de algunas de las tecnologías necesarias por lo que fue necesario aprender a trabajar, en algunos casos desde cero,
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*
Expand All @@ -80,5 +81,17 @@ a través de nuestro grupo de WhatsApp y en casos necesarios realizamos reunione
|_Para crearla usaremos la plantilla Arc42 con la finalidad de que sea sencilla y práctica._

|*Accesibilidad*
|_Nuestro aplicación puede ser utilizada por cualquier tipo de usuario hispanohablante, sin importar quien sea, ya que será fácil de entender e interactuar._
|_Intentaremos que nuestra aplicación puede ser utilizada por cualquier tipo de usuario, sin importar quién sea. Seguiremos el estándard WCAG de la W3C,
usando el color, tamaño de texto... adecuados para ello._

|*Estructura*
|_Debe seguir una estructura fija y bajo los mismos estandares. Los diferentes modulos estarán separados en carpetas
principalmente: 'users' para la api rest y el registro de usuarios, 'webapp' para el desarrollo de la aplicación, 'docs'
para la documentación._

|*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._


|===
Loading

0 comments on commit 4188e50

Please sign in to comment.