Skip to content

Commit

Permalink
Merge branch 'develop' into Pablo-Despliegue
Browse files Browse the repository at this point in the history
  • Loading branch information
uo289432 committed Apr 9, 2024
2 parents 08ffae3 + c2a93af commit d1ae68b
Show file tree
Hide file tree
Showing 81 changed files with 46,173 additions and 45,438 deletions.
22 changes: 12 additions & 10 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,18 @@ 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 userservice/authservice ci
- run: npm --prefix userservice/userservice ci
- run: npm --prefix gatewayservice ci
- run: npm --prefix questionservice ci
- run: npm --prefix webapp ci
- run: npm --prefix userservice/authservice test -- --coverage
- run: npm --prefix userservice/userservice test -- --coverage
- run: npm --prefix gatewayservice test -- --coverage
- run: npm --prefix questionservice 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 }}
85 changes: 78 additions & 7 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,16 @@ jobs:
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm --prefix userservice/authservice ci
- run: npm --prefix userservice/userservice ci
- run: npm --prefix gatewayservice ci
- run: npm --prefix webapp ci
# - run: npm --prefix webapp test -- --coverage
- run: npm --prefix questionservice ci
- run: npm --prefix userservice/authservice test -- --coverage
- run: npm --prefix userservice/userservice test -- --coverage
- run: npm --prefix gatewayservice test -- --coverage
- run: npm --prefix webapp test -- --coverage
- run: npm --prefix questionservice test -- --coverage
- name: Analyze with SonarCloud
uses: sonarsource/sonarcloud-github-action@master
env:
Expand All @@ -27,9 +35,13 @@ jobs:
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm --prefix userservice/authservice install
- run: npm --prefix userservice/userservice install
- run: npm --prefix gatewayservice install
- run: npm --prefix questionservice 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 @@ -43,15 +55,14 @@ 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, REACT_APP_FIREBASE_KEY
docker-push-questionservice:
buildargs: API_URI
docker-push-authservice:
name: Push auth service Docker Image to GitHub Packages
runs-on: ubuntu-latest
permissions:
Expand All @@ -60,6 +71,61 @@ jobs:
needs: [e2e-tests]
steps:
- uses: actions/checkout@v4
- name: Publish to Registry
uses: elgohr/Publish-Docker-Github-Action@v5
with:
name: arquisoft/wiq_es05a/authservice
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: Update OpenAPI configuration
run: |
DEPLOY_HOST=${{ secrets.DEPLOY_HOST }}
sed -i "s/SOMEIP/${DEPLOY_HOST}/g" gatewayservice/openapi.yaml
- 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
docker-push-questionservice:
name: Push questionservice 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:
Expand All @@ -71,7 +137,12 @@ jobs:
deploy:
name: Deploy over SSH
runs-on: ubuntu-latest
needs: [docker-push-questionservice,docker-push-webapp]
needs:
- docker-push-userservice
- docker-push-authservice
- docker-push-gatewayservice
- docker-push-questionservice
- docker-push-webapp
steps:
- name: Deploy over SSH
uses: fifsky/ssh-action@master
Expand All @@ -83,4 +154,4 @@ jobs:
wget https://raw.githubusercontent.com/arquisoft/wiq_es05a/master/docker-compose.yml -O docker-compose.yml
wget https://raw.githubusercontent.com/arquisoft/wiq_es05a/master/.env -O .env
docker compose --profile prod down
docker compose --profile prod up -d
docker compose --profile prod up -d --pull always
1 change: 1 addition & 0 deletions debug.log
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[0404/101930.492:ERROR:registration_protocol_win.cc(107)] CreateFile: El sistema no puede encontrar el archivo especificado. (0x2)
68 changes: 66 additions & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,83 @@
version: '3'
services:
mongodb:
container_name: mongodb-${teamname:-defaultASW}
image: mongo
profiles: ["dev", "prod"]
volumes:
- mongodb_data:/data/db
ports:
- "27017:27017"
networks:
- mynetwork

