From ff5fadb6689c621fb7a4f0c45d1268f4aa0f1ca7 Mon Sep 17 00:00:00 2001 From: "Jorge A. Fidalgo" <47144679+ExarcaFidalgo@users.noreply.github.com> Date: Mon, 22 Jan 2024 17:05:22 +0100 Subject: [PATCH 01/25] Update sonar-project.properties --- sonar-project.properties | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sonar-project.properties b/sonar-project.properties index cdc6bb02..8ce93a6f 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,17 +1,17 @@ -sonar.projectKey=Arquisoft_wiq_0 +sonar.projectKey=Arquisoft_wiq_es6b sonar.organization=arquisoft # This is the name and version displayed in the SonarCloud UI. -sonar.projectName=wiq_0 +sonar.projectName=wiq_es6b sonar.projectVersion=1.0 # Encoding of the source code. Default is default system encoding sonar.host.url=https://sonarcloud.io sonar.language=js -sonar.projectName=wiq_0 +sonar.projectName=wiq_es6b sonar.coverage.exclusions=**/*.test.js sonar.sources=webapp/src/components,users/authservice,users/userservice,gatewayservice sonar.sourceEncoding=UTF-8 sonar.exclusions=node_modules/** -sonar.javascript.lcov.reportPaths=**/coverage/lcov.info \ No newline at end of file +sonar.javascript.lcov.reportPaths=**/coverage/lcov.info From 3a7d874f9df5511bda8500dcbbbcdba9b52e0ee9 Mon Sep 17 00:00:00 2001 From: "Jorge A. Fidalgo" <47144679+ExarcaFidalgo@users.noreply.github.com> Date: Mon, 22 Jan 2024 17:05:33 +0100 Subject: [PATCH 02/25] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 62fe7191..f9835b51 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# wiq_0 +# wiq_es6b [![Deploy on release](https://github.com/Arquisoft/wiq_0/actions/workflows/release.yml/badge.svg)](https://github.com/Arquisoft/wiq_0/actions/workflows/release.yml) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_0&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_0) From 09590d89a1847223f3d8494d66ed9087c124c49d Mon Sep 17 00:00:00 2001 From: fidalgoLXXVI Date: Tue, 23 Jan 2024 10:49:56 +0100 Subject: [PATCH 03/25] 0 por es6b --- .env | 2 +- .github/workflows/release.yml | 12 ++++++------ README.md | 10 +++++----- docker-compose.yml | 8 ++++---- docs/README.md | 4 ++-- gatewayservice/package.json | 6 +++--- users/authservice/package.json | 6 +++--- users/userservice/package.json | 6 +++--- 8 files changed, 27 insertions(+), 27 deletions(-) diff --git a/.env b/.env index 131b17e4..d1cb9ba3 100644 --- a/.env +++ b/.env @@ -1 +1 @@ -teamname="wiq_0" \ No newline at end of file +teamname="wiq_es6b" \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 08a91806..46569636 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -53,7 +53,7 @@ jobs: env: API_URI: http://${{ secrets.DEPLOY_HOST }}:8000 with: - name: arquisoft/wiq_0/webapp + name: arquisoft/wiq_es6b/webapp username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -71,7 +71,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@v5 with: - name: arquisoft/wiq_0/authservice + name: arquisoft/wiq_es6b/authservice username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -88,7 +88,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@v5 with: - name: arquisoft/wiq_0/userservice + name: arquisoft/wiq_es6b/userservice username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -105,7 +105,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@v5 with: - name: arquisoft/wiq_0/gatewayservice + name: arquisoft/wiq_es6b/gatewayservice username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -122,7 +122,7 @@ jobs: user: ${{ secrets.DEPLOY_USER }} key: ${{ secrets.DEPLOY_KEY }} command: | - wget https://raw.githubusercontent.com/arquisoft/wiq_0/master/docker-compose.yml - wget https://raw.githubusercontent.com/arquisoft/wiq_0/master/docker-compose-deploy.override.yml + wget https://raw.githubusercontent.com/arquisoft/wiq_es6b/master/docker-compose.yml + wget https://raw.githubusercontent.com/arquisoft/wiq_es6b/master/docker-compose-deploy.override.yml docker compose down docker compose --profile prod up -d diff --git a/README.md b/README.md index f9835b51..ed45104e 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # wiq_es6b -[![Deploy on release](https://github.com/Arquisoft/wiq_0/actions/workflows/release.yml/badge.svg)](https://github.com/Arquisoft/wiq_0/actions/workflows/release.yml) -[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_0&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_0) -[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_0&metric=coverage)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_0) +[![Deploy on release](https://github.com/Arquisoft/wiq_es6b/actions/workflows/release.yml/badge.svg)](https://github.com/Arquisoft/wiq_es6b/actions/workflows/release.yml) +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_es6b&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_es6b) +[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_es6b&metric=coverage)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_es6b) This is a base repo for the [Software Architecture course](http://arquisoft.github.io/) in [2023/2024 edition](https://arquisoft.github.io/course2324.html). @@ -22,7 +22,7 @@ Both the user and auth service share a Mongo database that is accessed with mong The fastest way for launching this sample project is using docker. Just clone the project: ```sh -git clone https://github.com/Arquisoft/wiq_0.git +git clone https://github.com/Arquisoft/wiq_es6b.git ``` and launch it with docker compose: @@ -100,7 +100,7 @@ deploy: user: ${{ secrets.DEPLOY_USER }} key: ${{ secrets.DEPLOY_KEY }} command: | - wget https://raw.githubusercontent.com/arquisoft/wiq_0/master/docker-compose-deploy.yml -O docker-compose.yml + wget https://raw.githubusercontent.com/arquisoft/wiq_es6b/master/docker-compose-deploy.yml -O docker-compose.yml docker compose down --volumes docker compose --profile prod up -d ``` diff --git a/docker-compose.yml b/docker-compose.yml index c105ed50..1895c6e1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,7 +13,7 @@ services: authservice: container_name: authservice-${teamname:-defaultASW} - image: ghcr.io/arquisoft/wiq_0/authservice:latest + image: ghcr.io/arquisoft/wiq_es6b/authservice:latest profiles: ["dev", "prod"] build: ./users/authservice depends_on: @@ -27,7 +27,7 @@ services: userservice: container_name: userservice-${teamname:-defaultASW} - image: ghcr.io/arquisoft/wiq_0/userservice:latest + image: ghcr.io/arquisoft/wiq_es6b/userservice:latest profiles: ["dev", "prod"] build: ./users/userservice depends_on: @@ -41,7 +41,7 @@ services: gatewayservice: container_name: gatewayservice-${teamname:-defaultASW} - image: ghcr.io/arquisoft/wiq_0/gatewayservice:latest + image: ghcr.io/arquisoft/wiq_es6b/gatewayservice:latest profiles: ["dev", "prod"] build: ./gatewayservice depends_on: @@ -58,7 +58,7 @@ services: webapp: container_name: webapp-${teamname:-defaultASW} - image: ghcr.io/arquisoft/wiq_0/webapp:latest + image: ghcr.io/arquisoft/wiq_es6b/webapp:latest profiles: ["dev", "prod"] build: ./webapp depends_on: diff --git a/docs/README.md b/docs/README.md index 61766e49..fcd7f8fd 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,6 @@ ## The documentation In this project, the documentation is compiled locally and deployed to GitHub pages. -The deployment url is: [https://arquisoft.github.io/wiq_0/](https://arquisoft.github.io/wiq_0/). +The deployment url is: [https://arquisoft.github.io/wiq_es6b/](https://arquisoft.github.io/wiq_es6b/). ### Documentation build For the documentation, we are going to use [AsciiDoc](https://asciidoc.org/) and [PlantUML](https://plantuml.com) and follow the [Arc42](https://github.com/arc42/arc42-template) template. If you want to be able to generate the doc locally you need to install Ruby, Java and some dependencies to translate the AsciiDoc code into html. If you are in Linux you can install Ruby and Java simply by executing: @@ -30,6 +30,6 @@ npm run build The documentation will be generated under the `docs/build` directory. ### Documentation deployment -If we want to deploy it to GitHub pages, so it is accessible via [https://arquisoft.github.io/wiq_0/](https://arquisoft.github.io/wiq_0/), we need to execute `npm run deploy`. +If we want to deploy it to GitHub pages, so it is accessible via [https://arquisoft.github.io/wiq_es6b/](https://arquisoft.github.io/wiq_es6b/), we need to execute `npm run deploy`. If you check the `package.json` in this directory you can see how deploying is as easy as executing `gh-pages -d build`, which can be directly executed using `npm run deploy` in the docs directory. The `gh-pages` package is in charge of pushing the documentation generated directory (basically some htmls) to a special github branch called gh-pages. Everything pushed to this branch is accessible on the repository page. Note that we only want to push there the documentation. Also is important that the documentation build is not pushed to the other branches of the project. \ No newline at end of file diff --git a/gatewayservice/package.json b/gatewayservice/package.json index fd16c42c..54c1e969 100644 --- a/gatewayservice/package.json +++ b/gatewayservice/package.json @@ -9,14 +9,14 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/arquisoft/wiq_0.git" + "url": "git+https://github.com/arquisoft/wiq_es6b.git" }, "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/arquisoft/wiq_0/issues" + "url": "https://github.com/arquisoft/wiq_es6b/issues" }, - "homepage": "https://github.com/arquisoft/wiq_0#readme", + "homepage": "https://github.com/arquisoft/wiq_es6b#readme", "dependencies": { "axios": "^1.6.5", "cors": "^2.8.5", diff --git a/users/authservice/package.json b/users/authservice/package.json index 6b5b6239..9d763cc3 100644 --- a/users/authservice/package.json +++ b/users/authservice/package.json @@ -9,14 +9,14 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/arquisoft/wiq_0.git" + "url": "git+https://github.com/arquisoft/wiq_es6b.git" }, "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/arquisoft/wiq_0/issues" + "url": "https://github.com/arquisoft/wiq_es6b/issues" }, - "homepage": "https://github.com/arquisoft/wiq_0#readme", + "homepage": "https://github.com/arquisoft/wiq_es6b#readme", "dependencies": { "bcrypt": "^5.1.1", "body-parser": "^1.20.2", diff --git a/users/userservice/package.json b/users/userservice/package.json index 2462c8e0..e4573057 100644 --- a/users/userservice/package.json +++ b/users/userservice/package.json @@ -9,14 +9,14 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/arquisoft/wiq_0.git" + "url": "git+https://github.com/arquisoft/wiq_es6b.git" }, "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/arquisoft/wiq_0/issues" + "url": "https://github.com/arquisoft/wiq_es6b/issues" }, - "homepage": "https://github.com/arquisoft/wiq_0#readme", + "homepage": "https://github.com/arquisoft/wiq_es6b#readme", "dependencies": { "bcrypt": "^5.1.1", "body-parser": "^1.20.2", From dc7416337a4e499da356a46e2ecd9a16ad74417a Mon Sep 17 00:00:00 2001 From: fidalgoLXXVI Date: Fri, 26 Jan 2024 11:59:15 +0100 Subject: [PATCH 04/25] Revert "Merge branch 'master' into master" This reverts commit dbaea69630338b4e248756c4fb3fd721eaa7635e, reversing changes made to fa9aec33d69a9f6838de309eca53cfe07e6e6202. --- .env | 2 +- .github/workflows/release.yml | 12 ++++++------ README.md | 14 +++++++------- docker-compose.yml | 8 ++++---- docs/README.md | 4 ++-- gatewayservice/package.json | 6 +++--- sonar-project.properties | 8 ++++---- users/authservice/package.json | 6 +++--- users/userservice/package.json | 6 +++--- 9 files changed, 33 insertions(+), 33 deletions(-) diff --git a/.env b/.env index 06a1dcd6..131b17e4 100644 --- a/.env +++ b/.env @@ -1 +1 @@ -teamname="wiq_es6c" \ No newline at end of file +teamname="wiq_0" \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2c3c0e56..d49ca89b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -53,7 +53,7 @@ jobs: env: API_URI: http://${{ secrets.DEPLOY_HOST }}:8000 with: - name: arquisoft/wiq_es6c/webapp + name: arquisoft/wiq_0/webapp username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -71,7 +71,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@v5 with: - name: arquisoft/wiq_es6c/authservice + name: arquisoft/wiq_0/authservice username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -88,7 +88,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@v5 with: - name: arquisoft/wiq_es6c/userservice + name: arquisoft/wiq_0/userservice username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -105,7 +105,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@v5 with: - name: arquisoft/wiq_es6c/gatewayservice + name: arquisoft/wiq_0/gatewayservice username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -122,7 +122,7 @@ jobs: user: ${{ secrets.DEPLOY_USER }} key: ${{ secrets.DEPLOY_KEY }} command: | - wget https://raw.githubusercontent.com/arquisoft/wiq_es6c/master/docker-compose.yml -O docker-compose.yml - wget https://raw.githubusercontent.com/arquisoft/wiq_es6c/master/.env -O .env + wget https://raw.githubusercontent.com/arquisoft/wiq_0/master/docker-compose.yml -O docker-compose.yml + wget https://raw.githubusercontent.com/arquisoft/wiq_0/master/.env -O .env docker compose down docker compose --profile prod up -d diff --git a/README.md b/README.md index 2316d34b..d3b331ea 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# wiq_es6c +# wiq_0 -[![Deploy on release](https://github.com/Arquisoft/wiq_es6c/actions/workflows/release.yml/badge.svg)](https://github.com/Arquisoft/wiq_es6c/actions/workflows/release.yml) -[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_es6c&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_es6c) -[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_es6c&metric=coverage)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_es6c) +[![Deploy on release](https://github.com/Arquisoft/wiq_0/actions/workflows/release.yml/badge.svg)](https://github.com/Arquisoft/wiq_0/actions/workflows/release.yml) +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_0&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_0) +[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_0&metric=coverage)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_0) This is a base repo for the [Software Architecture course](http://arquisoft.github.io/) in [2023/2024 edition](https://arquisoft.github.io/course2324.html). @@ -22,7 +22,7 @@ Both the user and auth service share a Mongo database that is accessed with mong The fastest way for launching this sample project is using docker. Just clone the project: ```sh -git clone https://github.com/Arquisoft/wiq_es6c.git +git clone https://github.com/Arquisoft/wiq_0.git ``` and launch it with docker compose: @@ -100,8 +100,8 @@ deploy: user: ${{ secrets.DEPLOY_USER }} key: ${{ secrets.DEPLOY_KEY }} command: | - wget https://raw.githubusercontent.com/arquisoft/wiq_es6c/master/docker-compose.yml -O docker-compose.yml - wget https://raw.githubusercontent.com/arquisoft/wiq_es6c/master/.env -O .env + wget https://raw.githubusercontent.com/arquisoft/wiq_0/master/docker-compose.yml -O docker-compose.yml + wget https://raw.githubusercontent.com/arquisoft/wiq_0/master/.env -O .env docker compose down docker compose --profile prod up -d ``` diff --git a/docker-compose.yml b/docker-compose.yml index 6d256c2a..c105ed50 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,7 +13,7 @@ services: authservice: container_name: authservice-${teamname:-defaultASW} - image: ghcr.io/arquisoft/wiq_es6c/authservice:latest + image: ghcr.io/arquisoft/wiq_0/authservice:latest profiles: ["dev", "prod"] build: ./users/authservice depends_on: @@ -27,7 +27,7 @@ services: userservice: container_name: userservice-${teamname:-defaultASW} - image: ghcr.io/arquisoft/wiq_es6c/userservice:latest + image: ghcr.io/arquisoft/wiq_0/userservice:latest profiles: ["dev", "prod"] build: ./users/userservice depends_on: @@ -41,7 +41,7 @@ services: gatewayservice: container_name: gatewayservice-${teamname:-defaultASW} - image: ghcr.io/arquisoft/wiq_es6c/gatewayservice:latest + image: ghcr.io/arquisoft/wiq_0/gatewayservice:latest profiles: ["dev", "prod"] build: ./gatewayservice depends_on: @@ -58,7 +58,7 @@ services: webapp: container_name: webapp-${teamname:-defaultASW} - image: ghcr.io/arquisoft/wiq_es6c/webapp:latest + image: ghcr.io/arquisoft/wiq_0/webapp:latest profiles: ["dev", "prod"] build: ./webapp depends_on: diff --git a/docs/README.md b/docs/README.md index 9a7bce52..61766e49 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,6 @@ ## The documentation In this project, the documentation is compiled locally and deployed to GitHub pages. -The deployment url is: [https://arquisoft.github.io/wiq_es6c/](https://arquisoft.github.io/wiq_es6c/). +The deployment url is: [https://arquisoft.github.io/wiq_0/](https://arquisoft.github.io/wiq_0/). ### Documentation build For the documentation, we are going to use [AsciiDoc](https://asciidoc.org/) and [PlantUML](https://plantuml.com) and follow the [Arc42](https://github.com/arc42/arc42-template) template. If you want to be able to generate the doc locally you need to install Ruby, Java and some dependencies to translate the AsciiDoc code into html. If you are in Linux you can install Ruby and Java simply by executing: @@ -30,6 +30,6 @@ npm run build The documentation will be generated under the `docs/build` directory. ### Documentation deployment -If we want to deploy it to GitHub pages, so it is accessible via [https://arquisoft.github.io/wiq_es6c/](https://arquisoft.github.io/wiq_es6c/), we need to execute `npm run deploy`. +If we want to deploy it to GitHub pages, so it is accessible via [https://arquisoft.github.io/wiq_0/](https://arquisoft.github.io/wiq_0/), we need to execute `npm run deploy`. If you check the `package.json` in this directory you can see how deploying is as easy as executing `gh-pages -d build`, which can be directly executed using `npm run deploy` in the docs directory. The `gh-pages` package is in charge of pushing the documentation generated directory (basically some htmls) to a special github branch called gh-pages. Everything pushed to this branch is accessible on the repository page. Note that we only want to push there the documentation. Also is important that the documentation build is not pushed to the other branches of the project. \ No newline at end of file diff --git a/gatewayservice/package.json b/gatewayservice/package.json index 686c71df..fd16c42c 100644 --- a/gatewayservice/package.json +++ b/gatewayservice/package.json @@ -9,14 +9,14 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/arquisoft/wiq_es6c.git" + "url": "git+https://github.com/arquisoft/wiq_0.git" }, "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/arquisoft/wiq_es6c/issues" + "url": "https://github.com/arquisoft/wiq_0/issues" }, - "homepage": "https://github.com/arquisoft/wiq_es6c#readme", + "homepage": "https://github.com/arquisoft/wiq_0#readme", "dependencies": { "axios": "^1.6.5", "cors": "^2.8.5", diff --git a/sonar-project.properties b/sonar-project.properties index b83524d3..cdc6bb02 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,17 +1,17 @@ -sonar.projectKey=Arquisoft_wiq_es6c +sonar.projectKey=Arquisoft_wiq_0 sonar.organization=arquisoft # This is the name and version displayed in the SonarCloud UI. -sonar.projectName=wiq_es6c +sonar.projectName=wiq_0 sonar.projectVersion=1.0 # Encoding of the source code. Default is default system encoding sonar.host.url=https://sonarcloud.io sonar.language=js -sonar.projectName=wiq_es6c +sonar.projectName=wiq_0 sonar.coverage.exclusions=**/*.test.js sonar.sources=webapp/src/components,users/authservice,users/userservice,gatewayservice sonar.sourceEncoding=UTF-8 sonar.exclusions=node_modules/** -sonar.javascript.lcov.reportPaths=**/coverage/lcov.info +sonar.javascript.lcov.reportPaths=**/coverage/lcov.info \ No newline at end of file diff --git a/users/authservice/package.json b/users/authservice/package.json index 28020661..6b5b6239 100644 --- a/users/authservice/package.json +++ b/users/authservice/package.json @@ -9,14 +9,14 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/arquisoft/wiq_es6c.git" + "url": "git+https://github.com/arquisoft/wiq_0.git" }, "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/arquisoft/wiq_es6c/issues" + "url": "https://github.com/arquisoft/wiq_0/issues" }, - "homepage": "https://github.com/arquisoft/wiq_es6c#readme", + "homepage": "https://github.com/arquisoft/wiq_0#readme", "dependencies": { "bcrypt": "^5.1.1", "body-parser": "^1.20.2", diff --git a/users/userservice/package.json b/users/userservice/package.json index 37ddcdc4..2462c8e0 100644 --- a/users/userservice/package.json +++ b/users/userservice/package.json @@ -9,14 +9,14 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/arquisoft/wiq_es6c.git" + "url": "git+https://github.com/arquisoft/wiq_0.git" }, "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/arquisoft/wiq_es6c/issues" + "url": "https://github.com/arquisoft/wiq_0/issues" }, - "homepage": "https://github.com/arquisoft/wiq_es6c#readme", + "homepage": "https://github.com/arquisoft/wiq_0#readme", "dependencies": { "bcrypt": "^5.1.1", "body-parser": "^1.20.2", From e049274c2b68dea1b3ee1716d98f1189948325a4 Mon Sep 17 00:00:00 2001 From: fidalgoLXXVI Date: Fri, 26 Jan 2024 12:16:25 +0100 Subject: [PATCH 05/25] Revert "Merge branch 'master' of https://github.com/Arquisoft/wiq_0" This reverts commit fa9aec33d69a9f6838de309eca53cfe07e6e6202, reversing changes made to 88c299b44ef9df515495c6e411b818b8814bcf77. --- .github/workflows/release.yml | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f1fe99e8..4b7216b0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -122,7 +122,7 @@ jobs: user: ${{ secrets.DEPLOY_USER }} key: ${{ secrets.DEPLOY_KEY }} command: | - wget https://raw.githubusercontent.com/arquisoft/wiq_es6b/master/docker-compose.yml -O docker-compose.yml - wget https://raw.githubusercontent.com/arquisoft/wiq_es6b/master/.env -O .env + wget https://raw.githubusercontent.com/arquisoft/wiq_0/master/docker-compose.yml -O docker-compose.yml + wget https://raw.githubusercontent.com/arquisoft/wiq_0/master/.env -O .env docker compose down docker compose --profile prod up -d diff --git a/README.md b/README.md index 0aa0cd7e..68b8a113 100644 --- a/README.md +++ b/README.md @@ -100,8 +100,8 @@ deploy: user: ${{ secrets.DEPLOY_USER }} key: ${{ secrets.DEPLOY_KEY }} command: | - wget https://raw.githubusercontent.com/arquisoft/wiq_es6b/master/docker-compose.yml -O docker-compose.yml - wget https://raw.githubusercontent.com/arquisoft/wiq_es6b/master/.env -O .env + wget https://raw.githubusercontent.com/arquisoft/wiq_0/master/docker-compose.yml -O docker-compose.yml + wget https://raw.githubusercontent.com/arquisoft/wiq_0/master/.env -O .env docker compose down docker compose --profile prod up -d ``` From e9278f2c61350abd4d8ce0e281488b8d1f8e00b9 Mon Sep 17 00:00:00 2001 From: fidalgoLXXVI Date: Fri, 26 Jan 2024 12:29:00 +0100 Subject: [PATCH 06/25] Expiando mis pecados --- .env | 2 +- .github/workflows/release.yml | 8 ++++---- README.md | 10 +++++----- docker-compose.yml | 8 ++++---- docs/README.md | 4 ++-- gatewayservice/package.json | 6 +++--- users/authservice/package.json | 6 +++--- users/userservice/package.json | 6 +++--- 8 files changed, 25 insertions(+), 25 deletions(-) diff --git a/.env b/.env index d1cb9ba3..131b17e4 100644 --- a/.env +++ b/.env @@ -1 +1 @@ -teamname="wiq_es6b" \ No newline at end of file +teamname="wiq_0" \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4b7216b0..d49ca89b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -53,7 +53,7 @@ jobs: env: API_URI: http://${{ secrets.DEPLOY_HOST }}:8000 with: - name: arquisoft/wiq_es6b/webapp + name: arquisoft/wiq_0/webapp username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -71,7 +71,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@v5 with: - name: arquisoft/wiq_es6b/authservice + name: arquisoft/wiq_0/authservice username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -88,7 +88,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@v5 with: - name: arquisoft/wiq_es6b/userservice + name: arquisoft/wiq_0/userservice username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -105,7 +105,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@v5 with: - name: arquisoft/wiq_es6b/gatewayservice + name: arquisoft/wiq_0/gatewayservice username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io diff --git a/README.md b/README.md index 68b8a113..d3b331ea 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# wiq_es6b +# wiq_0 -[![Deploy on release](https://github.com/Arquisoft/wiq_es6b/actions/workflows/release.yml/badge.svg)](https://github.com/Arquisoft/wiq_es6b/actions/workflows/release.yml) -[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_es6b&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_es6b) -[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_es6b&metric=coverage)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_es6b) +[![Deploy on release](https://github.com/Arquisoft/wiq_0/actions/workflows/release.yml/badge.svg)](https://github.com/Arquisoft/wiq_0/actions/workflows/release.yml) +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_0&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_0) +[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_0&metric=coverage)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_0) This is a base repo for the [Software Architecture course](http://arquisoft.github.io/) in [2023/2024 edition](https://arquisoft.github.io/course2324.html). @@ -22,7 +22,7 @@ Both the user and auth service share a Mongo database that is accessed with mong The fastest way for launching this sample project is using docker. Just clone the project: ```sh -git clone https://github.com/Arquisoft/wiq_es6b.git +git clone https://github.com/Arquisoft/wiq_0.git ``` and launch it with docker compose: diff --git a/docker-compose.yml b/docker-compose.yml index 1895c6e1..c105ed50 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,7 +13,7 @@ services: authservice: container_name: authservice-${teamname:-defaultASW} - image: ghcr.io/arquisoft/wiq_es6b/authservice:latest + image: ghcr.io/arquisoft/wiq_0/authservice:latest profiles: ["dev", "prod"] build: ./users/authservice depends_on: @@ -27,7 +27,7 @@ services: userservice: container_name: userservice-${teamname:-defaultASW} - image: ghcr.io/arquisoft/wiq_es6b/userservice:latest + image: ghcr.io/arquisoft/wiq_0/userservice:latest profiles: ["dev", "prod"] build: ./users/userservice depends_on: @@ -41,7 +41,7 @@ services: gatewayservice: container_name: gatewayservice-${teamname:-defaultASW} - image: ghcr.io/arquisoft/wiq_es6b/gatewayservice:latest + image: ghcr.io/arquisoft/wiq_0/gatewayservice:latest profiles: ["dev", "prod"] build: ./gatewayservice depends_on: @@ -58,7 +58,7 @@ services: webapp: container_name: webapp-${teamname:-defaultASW} - image: ghcr.io/arquisoft/wiq_es6b/webapp:latest + image: ghcr.io/arquisoft/wiq_0/webapp:latest profiles: ["dev", "prod"] build: ./webapp depends_on: diff --git a/docs/README.md b/docs/README.md index fcd7f8fd..61766e49 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,6 @@ ## The documentation In this project, the documentation is compiled locally and deployed to GitHub pages. -The deployment url is: [https://arquisoft.github.io/wiq_es6b/](https://arquisoft.github.io/wiq_es6b/). +The deployment url is: [https://arquisoft.github.io/wiq_0/](https://arquisoft.github.io/wiq_0/). ### Documentation build For the documentation, we are going to use [AsciiDoc](https://asciidoc.org/) and [PlantUML](https://plantuml.com) and follow the [Arc42](https://github.com/arc42/arc42-template) template. If you want to be able to generate the doc locally you need to install Ruby, Java and some dependencies to translate the AsciiDoc code into html. If you are in Linux you can install Ruby and Java simply by executing: @@ -30,6 +30,6 @@ npm run build The documentation will be generated under the `docs/build` directory. ### Documentation deployment -If we want to deploy it to GitHub pages, so it is accessible via [https://arquisoft.github.io/wiq_es6b/](https://arquisoft.github.io/wiq_es6b/), we need to execute `npm run deploy`. +If we want to deploy it to GitHub pages, so it is accessible via [https://arquisoft.github.io/wiq_0/](https://arquisoft.github.io/wiq_0/), we need to execute `npm run deploy`. If you check the `package.json` in this directory you can see how deploying is as easy as executing `gh-pages -d build`, which can be directly executed using `npm run deploy` in the docs directory. The `gh-pages` package is in charge of pushing the documentation generated directory (basically some htmls) to a special github branch called gh-pages. Everything pushed to this branch is accessible on the repository page. Note that we only want to push there the documentation. Also is important that the documentation build is not pushed to the other branches of the project. \ No newline at end of file diff --git a/gatewayservice/package.json b/gatewayservice/package.json index 54c1e969..fd16c42c 100644 --- a/gatewayservice/package.json +++ b/gatewayservice/package.json @@ -9,14 +9,14 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/arquisoft/wiq_es6b.git" + "url": "git+https://github.com/arquisoft/wiq_0.git" }, "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/arquisoft/wiq_es6b/issues" + "url": "https://github.com/arquisoft/wiq_0/issues" }, - "homepage": "https://github.com/arquisoft/wiq_es6b#readme", + "homepage": "https://github.com/arquisoft/wiq_0#readme", "dependencies": { "axios": "^1.6.5", "cors": "^2.8.5", diff --git a/users/authservice/package.json b/users/authservice/package.json index 9d763cc3..6b5b6239 100644 --- a/users/authservice/package.json +++ b/users/authservice/package.json @@ -9,14 +9,14 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/arquisoft/wiq_es6b.git" + "url": "git+https://github.com/arquisoft/wiq_0.git" }, "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/arquisoft/wiq_es6b/issues" + "url": "https://github.com/arquisoft/wiq_0/issues" }, - "homepage": "https://github.com/arquisoft/wiq_es6b#readme", + "homepage": "https://github.com/arquisoft/wiq_0#readme", "dependencies": { "bcrypt": "^5.1.1", "body-parser": "^1.20.2", diff --git a/users/userservice/package.json b/users/userservice/package.json index e4573057..2462c8e0 100644 --- a/users/userservice/package.json +++ b/users/userservice/package.json @@ -9,14 +9,14 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/arquisoft/wiq_es6b.git" + "url": "git+https://github.com/arquisoft/wiq_0.git" }, "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/arquisoft/wiq_es6b/issues" + "url": "https://github.com/arquisoft/wiq_0/issues" }, - "homepage": "https://github.com/arquisoft/wiq_es6b#readme", + "homepage": "https://github.com/arquisoft/wiq_0#readme", "dependencies": { "bcrypt": "^5.1.1", "body-parser": "^1.20.2", From 1f0cbfb2d0812b70fc5ca92df1a863f60c59586b Mon Sep 17 00:00:00 2001 From: Augusto Date: Mon, 12 Feb 2024 10:20:05 +0100 Subject: [PATCH 07/25] Minor fixes to tear-down the container --- .github/workflows/release.yml | 2 +- README.md | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d49ca89b..2905c196 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -124,5 +124,5 @@ jobs: command: | wget https://raw.githubusercontent.com/arquisoft/wiq_0/master/docker-compose.yml -O docker-compose.yml wget https://raw.githubusercontent.com/arquisoft/wiq_0/master/.env -O .env - docker compose down + docker compose --profile prod down docker compose --profile prod up -d diff --git a/README.md b/README.md index d3b331ea..fb89a4a1 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,12 @@ and launch it with docker compose: docker compose --profile dev up --build ``` +and tear it down: + +```sh +docker compose --profile dev down +``` + ### Starting Component by component First, start the database. Either install and run Mongo or run it using docker: @@ -102,7 +108,7 @@ deploy: command: | wget https://raw.githubusercontent.com/arquisoft/wiq_0/master/docker-compose.yml -O docker-compose.yml wget https://raw.githubusercontent.com/arquisoft/wiq_0/master/.env -O .env - docker compose down + docker compose --profile prod down docker compose --profile prod up -d ``` From 88b61140df9cdbb117a9efa617ecd1cd3c16686c Mon Sep 17 00:00:00 2001 From: uo283642 <98973969+uo283642@users.noreply.github.com> Date: Tue, 20 Feb 2024 23:51:43 +0100 Subject: [PATCH 08/25] Added corrected business context diagram --- docs/images/03_Business_Context_Diagram.png | Bin 0 -> 28151 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/03_Business_Context_Diagram.png diff --git a/docs/images/03_Business_Context_Diagram.png b/docs/images/03_Business_Context_Diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..6010a5c8db86b8b8b03c84cb4ec04b7425377fa3 GIT binary patch literal 28151 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 literal 0 HcmV?d00001 From 601f920c834e933e6ee647d1842441320227afd5 Mon Sep 17 00:00:00 2001 From: uo283642 <98973969+uo283642@users.noreply.github.com> Date: Wed, 21 Feb 2024 00:24:00 +0100 Subject: [PATCH 09/25] Updated 03. Added diagrams + minor fixes Added a business context diagram. Technical context diagram redone: previous one didn't fit in with the topic, too technical and didn't cover the topic. --- docs/src/03_system_scope_and_context.adoc | 43 ++++++++++++++++++++--- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/docs/src/03_system_scope_and_context.adoc b/docs/src/03_system_scope_and_context.adoc index 5973f1b9..3607108b 100644 --- a/docs/src/03_system_scope_and_context.adoc +++ b/docs/src/03_system_scope_and_context.adoc @@ -7,19 +7,54 @@ ifndef::imagesdir[:imagesdir: ../images] === Business Context +image::03_Business_Context_Diagram.png[] + [cols=3 options="header"] |=== |Entity |Input |Output |*User* | App usage and experience. | The user will introduce and send its credentials every time it creates a new account or logs into an existing one. -|*WebApp* | User data and input, as well as external API calls received. | Handled API calls, sent to their respective microservice in order to be processed and answered. -|*Wikidata* |Calls to Wikidata's REST API asking for certain data, which will be used to construct the questions. | Said data. Its format may vary, according to the necessities of the questions generator. +|*App* | User data and input. | The necessary API calls, sent to either Wikidata to fetch information to create questions, or to the REST API in order to query stored data. +|*REST API* | API calls from the app, requesting stored information. | Said data. It may be user information and statistics about their matches, or some of the questions generated in games. +|*Database* | Petitions from the REST API, in order to query data. | Said data. It may be user information and statistics about their matches, or some of the questions generated in games. +|*Wikidata* | Calls to Wikidata's REST API asking for certain data, which will be used to construct the questions. | Said data. Its format may vary, according to the necessities of the questions generator. |=== === Technical Context [role="arc42help"] -The following diagram represents the general structure of the project, as well as the communication channels between various system components. It shows communication to external sources, as well as communications between the various microsystems. +[plantuml, "Technical Context diagram", png] +---- + +@startuml +!theme vibrant + + + +actor "User" +database "\nMongoDB\n" as MongoDB #white + +node "App"{ + rectangle "Web App" + rectangle "REST API" +} + +rectangle "Wikidata" #lightblue + +User -right- "Web App" : "HTTPS " +"Web App" -right- "REST API" : HTTPS (REST) +"REST API" -right-- "MongoDB" : " HTTPS" +"Web App" -down- "Wikidata" : "\n HTTPS (REST)" +@enduml + +---- -image::03-deployment-diagram-EN.png[] From 16cbd6bd4085dc53b3ac4b98e9f4b57d1a57c663 Mon Sep 17 00:00:00 2001 From: uo283642 <98973969+uo283642@users.noreply.github.com> Date: Wed, 21 Feb 2024 01:12:03 +0100 Subject: [PATCH 10/25] 06 mostly finished. Added the required sequence diagrams + some minor explanations. --- docs/src/06_runtime_view.adoc | 118 +++++++++++++++++++++++++++++----- 1 file changed, 102 insertions(+), 16 deletions(-) diff --git a/docs/src/06_runtime_view.adoc b/docs/src/06_runtime_view.adoc index e10f375b..b3dfd0b1 100644 --- a/docs/src/06_runtime_view.adoc +++ b/docs/src/06_runtime_view.adoc @@ -37,29 +37,115 @@ See https://docs.arc42.org/section-6/[Runtime View] in the arc42 documentation. **** -=== +=== User plays a match. Only one question batch is needed. +[plantuml,"Sequence diagram",png] +---- + +@startuml +!theme vibrant +autonumber + +actor "User" as user -* __ -* __ +user -> "Game Service": Begins game +"Game Service" -> "Question Service" : Requests n questions +"Question Service" -> "Wikidata REST API" : Requests information to create questions +"Wikidata REST API" -> "Question Service" : Returns information +"Question Service" -> "Question Service" : Creates questions +"Question Service" -> "Game Service" : Returns questions -It is possible to use a sequence diagram: +loop n times + "Game Service" -> user : Shows question + … + user -> "Game Service" : Responds question +end + +"Game Service" -> "Question Historic Service" : Sends the shown questions +"Game Service" -> "Player Statistics Service" : Sends the user's match data +@enduml + +---- + +In circumstances in which few questions are needed for the game, it may be possible to extract all of them in a batch without affecting performance and response times. Besides, extracting them this way opens up the possibility of using multiple threads to gather the data, greatly increasing performance. However, if the querying times are too high, this strategy may cause great delays while loading the game. A possible alternative is explained below: + +=== User plays a match. An example of dynamic question generation. [plantuml,"Sequence diagram",png] ---- -actor Alice -actor Bob -database Pod as "Bob's Pod" -Alice -> Bob: Authentication Request -Bob --> Alice: Authentication Response -Alice --> Pod: Store route -Alice -> Bob: Another authentication Request -Alice <-- Bob: another authentication Response + +@startuml +!theme vibrant +autonumber + +actor "User" as user + +user -> "Game Service": Begins game +"Game Service" -> "Question Service" : Requests n questions +"Question Service" -> "Wikidata REST API" : Requests information to create questions +"Wikidata REST API" -> "Question Service" : Returns information +"Question Service" -> "Game Service" : Returns questions + +loop Until the game ends + loop n-k times + "Game Service" -> user : Shows question + ... + user -> "Game Service" : Responds question + end + + "Game Service" -> "Question Service" : Requests n questions + "Question Service" -> "Wikidata REST API" : Requests information to create questions + "Wikidata REST API" -> "Question Service" : Returns information + "Question Service" -> "Question Service" : Creates questions + "Question Service" -> "Game Service" : Returns questions + + loop k times + "Game Service" -> user : Shows question + ... + user -> "Game Service" : Responds question + end +end + +"Game Service" -> "Question Historic Service" : Sends the shown questions +"Game Service" -> "Player Statistics Service" : Sends the user's match data +@enduml + ---- -=== +In cases where a lot of questions are needed, or wikidata querying has a great impact on performance, this alternative may prove to be convenient. By distributing the data fetching along the entire match, bottlenecks on performance will be reduced. Depending on the system load (or, optionally client device's specifications!) batch sizes may vary, adapting to maintain responsiveness. -=== ... +=== User consults its game statistics. -=== +[plantuml,"Sequence diagram",png] +---- + +@startuml +!theme vibrant +autonumber + +actor "User" as user + +user -> "Player Statistics Service" : Requests user data +"Player Statistics Service" -> "MongoDB Server" : Makes petition through REST API +"MongoDB Server" -> "Player Statistics Service" : Returns information +"Player Statistics Service" -> user : Shows data +@enduml + +---- + +=== User consults questions used in games. + +[plantuml,"Sequence diagram",png] +---- +@startuml +!theme vibrant +autonumber + +actor "User" as user + +user -> "Question Historic Service" : Requests user data +"Question Historic Service" -> "MongoDB Server" : Makes petition through REST API +"MongoDB Server" -> "Question Historic Service" : Returns information +"Question Historic Service" -> user : Shows data +@enduml +---- From 2672af218a7ad09824e6de771c344059cef6bb78 Mon Sep 17 00:00:00 2001 From: uo283642 <98973969+uo283642@users.noreply.github.com> Date: Wed, 21 Feb 2024 22:59:11 +0100 Subject: [PATCH 11/25] Uploaded 05-Level 3 diagram. --- docs/images/05_Level_3_Diagram.png | Bin 0 -> 85671 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/05_Level_3_Diagram.png diff --git a/docs/images/05_Level_3_Diagram.png b/docs/images/05_Level_3_Diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..3d7fb61889ddb6b0f2615ad09b211588f4dbe453 GIT binary patch literal 85671 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

7@$2aIPw`eT?rk@ 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

>* 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 literal 0 HcmV?d00001 From 5ad812afe5c3f588a6905495e57aecbb1d479204 Mon Sep 17 00:00:00 2001 From: uo283642 <98973969+uo283642@users.noreply.github.com> Date: Wed, 21 Feb 2024 23:03:52 +0100 Subject: [PATCH 12/25] 05 Added third level diagram and explanation. --- docs/src/05_building_block_view.adoc | 38 +++++++++++++++------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/docs/src/05_building_block_view.adoc b/docs/src/05_building_block_view.adoc index df5c29c8..b1bf0423 100644 --- a/docs/src/05_building_block_view.adoc +++ b/docs/src/05_building_block_view.adoc @@ -189,24 +189,28 @@ When you need more detailed levels of your architecture please copy this part of arc42 for additional levels. **** +image::05_Level_3_Diagram.png["Hierarchy of building blocks"] -==== White Box <_building block x.1_> - -[role="arc42help"] -**** -Specifies the internal structure of _building block x.1_. -**** +==== Motivation +To display the inner architecture of the different microservices, as well as how do their components interact with themselves and with other components from other microsystems. All microservices follow the MVC architectural pattern, to the exception of the questions generator service. (since it has no UI to handle) -__ - +==== Contained Building Blocks -==== White Box <_building block x.2_> - -__ - - - -==== White Box <_building block y.1_> - -__ +[options="header"] +[cols="1,2"] +|=== +|Name |Description +|Questions Generator +|Contains the required templates and proceedings to construct questions. In order to do so, it delegates the Wikidata querying to the Wikidata extractor. When the data is returned, the question is formulated through templates. +|Wikidata Extractor +|Handles extraction and formatting of Wikidata’s output. It’s queries must cover all necessary information in order to construct the question(s), including not only the correct response, but also believable and coherent “decoy responses”. +|Questions Historic Controller +|Receives the generated questions, and sends them to the database. Besides, it also handles recovering them from the database and sending them where they are needed. (e.g: as response from an API call, or to the UI) +|User Statistics Controller +|Receives various information about the player’s performance in the match. There, some processing may occur before storing it in the database. Also handles retrieving the information and sending it where it’s needed (e.g: as response from an API call, or to the UI). +|Game Controller +|Handles all the game’s logic; where the user input’s processing takes place. It can request questions to the Questions Microservice, and also gather user statistics, to later be set to the User Statistics Controller. +|UI for the game and statistics +|Handles appeareance and presentation. Actions taken by the user are communicated to their respective controllers, that may respond accordingly. +|=== From 5e43b4bbedc554c7bf615ae80ac6dd950d446777 Mon Sep 17 00:00:00 2001 From: uo283642 <98973969+uo283642@users.noreply.github.com> Date: Wed, 21 Feb 2024 23:40:40 +0100 Subject: [PATCH 13/25] 12 Added some terms refering to question generation. --- docs/src/12_glossary.adoc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/src/12_glossary.adoc b/docs/src/12_glossary.adoc index cb656f34..fcc1b635 100644 --- a/docs/src/12_glossary.adoc +++ b/docs/src/12_glossary.adoc @@ -37,4 +37,7 @@ See https://docs.arc42.org/section-12/[Glossary] in the arc42 documentation. |MongoDB |NoSQL database system that, instead of storing data in tables as a relational database does, stores data in JSON-like documents with a flexible schema. |REACT |Open source JavaScript library developed by Facebook to build interactive and responsive user interfaces (UI). It is one of the most popular tools for modern web application development. |Usability |Ease with which users can interact with a product, system or application to achieve their objectives effectively, efficiently and satisfactorily. +|Dynamic question generation | There may be circumstances where pre-generating the questions isn't feasible. So instead, questions can be generated while the user is playing the game and answering questions. +|Decoy answer | For questions that offer multiple options to select the correct answer from, it will be necessary to generate believable incorrect answers, that match the topic and theme of the question. For example, when asking about the longest river in Egypt, along with the correct answer (The Nile) some other river names of the country could be chosen for alternatives. +|Question template | General structure of a question, which can or cannot transcend topics. For example, valid templates for questions could be: "What's the tallest mountain in ?" "What is ?" "Who invented ?" |=== From f63474d3011eab8029328a19dbed985a24c925c2 Mon Sep 17 00:00:00 2001 From: uo283642 <98973969+uo283642@users.noreply.github.com> Date: Thu, 22 Feb 2024 16:57:46 +0100 Subject: [PATCH 14/25] Update 05_building_block_view.adoc Changed Level 3 diagram image for plantUML annotations. --- docs/src/05_building_block_view.adoc | 66 +++++++++++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) diff --git a/docs/src/05_building_block_view.adoc b/docs/src/05_building_block_view.adoc index b1bf0423..90a3e993 100644 --- a/docs/src/05_building_block_view.adoc +++ b/docs/src/05_building_block_view.adoc @@ -189,7 +189,71 @@ When you need more detailed levels of your architecture please copy this part of arc42 for additional levels. **** -image::05_Level_3_Diagram.png["Hierarchy of building blocks"] +[plantuml, "Level 3 Diagram", png] +---- +@startuml + +rectangle "Wikidata" +actor "User" + +package "WIQ App"{ + + component "WebApp" + component "Authentification Service" + + package "Questions Service"{ + component "Wikidata Extractor" + component "Questions Generator" + } + + package "Game Service" { + component "Game UI" + component "Game Controller" + } + + package "User Stats Service" as USS { + component "Statistics UI" + component "Statistics Controller" + database "Database" as USDB + } + + package "Questions Historic Service" as QHS{ + component "Question Historic Controller" as QHController + database "Database" as QhDB + } +} + +User -right-> WebApp : Uses + +WebApp <-down-> "Game Service" +WebApp <--down--> "QHS" +WebApp <-right-> "USS" +WebApp <--right--> "Authentification Service" : "Handles user login/registry" + +"Game Controller" -down-> "Questions Generator" +"Game Controller" <-left- "Questions Generator" : Asks for/Returns questions +"Game Controller" -right-> "Statistics Controller" : " Sends stats" + +"Game Controller" -up-> "Game UI" +"Game Controller" <-up- "Game UI" + +"Wikidata Extractor" --down-> "Wikidata" : Queries +"Wikidata Extractor" <-down- "Wikidata" : "Returns data" +"Wikidata Extractor" -left-> "Questions Generator" +"Wikidata Extractor" <-left- "Questions Generator" + + +"QHController" --> "QhDB" +"QHController" <-down- "QhDB" +"QHController" <-left- "Questions Generator" : " Sends generated questions " + +"Statistics UI" -left-> "Statistics Controller" +"Statistics UI" <-right- "Statistics Controller" +"Statistics Controller" -down-> USDB +"Statistics Controller" <-up- USDB + +@enduml +---- ==== Motivation From eb940c4845c91f454b2a640cf77f1625f39231ca Mon Sep 17 00:00:00 2001 From: uo283642 <98973969+uo283642@users.noreply.github.com> Date: Thu, 22 Feb 2024 17:33:33 +0100 Subject: [PATCH 15/25] Update 03_system_scope_and_context.adoc Removed @ annotations --- docs/src/03_system_scope_and_context.adoc | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/src/03_system_scope_and_context.adoc b/docs/src/03_system_scope_and_context.adoc index c2a26761..c6ab131f 100644 --- a/docs/src/03_system_scope_and_context.adoc +++ b/docs/src/03_system_scope_and_context.adoc @@ -72,7 +72,6 @@ together with a mapping table showing the relationships between channels and inp [plantuml, "Technical Context diagram", png] ---- -@startuml !theme vibrant - actor "User" -database "\nMongoDB\n" as MongoDB #white +database "\nMongoDB\n" as MongoDB node "App"{ rectangle "Web App" rectangle "REST API" } -rectangle "Wikidata" #lightblue +rectangle "Wikidata" User -right- "Web App" : "HTTPS " "Web App" -right- "REST API" : HTTPS (REST) From 6edeaf316e12cd9cb45d729ace03aa52ade3ac39 Mon Sep 17 00:00:00 2001 From: uo283642 <98973969+uo283642@users.noreply.github.com> Date: Thu, 22 Feb 2024 17:48:40 +0100 Subject: [PATCH 17/25] Uploaded 03 technical context diagram. --- docs/images/03_Technical_Context.png | Bin 0 -> 13534 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/03_Technical_Context.png diff --git a/docs/images/03_Technical_Context.png b/docs/images/03_Technical_Context.png new file mode 100644 index 0000000000000000000000000000000000000000..2899ac70450359a8fe4616573407618a96f03774 GIT binary patch literal 13534 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 literal 0 HcmV?d00001 From 64338815b3f09271759e47969ad02ddacf6045b5 Mon Sep 17 00:00:00 2001 From: uo283642 <98973969+uo283642@users.noreply.github.com> Date: Thu, 22 Feb 2024 17:56:56 +0100 Subject: [PATCH 18/25] 03 Technical context diagram changed for img. PlantUML annotations didnt work :( --- docs/src/03_system_scope_and_context.adoc | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/docs/src/03_system_scope_and_context.adoc b/docs/src/03_system_scope_and_context.adoc index b5adc7d9..0d7b66c8 100644 --- a/docs/src/03_system_scope_and_context.adoc +++ b/docs/src/03_system_scope_and_context.adoc @@ -69,23 +69,5 @@ together with a mapping table showing the relationships between channels and inp **** -[plantuml, "Technical Context diagram", png] ----- - -actor "User" -database "\nMongoDB\n" as MongoDB - -node "App"{ - rectangle "Web App" - rectangle "REST API" -} - -rectangle "Wikidata" - -User -right- "Web App" : "HTTPS " -"Web App" -right- "REST API" : HTTPS (REST) -"REST API" -right-- "MongoDB" : " HTTPS" -"Web App" -down- "Wikidata" : "\n HTTPS (REST)" - ----- +image::03_Technical_Context.png[] From 3b46b75aaec286164c656527d8a75a00d26ecfdc Mon Sep 17 00:00:00 2001 From: uo283642 <98973969+uo283642@users.noreply.github.com> Date: Thu, 22 Feb 2024 17:59:31 +0100 Subject: [PATCH 19/25] Updated 05_building_block_view (Third level) Removed annotations, changed for image. Annotations didn't work :( --- docs/src/05_building_block_view.adoc | 66 +--------------------------- 1 file changed, 1 insertion(+), 65 deletions(-) diff --git a/docs/src/05_building_block_view.adoc b/docs/src/05_building_block_view.adoc index 90a3e993..d0eb3f6b 100644 --- a/docs/src/05_building_block_view.adoc +++ b/docs/src/05_building_block_view.adoc @@ -189,71 +189,7 @@ When you need more detailed levels of your architecture please copy this part of arc42 for additional levels. **** -[plantuml, "Level 3 Diagram", png] ----- -@startuml - -rectangle "Wikidata" -actor "User" - -package "WIQ App"{ - - component "WebApp" - component "Authentification Service" - - package "Questions Service"{ - component "Wikidata Extractor" - component "Questions Generator" - } - - package "Game Service" { - component "Game UI" - component "Game Controller" - } - - package "User Stats Service" as USS { - component "Statistics UI" - component "Statistics Controller" - database "Database" as USDB - } - - package "Questions Historic Service" as QHS{ - component "Question Historic Controller" as QHController - database "Database" as QhDB - } -} - -User -right-> WebApp : Uses - -WebApp <-down-> "Game Service" -WebApp <--down--> "QHS" -WebApp <-right-> "USS" -WebApp <--right--> "Authentification Service" : "Handles user login/registry" - -"Game Controller" -down-> "Questions Generator" -"Game Controller" <-left- "Questions Generator" : Asks for/Returns questions -"Game Controller" -right-> "Statistics Controller" : " Sends stats" - -"Game Controller" -up-> "Game UI" -"Game Controller" <-up- "Game UI" - -"Wikidata Extractor" --down-> "Wikidata" : Queries -"Wikidata Extractor" <-down- "Wikidata" : "Returns data" -"Wikidata Extractor" -left-> "Questions Generator" -"Wikidata Extractor" <-left- "Questions Generator" - - -"QHController" --> "QhDB" -"QHController" <-down- "QhDB" -"QHController" <-left- "Questions Generator" : " Sends generated questions " - -"Statistics UI" -left-> "Statistics Controller" -"Statistics UI" <-right- "Statistics Controller" -"Statistics Controller" -down-> USDB -"Statistics Controller" <-up- USDB - -@enduml ----- +image::05_Level_3_Diagram.png[] ==== Motivation From 4fb45f195c773d3d3d658d17bc4d204dedebd635 Mon Sep 17 00:00:00 2001 From: uo283642 <98973969+uo283642@users.noreply.github.com> Date: Thu, 22 Feb 2024 18:16:49 +0100 Subject: [PATCH 20/25] Added modified version of 05: Level 3 diagram --- docs/images/05_Level_3_Diagram.png | Bin 85671 -> 72515 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/05_Level_3_Diagram.png b/docs/images/05_Level_3_Diagram.png index 3d7fb61889ddb6b0f2615ad09b211588f4dbe453..4c654c4307202b208c80a2bec17bcb1f1262d124 100644 GIT binary patch literal 72515 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 MzjR*WH*3E8U+6woVE_OC literal 85671 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

7@$2aIPw`eT?rk@ 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