questionservice:
container_name: questionservice-${teamname:-defaultASW}
image: ghcr.io/arquisoft/wiq_es05a/questionservice:latest
profiles: ["dev", "prod"]
build: ./questionservice
ports:
- "2500:2500"
- "8003:8003"
environment:
- ACCESS_CONTROL_ALLOW_ORIGIN=http://webapp:3000
- ACCESS_CONTROL_ALLOW_ORIGIN=http://localhost:3000/game
networks:
- mynetwork

authservice:
container_name: authservice-${teamname:-defaultASW}
image: ghcr.io/arquisoft/wiq_0/authservice:latest
profiles: ["dev", "prod"]
build: ./userservice/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_0/userservice:latest
profiles: ["dev", "prod"]
build: ./userservice/userservice
depends_on:
- mongodb
ports:
- "8001:8001"
networks:
- mynetwork
environment:
MONGODB_URI: mongodb://mongodb:27017/userdb

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

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 Down Expand Up @@ -46,7 +111,6 @@ services:
depends_on:
- prometheus


volumes:
mongodb_data:
prometheus_data:
Expand Down
Binary file removed docs/images/03_1_contexto-negocio.png
Binary file not shown.
Binary file added docs/images/03_1_contexto-negocio2.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 modified 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 modified 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 removed docs/images/06_acceso.png
Binary file not shown.
Binary file added docs/images/06_acceso2.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/06_pregunta.png
Binary file not shown.
Binary file added docs/images/06_pregunta2.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_DiagramaDespliegue3.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/07_diagramaDespliegue.png
Binary file not shown.
1 change: 0 additions & 1 deletion docs/package-lock.json

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

12 changes: 6 additions & 6 deletions docs/src/01_introduction_and_goals.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,9 @@ 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 el mayor tipo de usuarios_
|*Usabilidad*| _La aplicación tiene que poder usarse por el mayor tipo de usuarios, promoviendo una experiencia intuitiva y accesible desde el primer contacto. Además, a medida que los usuarios interactúan más con la aplicación, esta se vuelva más fácil de usar._
|*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_
|*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*| _La aplicación debe estar disponible y caerse lo menos posible_
|===
=== Stakeholders
Expand Down Expand Up @@ -110,10 +110,10 @@ Table with role names, person names, and their expectations with respect to the
[cols="e,2e,2e" options="header"]
|===
|Rol/Nombre|Expectativa|Descripción
| *Cristian Augusto* | _Aplicar correctamente los conocimientos y competencias adquiridos en la asignatura Arquitectura del Software_ | _Profesor de la asignatura_
| *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* | _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_
| *Usuarios Registrados* | _Poder jugar en la aplicación que recrea el juego sin tener que participar en el programa._ | _Usuarios que ya han jugado anteriormente_
| *Usuarios No Registrados* | _Poder registrarse lo más rápido posible para empezar a jugar al juego de preguntas y respuestas_ | _Usuarios que nunca jugaron antes_
| *RTVE* | _Versión mejorada de "Saber y Ganar" para ganar mayor audiencia e interés social._ | _Dueño del producto_
|===
34 changes: 23 additions & 11 deletions docs/src/02_architecture_constraints.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,15 @@ Por ello esta aplicación está desarrollada siguiendo una serie de limitaciones
|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. 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._
|_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 es utilizada para desplegar la aplicación web tanto en el entorno de desarrollo como en el de producción
|_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*
|_Fuente de información utilizada para generar aleatoriamente tanto las preguntas como las respuestas correctas e incorrectas del juego._
|_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._
|===

=== Limitaciones organizativas
Expand All @@ -66,6 +65,19 @@ 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._

|===

=== Convenciones
Expand All @@ -75,19 +87,19 @@ 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._
|_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 código limpio ('clean code'),
es decir, que sea fácil de entender, mantener y modificar, y que garantize la claridad, simplicidad y legibilidad._

|*Documentación*
|_Para crearla usaremos la plantilla Arc42 con la finalidad de que sea sencilla y práctica._

|*Accesibilidad*
|_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._
|_Nos esforzaremos para que nuestra aplicación sea accesible para todos los usuarios, independientemente de su perfil o características individuales._

|*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._
|_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,
Expand Down
Loading

0 comments on commit d1ae68b

Please sign in to comment.