>* 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 From 0674ee5b833d683fa1f2f48129249cdec84b9171 Mon Sep 17 00:00:00 2001 From: uo283642 <98973969+uo283642@users.noreply.github.com> Date: Thu, 22 Feb 2024 18:25:09 +0100 Subject: [PATCH 21/25] 03_Technical context diagram correction Diagram img wasn't cropped correctly --- docs/images/03_Technical_Context.png | Bin 13534 -> 12074 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/03_Technical_Context.png b/docs/images/03_Technical_Context.png index 2899ac70450359a8fe4616573407618a96f03774..9b2025517fc2284be650679658492474ae6b6b26 100644 GIT binary patch literal 12074 zcmeHtXH-*b+hzcTBOU});0RI_5fy=>QWOkbX(C9Kt|B!+=p~SVSO5!60R;&~inLHe zXaU7SZ=nPdiqcyMErgzVa=v$c-#cq&e$1M+=Eto0!P+}v@9e#w{XExwl{?z#t~M8^ zASVO@;nLO7GKN4{2@nVi%OC9E8?y@-4}o3#X}*shIXJ|g0(TK^+WLF{5ZH<1Jmd;CV&PkanD_7h zB7%L0nB#^H8`!e&WV3)nA%B1;gs4IO<3LD+90YQ`HB&RP-Wrn7R3xm%i8|PJ7EVo%TdAP(#JXud##B{_9c>i_Ajms?& zp95yo0ueZf7-D0-Px1#(Fts~N9f2{y0)0(y8z~J{4a+=tAz}2 zq_BJLlFJ?2>%}4AOHpE65Z<+)LhvBm#A`wMwz|WRmKZR6JS>g-o2i}euY4PA*qV4X z+Fj<*Oo|uR9`Q&Yw;rtvgfI4fisX~A8Pa=q;h~|*c6Q+Hk6ztukdI0o;%`3xyqO>M z?(0(yG8^~J2e)4FV{3e8t!N7al%X<*&4XPk8B4TVO!MEvE5OI<&Fh1_14F*O;98!2 zf5l-b$=cH!_YKOeBRvy;+l@lPwu6I~#-3Jrke%uRsa5i@!J*zy+8+BmwB^&3_JjT1 z(VB*0Ya9s;4XMY!o$gK_*GsxQPx%nSZPxtc-6gZOwdr=}A20bTA`TxVeQ-v*9_Bn* z3cj<>)Oc<)t5M@KJyMgWS9@rlPqnDjA4VJ&wPuuFdzJ1wE%gp3H~DT*pJD>NTo7$}?!yL1jdQr(Lez4+byv(eYXmZO`R z7>&}V(k4tytEF?A;|<>#Kb-G$TcZ2Wz@+HSpdRuyYn*4=exkwXz|F?>FWmD=Re@AH zfquRotOu#G721G~M41`JQ--CJ!|2pG8!-ux>f;$wsS$jEOe z7^%`#OH(h?Fu(t*n(%iq*QZ%#BaM!lPb z6+*YX0_&W+(aQ`?M{TJ17RgPnnMK2# z(~(tXMfb0uO#U`|U=H_k$_=N`-%I%|!ut)8XSQfW`$;yelDH`%k3M(y*2^IJ-PEXl z9ntGvUqphZc!k!M;mMhe=FZWHNwDlmSW=1eo1zB51@*hXihY30Qw%yAgZ}_@z%=OCT`Og!6 z2+F%nVJaOrd89AVdJ>gvS?XueAxp!~>HZe106;w^%Omqu zJ&H5WDuP?USj@;cyY+e8VC=1rb{qXhb3jz^j5#+AunH*U?J^Z$&D3}mt#KK&=RX)N zw2-Y^Ym=I6e(=~COdD*Hv^8m;K2D9OP`$oaP>AuFyuX1aReL+^jx!DdH9qKGC!EeU z>*Do{+MEv^<%X2kMxT)U89DR(s6g#q*08=J;qu3=$9Ff$@KKL+H||2y{E4b`)J`il z-%mUfEaLF-FvjR|?V^lDQ$_-N;(J${AFpH^TrBL7SfPx_>pA+#RmX&ts%7~KI7H=K z;yORx=%blRc`>$U)5kuv>YKy`h@PCBP`O~NPyb{gsAfJ(SAg-{O;hq8@vwizFMZh% zeRDaW$!;EFTSwwj9Qk#-u~2)itXZT2922Y^dz5|?((5tTlWAUJ2ep_jLeDy*gMYg9 zKgf#o%J;N#6uso%TdlHheLg_`N~Ro`+cD?NPNW?l?WWqYgcmKe%QpI@u^xP0GfHXF zO+Mmp1J%fs`(yRFfSs44SlHfb!ht|gHrh#SzArBp zxlbc*4qC&1#0Ki>r9^BL3>4N|f6b;H0ATICgU?-fg1+jgx3{FGqfFB?Oj8<2TykAL z$j-i~LnYO;*YVx4qH;qZJe@E8JT+l{)A2=mOCR6YJT#&WjoNW7nSSibNqEkgSL^~U zrgMZB-F6fqC4@L6fnnzvl{?CDZ97|(Ys7Ta&zNvBTgswfX_WIkI1mDf3TQnH&3-eJ zb@y&cM5X!HdtACawdu>?QsKYY|NQHLcB}|(ljow9QDGS4V9ag;oQ{1~oV0&TgYJ;; z1&*rBx5L+B-3HpK;N#0!v0^z%ocWXfgo##NlenZ@gH)@hJ6!enl{w~&fk0e8nf;0V z^)jgyHJxa&)RU<>#+y9|u-0Sc*H=%G`2Y&3=Ih5+UEetKlC>{S*uEX>Q!{$er_+*NOv#iNQ*u;1=Rda_^kNg}-HQG0QjpQR~0x#GL$N_z*IvfgVJeT;WX* zfSh3EJEtiJR_P^P8g69l!*R8lGgE_p5diVmyYATCad$7W&Qnf+ewRYsf4De^sR&-5 zsllwS@wHjMS-5Nx-JxBmKA-RxMC+B;I6Ww=L-5_WoSBnxWkRJnv|quw>$H?r<>$iP zfn3*h=92&MN`T(gg*M07%$xU_!}s^L*FC;Q9QK?ZX6F*TzdqAh>^=F@JVT9zy7X3p z4*w{lPNL5YDN>SB;j5eB9g*CefD?$N;j>R>pRfXeDdk|~JR7Te-~ym2Ej3L;g6lt# z63~v1iJ*RQ@?V}CRra+4sP8dWKdj(B^Z+(kM1@21F$+S*uNnkxVJm%+SQ03~vmbShSVM4{FaeYq0Ug76-S;#^!{^s{L?(%;_5w z5oH%nzKWrY))Al2fcjhO(U)tmyh^*dVUl^n&m?@%SLbMiT-+g*3lJ@#2*1ta(PC-G z2h4Y&4dg113P2(1yb5ay`Ko?!*QL-jW_L~o(3gfMDQS1k*qj;4Bb-RIjS?N?BMeAk zASI=C4WYqOrk~@4!jf%tVo!qKeWrsna(TS5OKnVFhCB7DQEwHHO-8L^PV=7Pesft% zw8JFtu0QtmAGe`TQcUhcy`#_QILn^m&He;Cb2*Y1(9NRdyvZ_ihSZu~gqOzI0GuGmIbW8Zr$D3=hQW+Vz4 z$4N6=1g}$wh+z%3#WZY^V53*jB)bp_wsiKA)=V}$|DBi?+D=)}E8*TAv8<|NZHE|I zsyH56G2QyM85TXsIL1|f51C;;uGga4Jg&0!i;ajTtp9;GG!DyKI3d4=?EievQ`NZt zZOUlg@3spF!?qTpq4_%kWAUOeef5LrXw$(4W24W|HvhI;mBg#$b0qXg?)Y2Vxx+bV zJ%iUWDG|41H4Ng=if}vn?L6*JQkd!{VGggXks99+TsgY3;edA70QxdzT<+q+?^;R~ z*%*tk%pQx}s2>ZVLgBJk2}O6S@aFxT!Z(2e^vIeX=*fUAJ_ZmF#w;? z-G*Gn7HylBHX#A=Xx%xw3EWTwmEOO@F$Lro%*1|1$@>K1Z)AMfm{gc@O zg9eJDQ^JSi(B*_h`{ZbeG8W{Hup4pVaY5(lE03N9PE|h(Tg*^@S}z_SEJ~nSxJJuZ zuzfHyM|6tACWKc`Ub3z#qEX27XS{SsmZn}w7}wc;$KTnA5;^N|1WqJu&pTwTRg%qK z;nDJzBE)8FxPVi)Y_E!iQkc;0n@@MFWU25r!;2kX&h>|CXhP% ztg`n@zdR3uL{DB*RVpn%lVx?zd>OG+)?8#!VmBsoRu``b1jhPimWh+iuu)&|K#^r1 zSH{b1Np#Rz)at41G=8~SYQt_le)9hC-y!!<4vyb85=R=ZKnZFJnZ3US_i`@2k3+g- z7&~$HX31WUKh_J0)PvG}3vc)}{As$q)D6P0u}5?25zr zcAjhxSlHJjmdZ(K-aZ9IRNDIW-ok9s^3qXjR!=&BHVc;FVN#q26=3E$W`pA zOJX5_t-83SK8jRHJ;6XcckKLlk!8hFg1$^y==NH$G=JlxB=&f-61!1$ZV`7TpNSE{ z`OO>SG+d&OOV|h(nm6c2vo`S4su>5nqia}r!**`q)b&QiCGd22HdldWj5=v>;`1$8 zHzLLZA40E64?7rsKKX2KT>}T`el4+s+Q{(KeDSCEwM#A-`+*#(?_)ueZ8rC_ zcejFckId4h*F{ZA7*E(ZNVDl-o{`+5n=z~{?m*468<$jSlpEq?>z1yTfM z`9j;LH!}ROzu@Tg%t~U@F z`-b{d5nbAc1th`I9x6$@joj$fHg7~BiK#gV16#L2IXxBI9Xx$3#G^As-qZf~ZVC+J z-Iwtk^O4r0$vs@@+Bf1Ld5dn6VG;X5<=4Pu@wTBg)@?eC_h2$_I`|pTP4Ad|*)!&` z76)EtBj@UfD{YTKl;SZ>P4|W> zW4l{RAZ=CDu-n4I-Z;zm8xrXn`YZ`W+|_H25vKh5`gGNwbfjB1#!l6Dro)?h<;e5h z27ze0c6K8-C@R_BEKx;MPL!5Pb*qOCs|i2GMB;+^F4}yj@keT&*jUuG!hS^D8$<0< zmY>>SKkR(zyA&Xb+REHtv}gGE(q_8S$h0{HxBj_oo(#K7whe<4uATQ5!deP2#!oS! z>7i@USkF;XmHY6-0_FrEvRvaSqIQ4x;zq$;KSH*yr+pK0FQZ%h3^a0D>ORY5Qh(9C zKBiiQ%LX4XU{;%!(1zNAPxE7Pr8vj-q%liLbl%F6iDe`^ZM$-$wkgl-CD}5|WmSZCQ#ND_V+6ibCoGcQ+aX6wiK|Mvp_3^XU z%kfD}8LH$r_sj0xLiC{NqcvRPekWpcX&xa^$vQaI`qs9N{oKJmH7pR?A3gBUyy$)} zEo)n}oO9CZZohPZY+#XkZ+K z&~KR5d_133>;KkUt?F(2B(_EDv0yIbmLZR7iK61CX@>Pg=tax_XX zJ97-xu#5+8tS%R9ZxE8lI#U(XSEjqe>fc59#Stxhy02ivIF6QUMNVmmoE5JLb6^)@ zJ#~le7~lDUz9O;;?fbkjRTLC0jk-1kIWNQMyMhlsCvYR<+#bA((AIF<-I|Q`0Gix0 z0Af4Zdxt%`H+bQm#d{(LYA%;2>+6#v<2S(+=)cJ=W^AhBO&hSNV~igs!1Ob(`}Nr@ z3+8z(7UOEsP<+(}qv&9KAX&BZ=7}!8ci#^MBUxIkn4r?b#t5TsM%sZ zsl}+)ruc~wsGJe0ugo*8q5UZyVwnJvNwx`tVi!9%GZ7|SR(h{lF&ZIF`Yk@A{=^y) zMO(LHe9M!0Gr^E}zh>dUYS}`jo**9AUN0{+J>zF$i*5VVUvbl=M+|p8A-A_rz~cEF z(LM~&@P)(RX6AJrx>Mvl9u;F?)9mFh2#i>zT!YEOSH&6IFc_&Q-!|+U4fE7#q}qFV z{hH}q4aus~{ULIfhP6j+|4WIPcG-rxopYUa1QLD?V~`;4fe=>>ryA+?KN*JawzvE62vd z);|%dJY}gUcHgAq{8W0Olp(RIR-qwV%9tRb6DzDZD2=nKF?OVz?1J05PCGcjHP+=U zgpF_2k%@$j?e*C}M}y24_?sQMcT?R0X$|eS@mJcc#)n9Dq4T$Px8BC$uf_BoI)M+N zRq=k)uC{bThaCh{TkK=6xxYu=Sl3?+gNKE9Ou@_I=D-1L-rwwNc47Op%`RnXkh3r`$5#M16qkD$ z|NDiI`|z40CfQO#U}1k5r5%X-{9Z)6VyJq2R+mE6dyS$3@Aj@$+D1|gt{Uy)vD4JE z-h~D%HOeIp4Wv(65<{-gcJVu0j$~061AP2n{Xl7dK<>=vc`Bsd8kg~z7Ri*;e5c`B zybcSN_O2``fAg$;BvQsR`+4liEUe3W_A3kC;FNjcH=pGBLi6`+qxG_0Zsq5p%YVyq z2SR@f`hHU1<)p+PFB2<{CWnz%QmswTUU4IOrvYar+(i4DT0Ul|6XW;wx##)(N*#B? z%bqJfM`E=R2}chH*dFOjlu9NZ&ogZ`HV2l3g`sVUCsZ+{Kg!~E^}rMHGiTKi>q(uS z*?9|=37;l`5Ax3=7{v|z(%|AZrTS@H>NLAxTkaPPmgDZFPb(J345GURCNJBgCK71+ z$oc+N3154Tfm!RB=RRaH8@t+2Xc_QmNI=*p(F744L&eyt{Hf65+p`6k_@qoBP zuo6B#cK&txub)-t{Fut}h`5|I+U=DYYnIhQ>sv|dR0WUv3gg^cKT_m9X4nPXP=U}G zJw27}trLMZPgJmtu;wn|Dvw%=LH{oeY zfj;Z<^o8NYXHO!2_k5hPdcCwNDH7O6%2!e^jDD&5^tKzy0_QneWLp<7SYct9`nPw) zVzh{Y-~BB8&Bc*a&)QalLVEgFMw#0{!7yW#5jNIasoxiIS=?U870BDl1PMKa^ly{k z$Rq~}!rG$ba7)nTmV}xzF@3*>>Pan+)RX2i_LBIBi$MT?-GRrAiM(FH6z5*Cl?^O5 z-rIanG%Dv%wT&ViEo~8@M{c#rJw#>8;LpH}y5HU27QY$<*Ko>A^i!lnIa@FR}Vo6Ad&MOK1q>q2&|MDs@K*7uXsbix`f%ERv*I~_|f`C| z!2D(#_IHa=`#V7F&v|bIA#B8?2yS{nY+!_1;y$>}4@8O}TJ}3Sqj)_h4gjwX zDUM=K$ttkJBQWRG8KPqEDP&xox>a=NcgROhD}$9B0sHccRKv3QzTCRRqvR^rRB22~ zcEN2c-;K_X@_n8)+x#UGK9!YIi551e8qc1M<2`G}Rvkk36gcp+w9-#>x(z_ZM?AUv z0^-F$zDYBzGt@8G9@@)k7In9gaZvY0R8^(^)?Z$%iCQ52==N;f55OU8AAOGRvP&o& zzxDVW9ez3>Zcx!iy6^L}P~W7`Gjv8olnjMW+NvLRm|!7?G}@q!j|0M}_sMGhh??J7 z;MN?P-$)*5^d8C)u5j+IlCiDL){o+cVnpm4!K#I{EHxb?q|C_RWi1z1X(8a7@D7=k zjXWOhu$LGV(RWcC>?ph0mHJj?#du zFbv9xTW5)@Cq=mu*XwZG8aR)E8$sN3kUJFtD`&YL81M*f7Kj?+tQK3oK)e_}c-<-F z_YZ-Qe*aI}u~ph4sHtaWtz)6<2B~XbPcHW2Bj22Y{#?e>?NYBeyg1r-1b^^zaj@80 zF=XUGe6n^UGPNsb>#*&`n?Nns`fB(u47Gx#H!YIq^}Fex zYjA^W7^KB8IR!3K$GXzxUb%1`?-7DofoYja)l&1w8^P6h0ngK%!wi>kjruG zvW2V0~<@F>!DkvG%x}D*(D`@ zh@~l8*aTLITw%&uQFD+H1)tKqlVlcO(C`0w`j*ZqkY)^z)L6z z)CIz*Pmuwv*O4RN5lm+|Yl$FtrYDlr>K^ zjlBAB?-2W`v)@L7XVb=tm*9XxS24bz+S6qlnSmVaFwdKvjd?IuKP&H#fza0-5X;SG z(Xji#b1Vk_{9x%rO{U!&XzoX@_Wpzf3wRS4LbYACj>Jt0nOWX!KKN8OaS|ZqD#&{S z0)r&18`;DVI*nz8lvjWnQQdXNV}Zvk=g9&J>zY&vglhGrh^0Hi_yV-iKc@X?io`;t zM^DC+-H2WgokPS zAd9Uq&e5|3wm&|^`EJ4Mo|N;oYqd_Df^@}&SzzXjyl(($M9sw|U_?+F)LdT9{70fG z6d}hW0mAk0@4%w^hT8hgA#hW^<{87pVce88^L5b72j|*y8`{W16>F7~os?yHwh(vT zkqdivqZM6B?VWSyFU^{X8NL*;e`~UJ@}>Oqa(<0_fAc?o)LRDJj@q80D2T1P+&gjf_Pw?F7xp5&^|H_0Z|10w^RCE9Lan>5>afpWYh#)uafgXlrG6&?bA?TxdI9%auxTgRcyiBZeXpT8SdaJxluJtb@+v5>f zW)%l$FiD~>kHUZi$H7YQgUpz*if9+o3D(R^jN}XmU`tcs4Z~|wt&<=Z32O$4UXe|W z&mhKDncCugaN}U}D~D+H<~y|Z95P`?xjk7HE?^&827L223LB(cGD0rgMB_{?Xuqfm zT786LES5CZs*yl7Y)@4znQn>y_PqC>6u@u}beS-b2{uw)M)bK#J3k&k_NW3lSR&z= zj}+1ET}M#y^m-^nEdVt9c5!i(d$XyCmC_lKPc@Vg}HK;eJB$ zZY3CggmwqB_={`D_|f_nyv?KV^SP<@pCpZ4qs}R07&dBBnBi=pwa9;;0OW^&v0_F5 zdYTZ(@CoV)#ow{>790}KM?dP!%|uTD^d3QnuC;!V5WEPD&Ax11 z)gkkb`45Q`=FMh#%n779mKo&JAg|iaGJ8uDdt|S0wxw7){Cs`NPJcovaM|5C%|8hW z3cQ{En(^+P=51hk#9O7oKt?4n0^xM2W{#qXKW&i#4Z&!Dx zU*&Ip4`ctQo|*$q306AK8T_}6_;W!{_Gq?WtE6(FH?XzJXj3V=& z0UqN?bErqgzFlLsb@f0H#2p9e^H-JNSp!&@I-j!7Rw?n(azNeDOJu0DAaExXimfME zmkBi$qX#ttc8^Lr55_q8FD`6;Okzkr2=_}hVWmaN5SlUTd_F(X? zlu?TU#@4Z}YJVP^BE9bvGu`#Jxxm&hn%teJjN`j#*94g92H?R`K*B?pBa64SO@rR$kH6xeu>uQJbigIOX zVV?dTN2tCVbG$$wuyA?aA-o zr%JonM5{8>JFvSi8Xm$>HV?%a>$23(mJ9*y+H_fz969lg%X*HVJp@t?S`556FX%8f z_BDu4L$`jZTW=F7>j#`2@{5;rnrWu+`?Oac42O!ezyy=y!Fqrdo zd+>Lbue(m8NPrhZMY$AS5_p?H@L@hXn227S?=D!3bzL^;O6p8sRG^LMHT2!ZwaIrg zq_mo`7KJ86pP4pFjKu6jp&*(2)eN~dQ8iflqAucB=E4U?U-45uDa)Vi$AlaW4G+H8 zs;*@#^M}X{?%&a~T0ROJe!u5J-``x+vw#;Ty!Ms-?2sd6TAoIpV3*nPnQECw zi6{p=x_)f70jy*J&;on%-i;q^RDqg&s)oLlo1IU7CwiwL)nEK!>n$G={gjIVY3xy~ zpX((1mc(srUqSR>k?^aAj}NUCJxjaKH#pkgK{YFXTk0rxwv73B!-F(L^k{!UQwaO1 ztw8A{)_?Nux@_IGZ?m%9j8P${^Pcl-iE1Aws-=jSlWEv{O z`bTspi~JV{0abx~5KtG4ij!fuJL)@!y42y|>sE1s+Q)>;gD15uCtoC6%@cC)OjQ2& zO35>_JX+^5w8C2zGLCA0t5`yO>2y>8(;z4qJRo0f&m2qrK8fN_pVZe&`an|Q4tUj5D<_e9YQam7YiaF zoe(-AQbSRC&t1QL&Y8LI-FM#Hnfu>+du9v7BYe=J3lH}@SB>LN<+zNCiR`-KsA9nG~- zGMOk%C;9a+sgpO)&_^Ana}aX%4m%Sk5POIH?P$B%xv5Iu>9m3Dq24)DT_vWgyPAX9 zt7&F&>5to|B;w-yZeI+de06zcgSLL2m7-YJdiZij6LvviLoaE(wySI-xQzIa^ZNDc zr%|W|CJt_Hr7>S}EiW&xwPDaBtif0j_NePYZKBZJ+7m%)w_WCYdrM!)$FDrQ1)p8T z-38ALUr||sN8rLxeiR2S;Y$PR@4tQM=l#d{!Ielf33&>JZe5lVz8*fAMgdePdBi#+?3&JiBj-Tc3 z?JqLHj(KkkR9!%2xyXbu6F$8-9u*ZO_3AKZ!v`jbJ3;qWe~*7Y+J(Zr_<2(F@s}g| zF$a2&9JEY6@!SGc*4B0@ZbP(z_n_qu+9U9s^LKAOJR!+gar6?Sgw4HIhhMYGQj%%^ z`9sdji`1`9QYWupx=*Po^F}&P=G9@9p_3^Tq>HktTCDdevuuuZ`K{UCW9Y>!)ovIC zic=&DxXq@=z@zjh(^N^`t6eg9ZVHrb{7sXu@H(#XP8v9he;pS}k`aEo;dhZ5zWgQe z<}iwDYrdqzlsEQ!*z@NH^FF2??V56r-OWFYq8_Eg!^6KOCQ{Gwng4~MLKQOQvr?n93Qe0& z(=#x%eExjT!NCDDP@LY~-CgRkptrU#RIage=s3f-)>Z{>Zf+s(?NTG}HBEl&ewBLx zH2l3Zs2l}z^9*>p^Y*HxVU3%rcD{kCqhs;0W5=AAf62+I!S`&}goX7jEiI?&W@l$x zT3R?=tz~3nwzjw9l04nqzO}U}M*Nzd&fH!jwf6L=!#}gUz8+mtQo<-`dtF;wduwx( zZ)& zBDOjruPSr$^J`v-lp7r#g{z2w4^mTG+jdFt^5wgsp`pvGt8d{Uwre+Ts9@)M!`TLg zhQ@g3GcqzbuU>816=7$Wdhy~#OGgKBwkMN)?`qo8K#7cYfsv-3UR-xiPgG)Je#w&# z&Wjf%>gwu_9XX<6Z*Lzc6U=}%wKMkK3CR<1R8XvU##7u3VRGgp-?cGedLi%bH1b`}KpmRosRT3gj+WnabdTV-5P zjLTAp;YQx|z<~pBXRe+-8-u}RKKlHUJyFoIJFVL!EiLWc#=EOmuX0_xCMUkXnR@!n z8SL(+gHtli@#E@lZWTh#GZ$T5U2(m3Q5U`Uwy}yyVus>&JC(x%)9nd8)l0QFs4T1H zU(Hjrhf!IxwqnhNPdXAK(w;p#Ag5+zlo-upoPYGpmA5nMHRTzXqw$n}#qWh(m8^*Q zguybaGAv2U-OY_dM8p8zVd5)hxS|N2raiTtDib#MEu2+e zR<^UoedU(drhR2)WwuFEXi!j)TDk4Wch4R!T#IB?R#w)hlinps<$Jks+pJpNUYn0S ztTJI(>!Hb|m3u?H_G>jF7C?tw?Ck8p3Wrp!JiYW7 zV;|kNIDYj94_+sFEz8}xeOpJwC8}Vs$aX|1_?~kS@}aP#K20nJRanVWxB1EIa@*oa zwWfxKsn3_jM!5)@3%8SNJvX9fT%qGeJeO*#Hbyjq#{2(hyiM%{LrdTr!3 zeh6xFcJt4KUg5*1TQxyOwH}0)lZJ^IjtUg8*8VKH;SrIERW(|8%ID zWcQV+*&iSMm;d}xy?_6H_Qpc7#%yOOt4!!y_s1XD+Y^K{;rlGWKFw+RIt#VsKI7tO)u)4`js2UZ|kaK*}SC!s(j@EiAB=o;-ad39-Rp6;j`{++) z_3h0iA-CVjquv`Mjzij(Va|`$9&1)Kj$p%X_B99~R8}*V`>r$f>Ul)ccar zMD1&`0neX*YiepzF=k<5dGY+YhM5PDte#zWn%q>p#7B?i3_=RI2mG>>%yY~4Fd zd$ZT|+mB1bZ$Mcj2kGIhvwilq;ZrN%xhL}-roNwBTO84c#woYfo;+W?I@5KJiB(uD zN4e=+=v-H-jAkYXldLtd?HSg!IfBB%U|A2KN>qHj6)6IfJ3nt-yEPRb^y*b-!&6E- z_gUfQW0HfWyq3_+3<0yD;Y|GQ%ckqn!16lHP=00ZE9UHMY*}Wl(Q&sOQfQcjOi9I< z*GT*S`WAld=uuT^>6hyZLz(a1y*sv}Ih(`O2n}6uO+CY6qzW6P&#XPAsORP7b<6bk z$+ej-|C7Lr56$-X_v1u8@kmu6O~)$zy7Qk+CnY77t)8hgd}Ws`r>IEy8gjnOXV1fC zuv88zqbFI?e|52XDM!-(FhiJ0)J612Ki^2n6Xmt}0rdbH7PXc@x`qCtd#6sF!d&Rp z$M{_ZAV^83DgLmX6~<>v44<=?+m0PjA1{!GYFJpbb5O90Z= zK6Y)~e?lH8+A=F5_dk&bfh)1y-}mka3!i5k!bonL=jq|qaM5`PrFpE+>oTbW^Cuqw z*bfQ~)pB+&Wt;sHcxJH9yV_;G{{y_!93X}&faKk~cYAYn`S>lnzw914a^y`?Qj&pz zf%VR1&NmSeDW#>i62!dqnwy)29DY8Jh>VPS_bzLqDU1v71+7=AqNDRpI`l#|Tu1ZB z$OxyCwgPAkR71j54h~sKNlC^V5B=N+CR<~$o4+5iU%A2wNUx8#?t(JH0?edmWVD#_ zHV+Ny!*d;7T%ya%%XfEoHR^r5f!JHRx>OSr6Q^pco<4m#C5#>%8sY*9ANEjFSC5K} zH1SD<5BTZRT~H^a)!Ckiv|qnWSE``ZIMHZD5DD_i%EW<^C-f&zUNkl~K6LOP2Yl#{ zA3u8h3YYm#F*sVc{gWHfNy!XOuCCgqrfHX1Sz8T~Vq+~wCp`cBlrpSzl!6QAg%DhpAd?y zB7rj7lEjU#LtJ=KD>>-;=3D? zEWW!%nqP6*LuA0uwT1FA44?=596Iqch&aGTVnO}B-W>m4(Uc5}cW;Uir$<7>>Y!DD zPEj_ENPO!k5ielqn_%VQ)G9lFc)!9qdc*f1o%rrMl7^chM#g z2zA8-NHfCrf}iiovVI8m+7_s8ykE?m2I4Kx^nWD09& zTlL+|je4?;DpPb#I~*?;=!@X9JOaz9+}e_o9}Rua)+oz)Y*}MEc1;31!B_86ylL1fTVa@C#wcWJk-js6<~FEEu5_B714@oyLs%A+ zETe$+JA{$}X>lOr1oBTyV6*1dedl_wfmT+^(~I)u!@9{zEhvLcm`X2Z;{p0~riFh5X&XxXhTkUfNa!)i>zgn3)MAQ4<1yIiJnQeTC` z#Oimxjv2U*T6q)_mi(4G8^3?Qah}-D^R2-y0F+Gr_>l}3n&Y}O8YgI%Xym)MhRIG9 ziH(hQbaI;5MGbdhx&^}G0$nA}V|uf~jeNEyPd^!^%wpmk+@}N;ys%)nILZ~-oCd-L z5wm>e-&HUeOj)mLA~d|{?*_`3QwK4uVk=8Z2WN+7pp8AI6I`9)c;(c9;25s!G&EC5 zpj8GI#!Pv$?Z)Z`3m<((H-!MgKYW;M-WI2c#=d<5fZ;J;)Wk`k%2M3?UchvuyF5HH zG7@h$_VwTOTBjst)QaBvn+DEB4%te`WW#$6N>GlH&|l97<`OLY5r zbZ>pguH4#nWn!i)H3A$78})gC2a53m1ksJ*)E_?{f)a=gQ{^cjw}t6vTkLF`gaB0` zJ*99VUwwEAibr#+h@$W^BogIvfFDR1i+Zke@bap4hbY_x?4JXr3{)gI#_Zl2jdrxR z&*}{k$iXy6uzP@mL^z%4j^q7HmoAmt*d}uVJ6{5UF=0(^Q42hvZ6vqBQlY)`6ka$v03o`YNq(?Qz~W^FRvQ+ zEhqq_Q%)1FpzBPcL4YGNP;ksk{m`L9=~H(=_JT^if(Xi&FOi<7?~8`ZkK)pv$vx0=pv1iD9D>+$0~a5C8W{+ovNKDEOxg5q<%*{NVK=f21C zd2Ech(lax2`}+DK_yOL#TU}X{U5_%&Jp<}gxnB=d6{MIJs8@6?jH+;$3NaO>u0sEtY!h82m z(>CNIt5flI(Qy;$F-G03JoUL?hcKXzw@Jq2oQjGH{k}2`ffJ5(264lWA3t85%}k2k z8Mm3;l%7N7T;}6b2b-rND=S+m_>ChNgcR^+-R`mil%#%bev7rSAc&JhxbR9(HhZdS z6WWD$!mjzDEaJ8#Ui%nfh(#WonBZ1(JP1&p&OqzqzjbwW zd3Ei74xr@{7Ow6MuzmFC1IU8!-lN9e2#Mx@ZvWRd+~yH zeIRyn0K^YbQN;|jkL-yLS%D_`?#sfDdHeFjxs*Kp@;M-ups+9^c>b*NQ4a-^udi>e zKi1enA52?eaX{{W^C)as1gfdB9yutJb6K$f&|(g z0w{hcZg~?8^Dt)>l{W_{Da*`S8Q@G}Kb!j>rlweFb`l2(;mndR zxf+m%U0B#e=B}2@j$Vm*2#Bv=Q&Sn9i45WXJx$Zkw@^yzbXDnB@#M3o;WupP zX-g0;*LWia*N`1~R8&Ny)OE=S(f?uM`xQtE20907SuvJZ3WOyeT?)I&&{@B@7Z<6A z%?+zvG;MA3clY)PrIzX|%iq4qnmu{a3SF=<=Ia|M2IUY9&}ZI}nD=L*sdaSJ2wJii zbc%e4xK-bE#P%b3Nli`7>Ncr>H1H$|T@np6kqzBu=JR5=-z3ZulC$kUO)P8QSi>|t zc3XNWbb26vTboG@LtN`MhvJ92L^Cq6em@;D&Q@>@b~S%qf;rXH(cu8bK;!~>MVxF> zLBl$9RwZGbrN5xRU+0dH5T-P)|Uzqb-TnE@SS+g*h$WO<0^;EWDrUR z7!PGZF75F%@T&ZUIX5T$*{_=Rp!f1`rZ#2imY8edvIn0zD=CH2u!vdz36zqs>B>@N zH8VARtG75emlJ%pRlJB>NN79S*b}O9KqNn%<$IF%x^5*Y?v|yRdBUSdkG97HSU4|0 zj_Ri>NKUHP1y)kH&QmbbHVVNTXUC3A)Iiyy+kWz#sSr(plWT@&+;0 zn}yIz%$#dt@zvO19)Vek*&l<(;gMl%Sd%E?n0)t$zO%KiW04673DMk!dbUGIY;0Fw zC$FHO4n;PeG{T~(@FrBBITIWjKea7l)Ed##S5Cl3c6~-(`9|&vXO(fjvi3Ude0hee zv$KYdj!vKpi}!ALU#?;5*{}7K%4>qV8Cep`oEcJT88}rfgW?&Ye4e;Mx#t zY8DvP9&0LnOYmP6w5n4D^V=3PY>7n1cpIEupO?u(HfmV9(U?oyS&9OpU6l1_XpwNH z%VoABA#b)vT*tCyHki8=r)wcT)r5x5Lvj=lt`O46)OxISPlSo*cZic~df(mbx`|9v z0O8lZoKfZ&Cmy7yqnm+fdfRrym66}^?O?eb4+~4u`Iy-G(a*mP%#H#JHwK?oNKg@3 z9r!ReR8X+JPQn3JTg<;JI_&d!vIO&H6mJv%{z3v>AO4r!tw%PWfBl+C1G?6A5<(_M zoseebf%Bj4NFpZIdiK_OHh&gUN)*Y4AfU{q2mfUmZ!-vTO+DS#iG_~NbiW$@L#8#5 z(x<1TaX<+HD6$WZd1ZFBv}Ln0B=JQqLmKc! zj(VnYlxIW_YnVt1d^-z*ye|$WiKxROn?L-EOG9?13VW_8z9W2R z!o$jV{U(SLh>D8KdEA+(#f`;58beehacY5e6=WS|bk}_}hV%@!@ zIp0Nw#sl55zm@vi9a?IaO8FIC0-P zgZGBLfV1E}WsJSoqLB1Gc-o>f`KibHOm^kUR0}*+G457Zo%hb_Ueyx&-n2(&R4mEy zs~J5V1ILaY9tmf>>wY>xdNDWfA$>_xWf-4TDEp-SeOIwr>*^1GTD{$12`LEXS5{Wa zV21ZMf8?(^UM(#r0&JJULm?OLbpP~$TT#gD>A9muG^`t#QB5TzOH$T~?|2*5dFlH2 z_%I5(7zCa3!H6$;&ttK2`W7iccZ$nG!#w{KtMoTW{UF_= zprDxRFG@{x+dT@M6*Zt$b*dj?M8b!ARMfscZs~LNQJm@hjS38;?0scTj}9n;lEgXk zTLvCoYrBW}R5w%k7=*%^a(kd_8z96^6zKt&(m$Jr9;XZ=G-+ z^U`B&ZWdHAo_iwyqvx4LI&h*0ej}&@Bg<7N;<=sOs{GV;RtTY5RM2-Us*=xhW5y=oBY!DeK2L zXy3N~AraUbOo3k~5REM%*b52`?3?BiBf>~y&6%8OW2hCSx!oDMN3~AUTQ76uanjZW zk+*H$COGK(&^Mc;Ovx{qB<6j~;pcsbJ%_slgI+QzqEK|tkzIgGy8jr^&|SEYJ2PXU zAETcC{{02CQH>77>Dr%PQrj5P*s=nRO5MLd11Qwz)FFD6ii%1vB z99>PR_aQhiqm1=V3dF9d-)7dy&jhleinQ zOX7vbBc9IM($dngttG|9IeE8HD0@#tJO6X-0It=(sXBE-_ADJ;f7L;NgAmv-fZ!Hr z!W+*`RWYH9mMzdNk@gQbq19m|%5UE(;k`8(!`=r86wzaGYZ@VE|HHK15$Os*ffh!_ zH36O=DiGI?Q1iy(NFOIH3N?J-5@S}4{MhB1>o7`>+xut@ z$^7z`0v^O1-Hi*d`1vJpuJeQcW#RidPSfoG8tTh|rjx&ZS-^A&0tC1eK|yU0=Z?nsoyOI{gDO$m<7TB&pn+V0kRvEBk~z1@!2tv0y#CiZ+SCc@71V_P)n=^5lAMm<*0BhWtSUki-ue~q8_;-^4K ztg+r7V}cSZ1q%yKRvAK}NC?mJ6sox1-*J)#^9tseSkfV;Z(DtgcEO^*@B`!sFj1Ai zF7C5iAtEXY^8DhgG%6Hw(TbvpTjPyKx3{K~kgOm%`66V}%G2#hk@fYy*#XU_IX@ME z*rFs~)m3}J&IkkrF`yhWVa^rr>XNbyhqDHu2Pdp0K;!mSFV%UruG1g3ga}GXS{flv zM6AQg!P-iPxYcA!)Z9pQIom9#alJB+C`1wPJ!wbQ0KojHfo%CTGm{0|6Ntqh{QdcG zdV)evEZ>t-%bqKZ=&+J@91MpT;QGD4hBD#6Yja(?B#GDqNIJ1F7SWHo1(E1FOYw-5?op)Gbk5%gd{3AVT>8GvStA10lfT zwfPj;Rj8>EL2_%8rq`PAX6~;cGr&L;B7Z0LGEg@}Sl4p2-vYR^&wia;g0Q8`u~A-$ z_lpgrvVZBv*blvj!Pfw>WKw5LHH4AB7<&h0Jp<9u<@;le#l^*?kf}q+ZU7QV8*#hz z^yyGE%>)9WZ*t@mjHt>SCZrJ!g}BlZ^EM>!6y00x!2owRPUz63QS^F&zXQOo|1|j0 z5{w`;I?De1zui#44B^3WV%T|jc=Tg*^N=fqbK-y#L_$A^X%I&ZgDRM*%Y$o+1g`v0 zbhKLnEeRvJ_qQGH4wc&x;qO<6?CNL#@54XCbu^;lV2p;u0kC|d^#1k-n64rD5oC5q zd<>Z@5;6S#Z4Wn25(Yt9vGEF~fP=lKAs_`Q*zHF_`Mni_$y_9exp`AnPEKwR5=PMZ zIsaxo28nKg8Cr=%?SJgZ+*%?~pEz;LIH&_`B#4E{zR0+^9AK-JmA7x{5KID`fsYu? z#(wo`JP}#609b>tRola(sy$H@=jVrlK_apz19Lz4*nJ=_AJcRa+@)?Kdu0;nsl~;7 zaIjG8(UoF+d_6Ty8$TO^s~jhT5Id=&k_;#c*50nArx#ag2X72Fza?P^6E%`4Nd|?2BHD+t*o14HLttGSSy6$$2c4 z5pUTH-ZC>c*Vr9LdMu z0jNudHIY1>qPr0=Q%-|06IvPb>G{#+jSX$s>Z$aMIHjeh&j$0< zsYG5;{7ymy%8TP?kyQl<-jGB+(S0hGx9Jbe0@HYvXM`bn=jG!o^WJd*Q)dYxf3iORc`_C`M9ZFu+x*rSA%wVLni zU{xUzB*4~{?HyZK@PK>(=q?u-NJ7~YO~ORAvc*t;r*=O=f4~WX0K>s65CVGU?;jN# zo82L{lRGTNQ}g>7XymuB|73d}m=T8QnvgiD1Jt=!#>8j`lElv@ty-joiVL|fr@1T) zrh{z=-T{@$tPZCd?rgF|<5#T>(i#bc3h|F1qs_=`Es7ie9Dsv#-s4Z>SsTNkfmf$k z=@=PvU?Z=;iVh{gUtEr*K&jA!1}?=OO~0;F*Z>>5C|gRJ1%SK%M`7>p_2>vTSivOe z`7zp&>ioA?jg7f7lT{#C=VIMo1^Ocz3$*k-wN}WsM`CUW4zV~1U7LgQw`hY`P zyo+{rGvksS&0j`)Ig6^Jvr|dhu!Sjy=RO3__<4qA)(Iz|&BvE# z#0Nnh*Rxyp@!sSuUg|2c(d6`GYz+Ki`D0I!|3k-T_Q6C&IpmdCd;J==YrmelY_s_! z84QbFPwbFQ3OZRsfdYaoHzd7MYN<@jGokXi$s>&SEqMRlFv{byYV28_cQGu(b(&Zb zK|PpiNG@WY)E8A969$^Papl}BP%EeOo5QwzJSf1CNT*}VcUtg^9?$FWwvT7dcp*u66=f7C5O&0ce z$NgRreY0KJxS;b((|#_6&9hbO9R?3^$VX~B3Pg9_vds>xqgPFj`-%>H8v9uXz6=(x z{isVrXVRWCk&k|-a^21CTxX&m}-CCl#Z?*0?t!qyTIYBKYq}eocrdgeTddJ2C+kTmy>>_)dyiblL zHu)5)M67;v{ezsNSm4+b2V)d!kpT+ou%3)_cer`wL7X<@$N7LY$@EY3|Bv zvtP!rvtDs}t}_PXZg8p=EhWm$AG=fw(7PI;?c8Sg*7m9tY!aGKC|7W8cieUv(=R)c z$ea?u!lIHglC&+FF2E$ziu+K1cSs8JBRI0uWUm~gY6M$lMWsT-@Zz5cxGBT6Ue_0o zqZ&p&jrJWvm8r(lBz&iUy;|A)4Y!s8hclI)?xguZQ$r>3%;!w{lPY7XZJ(L5>}xDL z#8Wf!207OKUqFnw+qSLobE&1HRo!Ce+v!$)8Ry;{Umt6q{h?9A?Ro!LA%|aujxb7> zl&o8JbadVu)Vw2LUuTBaoIQ?`Q2fLUC*gH~v2{pX;;3->wMWweFYwi;tVzQBDm|S7 z^8F4b?!f_rxKQtrV@=1&1-3#pPcqd)nTraaEh~%E#KmUUhy8V3+1OWc-=fIed#zTw zR_tDchK`C`t17PhEFdy0|M!0jnMf<=eAJ}%0#EL6=*%0G;(R1i<1?~VGN@y(6Tl|A z@{?`NZAw=$WU(OabA9v>cd{kl0C>)O)%Yl##KINv4rM0soOzrsd}?A{PoWj9Wg-o~va}pI!B;=Oa%~xCtJ6!?rM3p@j5Y!I8&u|Eeo#s4F!eqr_p6+F!(q zKzH}nfI+Tl5B!A$LuWgSA^DIyo0Ii39m=$Qy)*lhFK6G?KhTVkVIfjQ8uxA*8J6zt z@CU_;5Nh_BS&Tyx1=QoU$qGF8v4p`%a&N=gt5JV_#yw)Cj{BVxT`z3dfu&J@U}_b- za{y&uegixLgWOMZY6*I3a;t`vR9Gpb1~1a=_I(xK-|p%&gCIs>J{(->|AcR})Cy?g zBl&x|I92}M!-BV?{}~C0N;QO6UH;&Y=T7}Pv|ccYEZjlP1i*@*_v6I*O#kzBT~P|a zj`AUIlj3nqTnsqUJAIkcJEbfI(wf96>4dhJ!ct~=@ z&`odCcudXigCr`)UV~-X=l}SP5BPl*xTOEX@6f=;y0tFs8lzNF3uXTI-x2vA9Rj@P ff5W2uARjQC7#Q)QNPi74K*>od-Os=K@Y#O=w02S1 From fac11d2d09b82701ff01c141e9a0fd4570298fca Mon Sep 17 00:00:00 2001 From: Jonni Date: Thu, 22 Feb 2024 18:34:28 +0100 Subject: [PATCH 22/25] Changed diagram labels for 06. --- docs/src/06_runtime_view.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/src/06_runtime_view.adoc b/docs/src/06_runtime_view.adoc index b3dfd0b1..5fe3e4e2 100644 --- a/docs/src/06_runtime_view.adoc +++ b/docs/src/06_runtime_view.adoc @@ -39,7 +39,7 @@ See https://docs.arc42.org/section-6/[Runtime View] in the arc42 documentation. === User plays a match. Only one question batch is needed. -[plantuml,"Sequence diagram",png] +[plantuml,"Question generation 1",png] ---- @startuml @@ -71,7 +71,7 @@ In circumstances in which few questions are needed for the game, it may be possi === User plays a match. An example of dynamic question generation. -[plantuml,"Sequence diagram",png] +[plantuml,"Question generation 2",png] ---- @startuml @@ -116,7 +116,7 @@ In cases where a lot of questions are needed, or wikidata querying has a great i === User consults its game statistics. -[plantuml,"Sequence diagram",png] +[plantuml,"Consult Statistics",png] ---- @startuml @@ -135,7 +135,7 @@ user -> "Player Statistics Service" : Requests user data === User consults questions used in games. -[plantuml,"Sequence diagram",png] +[plantuml,"Consult questions",png] ---- @startuml !theme vibrant From 465dc50770bf85c73e067aeffce51dfcfe1f7e05 Mon Sep 17 00:00:00 2001 From: Jonni Date: Thu, 22 Feb 2024 19:51:23 +0100 Subject: [PATCH 23/25] Atoning for my sins --- .env | 2 +- .github/workflows/release.yml | 12 ++++++------ README.md | 14 +++++++------- docker-compose.yml | 8 ++++---- docs/README.md | 4 ++-- gatewayservice/package.json | 6 +++--- sonar-project.properties | 6 +++--- users/authservice/package.json | 6 +++--- users/userservice/package.json | 6 +++--- 9 files changed, 32 insertions(+), 32 deletions(-) diff --git a/.env b/.env index 131b17e4..06a1dcd6 100644 --- a/.env +++ b/.env @@ -1 +1 @@ -teamname="wiq_0" \ No newline at end of file +teamname="wiq_es6c" \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2905c196..3b82f3cc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -53,7 +53,7 @@ jobs: env: API_URI: http://${{ secrets.DEPLOY_HOST }}:8000 with: - name: arquisoft/wiq_0/webapp + name: arquisoft/wiq_es6c/webapp username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -71,7 +71,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@v5 with: - name: arquisoft/wiq_0/authservice + name: arquisoft/wiq_es6c/authservice username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -88,7 +88,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@v5 with: - name: arquisoft/wiq_0/userservice + name: arquisoft/wiq_es6c/userservice username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -105,7 +105,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@v5 with: - name: arquisoft/wiq_0/gatewayservice + name: arquisoft/wiq_es6c/gatewayservice username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -122,7 +122,7 @@ jobs: user: ${{ secrets.DEPLOY_USER }} key: ${{ secrets.DEPLOY_KEY }} command: | - wget https://raw.githubusercontent.com/arquisoft/wiq_0/master/docker-compose.yml -O docker-compose.yml - wget https://raw.githubusercontent.com/arquisoft/wiq_0/master/.env -O .env + wget https://raw.githubusercontent.com/arquisoft/wiq_es6c/master/docker-compose.yml -O docker-compose.yml + wget https://raw.githubusercontent.com/arquisoft/wiq_es6c/master/.env -O .env docker compose --profile prod down docker compose --profile prod up -d diff --git a/README.md b/README.md index fb89a4a1..6cf6bc5d 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# wiq_0 +# wiq_es6c -[![Deploy on release](https://github.com/Arquisoft/wiq_0/actions/workflows/release.yml/badge.svg)](https://github.com/Arquisoft/wiq_0/actions/workflows/release.yml) -[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_0&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_0) -[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_0&metric=coverage)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_0) +[![Deploy on release](https://github.com/Arquisoft/wiq_es6c/actions/workflows/release.yml/badge.svg)](https://github.com/Arquisoft/wiq_es6c/actions/workflows/release.yml) +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_es6c&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_es6c) +[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_es6c&metric=coverage)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_es6c) This is a base repo for the [Software Architecture course](http://arquisoft.github.io/) in [2023/2024 edition](https://arquisoft.github.io/course2324.html). @@ -22,7 +22,7 @@ Both the user and auth service share a Mongo database that is accessed with mong The fastest way for launching this sample project is using docker. Just clone the project: ```sh -git clone https://github.com/Arquisoft/wiq_0.git +git clone https://github.com/Arquisoft/wiq_es6c.git ``` and launch it with docker compose: @@ -106,8 +106,8 @@ deploy: user: ${{ secrets.DEPLOY_USER }} key: ${{ secrets.DEPLOY_KEY }} command: | - wget https://raw.githubusercontent.com/arquisoft/wiq_0/master/docker-compose.yml -O docker-compose.yml - wget https://raw.githubusercontent.com/arquisoft/wiq_0/master/.env -O .env + wget https://raw.githubusercontent.com/arquisoft/wiq_es6c/master/docker-compose.yml -O docker-compose.yml + wget https://raw.githubusercontent.com/arquisoft/wiq_es6c/master/.env -O .env docker compose --profile prod down docker compose --profile prod up -d ``` diff --git a/docker-compose.yml b/docker-compose.yml index c105ed50..6d256c2a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,7 +13,7 @@ services: authservice: container_name: authservice-${teamname:-defaultASW} - image: ghcr.io/arquisoft/wiq_0/authservice:latest + image: ghcr.io/arquisoft/wiq_es6c/authservice:latest profiles: ["dev", "prod"] build: ./users/authservice depends_on: @@ -27,7 +27,7 @@ services: userservice: container_name: userservice-${teamname:-defaultASW} - image: ghcr.io/arquisoft/wiq_0/userservice:latest + image: ghcr.io/arquisoft/wiq_es6c/userservice:latest profiles: ["dev", "prod"] build: ./users/userservice depends_on: @@ -41,7 +41,7 @@ services: gatewayservice: container_name: gatewayservice-${teamname:-defaultASW} - image: ghcr.io/arquisoft/wiq_0/gatewayservice:latest + image: ghcr.io/arquisoft/wiq_es6c/gatewayservice:latest profiles: ["dev", "prod"] build: ./gatewayservice depends_on: @@ -58,7 +58,7 @@ services: webapp: container_name: webapp-${teamname:-defaultASW} - image: ghcr.io/arquisoft/wiq_0/webapp:latest + image: ghcr.io/arquisoft/wiq_es6c/webapp:latest profiles: ["dev", "prod"] build: ./webapp depends_on: diff --git a/docs/README.md b/docs/README.md index 61766e49..9a7bce52 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,6 @@ ## The documentation In this project, the documentation is compiled locally and deployed to GitHub pages. -The deployment url is: [https://arquisoft.github.io/wiq_0/](https://arquisoft.github.io/wiq_0/). +The deployment url is: [https://arquisoft.github.io/wiq_es6c/](https://arquisoft.github.io/wiq_es6c/). ### Documentation build For the documentation, we are going to use [AsciiDoc](https://asciidoc.org/) and [PlantUML](https://plantuml.com) and follow the [Arc42](https://github.com/arc42/arc42-template) template. If you want to be able to generate the doc locally you need to install Ruby, Java and some dependencies to translate the AsciiDoc code into html. If you are in Linux you can install Ruby and Java simply by executing: @@ -30,6 +30,6 @@ npm run build The documentation will be generated under the `docs/build` directory. ### Documentation deployment -If we want to deploy it to GitHub pages, so it is accessible via [https://arquisoft.github.io/wiq_0/](https://arquisoft.github.io/wiq_0/), we need to execute `npm run deploy`. +If we want to deploy it to GitHub pages, so it is accessible via [https://arquisoft.github.io/wiq_es6c/](https://arquisoft.github.io/wiq_es6c/), we need to execute `npm run deploy`. If you check the `package.json` in this directory you can see how deploying is as easy as executing `gh-pages -d build`, which can be directly executed using `npm run deploy` in the docs directory. The `gh-pages` package is in charge of pushing the documentation generated directory (basically some htmls) to a special github branch called gh-pages. Everything pushed to this branch is accessible on the repository page. Note that we only want to push there the documentation. Also is important that the documentation build is not pushed to the other branches of the project. \ No newline at end of file diff --git a/gatewayservice/package.json b/gatewayservice/package.json index fd16c42c..686c71df 100644 --- a/gatewayservice/package.json +++ b/gatewayservice/package.json @@ -9,14 +9,14 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/arquisoft/wiq_0.git" + "url": "git+https://github.com/arquisoft/wiq_es6c.git" }, "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/arquisoft/wiq_0/issues" + "url": "https://github.com/arquisoft/wiq_es6c/issues" }, - "homepage": "https://github.com/arquisoft/wiq_0#readme", + "homepage": "https://github.com/arquisoft/wiq_es6c#readme", "dependencies": { "axios": "^1.6.5", "cors": "^2.8.5", diff --git a/sonar-project.properties b/sonar-project.properties index 8ce93a6f..b83524d3 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,14 +1,14 @@ -sonar.projectKey=Arquisoft_wiq_es6b +sonar.projectKey=Arquisoft_wiq_es6c sonar.organization=arquisoft # This is the name and version displayed in the SonarCloud UI. -sonar.projectName=wiq_es6b +sonar.projectName=wiq_es6c sonar.projectVersion=1.0 # Encoding of the source code. Default is default system encoding sonar.host.url=https://sonarcloud.io sonar.language=js -sonar.projectName=wiq_es6b +sonar.projectName=wiq_es6c sonar.coverage.exclusions=**/*.test.js sonar.sources=webapp/src/components,users/authservice,users/userservice,gatewayservice diff --git a/users/authservice/package.json b/users/authservice/package.json index 6b5b6239..28020661 100644 --- a/users/authservice/package.json +++ b/users/authservice/package.json @@ -9,14 +9,14 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/arquisoft/wiq_0.git" + "url": "git+https://github.com/arquisoft/wiq_es6c.git" }, "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/arquisoft/wiq_0/issues" + "url": "https://github.com/arquisoft/wiq_es6c/issues" }, - "homepage": "https://github.com/arquisoft/wiq_0#readme", + "homepage": "https://github.com/arquisoft/wiq_es6c#readme", "dependencies": { "bcrypt": "^5.1.1", "body-parser": "^1.20.2", diff --git a/users/userservice/package.json b/users/userservice/package.json index 2462c8e0..37ddcdc4 100644 --- a/users/userservice/package.json +++ b/users/userservice/package.json @@ -9,14 +9,14 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/arquisoft/wiq_0.git" + "url": "git+https://github.com/arquisoft/wiq_es6c.git" }, "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/arquisoft/wiq_0/issues" + "url": "https://github.com/arquisoft/wiq_es6c/issues" }, - "homepage": "https://github.com/arquisoft/wiq_0#readme", + "homepage": "https://github.com/arquisoft/wiq_es6c#readme", "dependencies": { "bcrypt": "^5.1.1", "body-parser": "^1.20.2", From 54c0ed64b20da19d533a1203fbf57fbeb908039e Mon Sep 17 00:00:00 2001 From: Jonni Date: Thu, 22 Feb 2024 20:06:28 +0100 Subject: [PATCH 24/25] Minor changes correction --- .github/workflows/release.yml | 2 +- README.md | 8 +------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3b82f3cc..2c3c0e56 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -124,5 +124,5 @@ jobs: command: | wget https://raw.githubusercontent.com/arquisoft/wiq_es6c/master/docker-compose.yml -O docker-compose.yml wget https://raw.githubusercontent.com/arquisoft/wiq_es6c/master/.env -O .env - docker compose --profile prod down + docker compose down docker compose --profile prod up -d diff --git a/README.md b/README.md index 6cf6bc5d..c8e24010 100644 --- a/README.md +++ b/README.md @@ -31,12 +31,6 @@ and launch it with docker compose: docker compose --profile dev up --build ``` -and tear it down: - -```sh -docker compose --profile dev down -``` - ### Starting Component by component First, start the database. Either install and run Mongo or run it using docker: @@ -108,7 +102,7 @@ deploy: command: | wget https://raw.githubusercontent.com/arquisoft/wiq_es6c/master/docker-compose.yml -O docker-compose.yml wget https://raw.githubusercontent.com/arquisoft/wiq_es6c/master/.env -O .env - docker compose --profile prod down + docker compose prod down docker compose --profile prod up -d ``` From eddd2c7aa43220f875ef9acb41ea5c4e755940d3 Mon Sep 17 00:00:00 2001 From: Jonni Date: Thu, 22 Feb 2024 20:07:57 +0100 Subject: [PATCH 25/25] Minor change on readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c8e24010..2316d34b 100644 --- a/README.md +++ b/README.md @@ -102,7 +102,7 @@ deploy: command: | wget https://raw.githubusercontent.com/arquisoft/wiq_es6c/master/docker-compose.yml -O docker-compose.yml wget https://raw.githubusercontent.com/arquisoft/wiq_es6c/master/.env -O .env - docker compose prod down + docker compose down docker compose --profile prod up -d ```