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/71] 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/71] 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/71] 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/71] 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/71] 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/71] 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 b40003688ad61fb3c73f01f060fdc7e980290233 Mon Sep 17 00:00:00 2001 From: Abel Date: Sat, 10 Feb 2024 01:37:39 +0100 Subject: [PATCH 07/71] Introduction and Goals first documentation --- docs/src/01_introduction_and_goals.adoc | 30 +++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/docs/src/01_introduction_and_goals.adoc b/docs/src/01_introduction_and_goals.adoc index ddb2ae3d..87c25b63 100644 --- a/docs/src/01_introduction_and_goals.adoc +++ b/docs/src/01_introduction_and_goals.adoc @@ -41,6 +41,17 @@ See https://docs.arc42.org/section-1/[Introduction and Goals] in the arc42 docum **** +The WIQ web application allows users to play a game similar to the one of Saber y Ganar quiz show. This game consists on answering a number of questions with different types and subjects obtaining a prize for each question well answered. Game´s questions are automatically generated from data available in Wikidata (https://www.wikidata.org/). + +* The system will have at least a web front-end which will be available and accessible through the web. +* Users will be able to register to the system and obtain the historical data from their participation: number of games, questions passed and failed, times, etc .. +* Questions will be automatically generated from data available in Wikidata. +* Questions have to be answered before some specific time. +* Each question will have one right answer and several incorrect ones or distractors. Both the right answer and the distractors should be automatically generated. +* The system will give access to the information about the users through an API. +* The system will give access to information about the generated questions through an API. + + === Quality Goals [role="arc42help"] @@ -62,6 +73,17 @@ If you as an architect do not know how the quality of your work will be judged.. .Form A table with quality goals and concrete scenarios, ordered by priorities **** +.Quality goals ordered by priority (from most to least important) +[options="header",cols="1,3"] +|=== +|Quality Goal|Description +| _Satisfaction_ | _Users will not get repeated questions in at least a hundred questions._ +| _Modularity_ | _The application will be divided in modules so that a change on one component has minimal impact on other components._ +| _Testability_ | _The application should be able to go through different test and complete them successfully._ +| _Learnability_ | _Any user must be able to use the app with ease. The interface must remind the user to the one in Saber y Ganar quiz show._ +| _Time behaviour_ | _Users will not have to wait more than 500ms to get a new question._ +|=== + === Stakeholders @@ -88,6 +110,10 @@ Table with role names, person names, and their expectations with respect to the [options="header",cols="1,2,2"] |=== |Role/Name|Contact|Expectations -| __ | __ | __ -| __ | __ | __ +| _Professors_ | _ASW module professors_ | _Get a great project which can be evaluated and shown in their github._ +| _Developers_ | _wiq_es6c team_ | _Carrying out a full real project using all the knowledge obtained in the degree._ +| _Responsible company_ | _HappySw_ | _Development of an experimental version of the Saber y Ganar quiz show._ +| _Client_ | _RTVE_ | _Getting a Web App to promote its famous Saber y Ganar quiz show by letting their viewers enjoy a similar experience._ +| _Main beneficiaries_ | _Public users_ | _Having a great time playing an interesting and easy to use quiz game._ +| _Side beneficiaries_ | _Wikidata_ | _Obtain free promotion of their application and its ease to use in multiple projects._ |=== From b21a440736df02fd34505df8c7b8278fda6f1bc2 Mon Sep 17 00:00:00 2001 From: Marcos Barril Villaverde Date: Sat, 10 Feb 2024 19:16:18 +0100 Subject: [PATCH 08/71] Added to the documentacion the first version of cahpter 2 and 4 (Architecture Constraints and Solution Stategy) --- .vscode/settings.json | 3 ++ docs/src/02_architecture_constraints.adoc | 54 ++++++++++++++++------- docs/src/04_solution_strategy.adoc | 48 ++++++++++++++++++++ 3 files changed, 88 insertions(+), 17 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..ae1c8ac3 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "asciidoc.antora.enableAntoraSupport": true +} \ No newline at end of file diff --git a/docs/src/02_architecture_constraints.adoc b/docs/src/02_architecture_constraints.adoc index 226e501f..3a103634 100644 --- a/docs/src/02_architecture_constraints.adoc +++ b/docs/src/02_architecture_constraints.adoc @@ -1,27 +1,47 @@ -ifndef::imagesdir[:imagesdir: ../images] - [[section-architecture-constraints]] == Architecture Constraints +=== Technical Constraints + +[cols="1,2", options="header"] +|========================================================================================================================================================================================================= +| Constraint | Explanation +| Docker | The application will operate within a Docker environment. +| GitHub | We'll leverage GitHub as our remote repository for project development, task delegation among team members, and version control. GitHub streamlines communication and project organization. + +|========================================================================================================================================================================================================= + +=== Organizational Constraints + +[cols="1,2", options="header"] +|========================================================================================================================================================================================================================================================== +| Constraint | Explanation +| Size of the team | The team comprises six individuals. +| Meetings | Weekly meetings are scheduled to discuss task organization during each laboratory class session. In the event of requiring an extraordinary meeting, various tools such as WhatsApp or Discord are employed to coordinate effectively. +| Testing | Various scenarios will be explored to ensure the app's functionality is tested. We'll employ a range of techniques to maximize test coverage, striving for comprehensive assessment. +| Experience | Team members possess limited experience with the diverse technologies being employed. +|========================================================================================================================================================================================================================================================== + + +=== Conventions -[role="arc42help"] -**** -.Contents -Any requirement that constraints software architects in their freedom of design and implementation decisions or decision about the development process. These constraints sometimes go beyond individual systems and are valid for whole organizations and companies. +[cols="1,2", options="header"] +|=== +| Constraint | Explanation -.Motivation -Architects should know exactly where they are free in their design decisions and where they must adhere to constraints. -Constraints must always be dealt with; they may be negotiable, though. -.Form -Simple tables of constraints with explanations. -If needed you can subdivide them into -technical constraints, organizational and political constraints and -conventions (e.g. programming or versioning guidelines, documentation or naming conventions) +| Documentation +| The documentation must adhere to the Arc42 method, ensuring it is clear, simple, and effective. +| Accessibility +| The application should be user-friendly, allowing all individuals to navigate effortlessly, irrespective of any disabilities, ensuring inclusivity for all users. -.Further Information +| Programming Language conventions +| We ought to follow the conventions specific to the programming languages we're employing. -See https://docs.arc42.org/section-2/[Architecture Constraints] in the arc42 documentation. +| Clean Code +| The code in the application must be meticulously crafted and neat, with a focus on readability and maintainability. -**** +| Mircroservices +| The application will be divided into microservices to facilitate its development. +|=== diff --git a/docs/src/04_solution_strategy.adoc b/docs/src/04_solution_strategy.adoc index 7bf03f7a..2378162d 100644 --- a/docs/src/04_solution_strategy.adoc +++ b/docs/src/04_solution_strategy.adoc @@ -3,6 +3,54 @@ ifndef::imagesdir[:imagesdir: ../images] [[section-solution-strategy]] == Solution Strategy +=== Technology Decisions + +In order to develop the application and adhere to the constraints, we selected the following technologies: + +- ReactJS: JavaScript library that streamlines the development of graphical interfaces for web applications. +- TypeScript: Extension of JavaScript, bolstering it with type support for improved development. +- GitHub: Platform offering remote repository services for project development, task management, and version control. +- MongoDB: A non-linear database selected to oversee storage of diverse application contents, with each microservice possessing its dedicated database. +- NodeJS: Facilitates efficient management of asynchronous events, notably beneficial for scalable network applications and database administration. +- Docker: Employed for seamless deployment of the application environment. + +=== Top-level Decomposition + +==== Diagramming tools + +We will use PlantUML and UMLet for creating the documentation's diagrams. + +=== Approaches to Achieve Top Quality Goals + +[cols="1,2,3"] +|=== +| Quality Goal | Scenario | Solution Approach + +| Privacy +| Users seek reassurance in the safety and privacy of their data within our app. +| Ensuring user data security and privacy within the application. + +| Usability +| Seamless execution of all application functions is crucial for user satisfaction. +| Optimizing usability through the utilization of React. + +| Maintainability +| Application architecture must facilitate seamless addition or modification of functionalities with minimal code changes. +| Implementing design patterns and adhering to code conventions to ensure clean and maintainable code. Additionally, prioritizing testing during development for long-term maintainability. + +| Scalability +| The application's design must accommodate changes effortlessly throughout its lifecycle. +| Employing a microservices approach to minimize code repetition and enhance understanding of application distribution, ensuring future scalability. + +|=== + +=== Organizational Decisions + +We've established the following organizational guidelines: + +- *Language*: Adhering to international standards, the project, encompassing code and documentation, will be developed in English as the primary language. +- *Issues:* All deliberations will be documented as issues on GitHub. +- *GitHub Projects:* Employing this tool, we'll plan the application's development process, utilizing GitHub's integrated features for efficient project management in accordance with AGILE methodology. [role="arc42help"] **** From 1f0cbfb2d0812b70fc5ca92df1a863f60c59586b Mon Sep 17 00:00:00 2001 From: Augusto Date: Mon, 12 Feb 2024 10:20:05 +0100 Subject: [PATCH 09/71] 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 57f16f4c9b3db2dfcea5289c4511d8054224af98 Mon Sep 17 00:00:00 2001 From: Liliana Date: Mon, 12 Feb 2024 13:41:06 +0100 Subject: [PATCH 10/71] first part documentation --- docs/src/10_quality_requirements.adoc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/src/10_quality_requirements.adoc b/docs/src/10_quality_requirements.adoc index 68475e80..a0d7d3e8 100644 --- a/docs/src/10_quality_requirements.adoc +++ b/docs/src/10_quality_requirements.adoc @@ -48,6 +48,18 @@ In any case the tree should include links to the scenarios of the following sect === Quality Scenarios +Usage scenarios, also known as use cases, are detailed descriptions of situations in which a user interacts with +a system and describe the expected outcomes along with the conditions of the environment in which the interaction +occurs. + +[options="header",cols="1,3,1"] +|=== +|Quality goal +|Quality scenario +|Priority + + + [role="arc42help"] **** .Contents From 249417dddbb454b5ee001c9b1b4324bd890ad619 Mon Sep 17 00:00:00 2001 From: Liliana Date: Mon, 12 Feb 2024 13:58:15 +0100 Subject: [PATCH 11/71] doc part 1 --- docs/src/10_quality_requirements.adoc | 85 +++++++++------------------ 1 file changed, 29 insertions(+), 56 deletions(-) diff --git a/docs/src/10_quality_requirements.adoc b/docs/src/10_quality_requirements.adoc index a0d7d3e8..18d2c088 100644 --- a/docs/src/10_quality_requirements.adoc +++ b/docs/src/10_quality_requirements.adoc @@ -4,82 +4,55 @@ ifndef::imagesdir[:imagesdir: ../images] == Quality Requirements -[role="arc42help"] **** -.Content -This section contains all quality requirements as quality tree with scenarios. The most important ones have already been described in section 1.2. (quality goals) - -Here you can also capture quality requirements with lesser priority, -which will not create high risks when they are not fully achieved. - -.Motivation -Since quality requirements will have a lot of influence on architectural -decisions you should know for every stakeholder what is really important to them, -concrete and measurable. - - -.Further Information - -See https://docs.arc42.org/section-10/[Quality Requirements] in the arc42 documentation. +To describe the quality requirements that the game will have, we will use quality scenarios. Quality scenarios describe +the action to be performed by the user or the system (stimulus) in order to generate a response to the interaction. **** === Quality Tree -[role="arc42help"] **** -.Content -The quality tree (as defined in ATAM – Architecture Tradeoff Analysis Method) with quality/evaluation scenarios as leafs. -.Motivation -The tree structure with priorities provides an overview for a sometimes large number of quality requirements. - -.Form -The quality tree is a high-level overview of the quality goals and requirements: - -* tree-like refinement of the term "quality". Use "quality" or "usefulness" as a root -* a mind map with quality categories as main branches - -In any case the tree should include links to the scenarios of the following section. **** === Quality Scenarios -Usage scenarios, also known as use cases, are detailed descriptions of situations in which a user interacts with +Quality scenarios, also known as use cases, are detailed descriptions of situations in which a user interacts with a system and describe the expected outcomes along with the conditions of the environment in which the interaction occurs. [options="header",cols="1,3,1"] |=== |Quality goal -|Quality scenario +|Motivation +|Usage Scenarios |Priority - - -[role="arc42help"] -**** -.Contents -Concretization of (sometimes vague or implicit) quality requirements using (quality) scenarios. - -These scenarios describe what should happen when a stimulus arrives at the system. - -For architects, two kinds of scenarios are important: - -* Usage scenarios (also called application scenarios or use case scenarios) describe the system’s runtime reaction to a certain stimulus. This also includes scenarios that describe the system’s efficiency or performance. Example: The system reacts to a user’s request within one second. -* Change scenarios describe a modification of the system or of its immediate environment. Example: Additional functionality is implemented or requirements for a quality attribute change. - -.Motivation -Scenarios make quality requirements concrete and allow to -more easily measure or decide whether they are fulfilled. - -Especially when you want to assess your architecture using methods like -ATAM you need to describe your quality goals (from section 1.2) -more precisely down to a level of scenarios that can be discussed and evaluated. - -.Form -Tabular or free form text. -**** +|Privacy +|In order to be able to play, the user must log in to the application. +|Only the user who created/owns the account will have access to it (unless he/she gives someone else his/her credentials). +|High + +|Usability +|The ease of interaction with the user should be enhanced through intuitive and simple interfaces to enhance the user experience. +|Users will be able to understand how the game works thanks to the clarity of its rules and ease of navigation. +|High + +|Diversity +|The questions provided by the application will be of various topics. +|The user must correctly answer questions on different topics. This will improve the user experience and maintain the interest of the participants. +|High + +|Integrity +|The game must be played without errors. +|The answer determined as correct for each question by the system shall be the one that is actually correct. +|High + +|Interactivity +|The user must answer a series of questions in which the user must select the correct answer in each case. +|For each of the questions, the user must select the correct answer from those provided by the system. +|High From c8debbe37c119b0f8dd54eb130b2a6feab3bbd72 Mon Sep 17 00:00:00 2001 From: Liliana Date: Mon, 12 Feb 2024 13:59:25 +0100 Subject: [PATCH 12/71] doc 1 --- docs/src/10_quality_requirements.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/10_quality_requirements.adoc b/docs/src/10_quality_requirements.adoc index 18d2c088..655eb610 100644 --- a/docs/src/10_quality_requirements.adoc +++ b/docs/src/10_quality_requirements.adoc @@ -25,7 +25,7 @@ Quality scenarios, also known as use cases, are detailed descriptions of situati a system and describe the expected outcomes along with the conditions of the environment in which the interaction occurs. -[options="header",cols="1,3,1"] +[options="header",cols="1,3,3,1"] |=== |Quality goal |Motivation From fa7559865bee53f111a6ef7a9786647bd2742f79 Mon Sep 17 00:00:00 2001 From: Liliana Date: Mon, 12 Feb 2024 14:11:00 +0100 Subject: [PATCH 13/71] documentation 09 --- docs/src/09_architecture_decisions.adoc | 35 ++++++++++--------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/docs/src/09_architecture_decisions.adoc b/docs/src/09_architecture_decisions.adoc index 51e9aad9..ebb59981 100644 --- a/docs/src/09_architecture_decisions.adoc +++ b/docs/src/09_architecture_decisions.adoc @@ -6,30 +6,23 @@ ifndef::imagesdir[:imagesdir: ../images] [role="arc42help"] **** -.Contents -Important, expensive, large scale or risky architecture decisions including rationales. -With "decisions" we mean selecting one alternative based on given criteria. -Please use your judgement to decide whether an architectural decision should be documented -here in this central section or whether you better document it locally -(e.g. within the white box template of one building block). +[options="header",cols="1,3,3"] +|=== +|Architecture decisions +|Advantages +|Disagvantanges -Avoid redundancy. -Refer to section 4, where you already captured the most important decisions of your architecture. +|React +|It is the most used javascript framework and there is a lot of documentation about it. +|All of us in the team will have to learn how to use it because we have never worked with it. -.Motivation -Stakeholders of your system should be able to comprehend and retrace your decisions. +|JavaScript +|It is a language we have all used. +|It is a complex language that can cause us problems while other simpler languages could make our work easier. -.Form -Various options: - -* ADR (https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions[Documenting Architecture Decisions]) for every important decision -* List or table, ordered by importance and consequences or: -* more detailed in form of separate sections per decision - -.Further Information - -See https://docs.arc42.org/section-9/[Architecture Decisions] in the arc42 documentation. -There you will find links and examples about ADR. +|MongoDB +|Being a non-relational database, it is easier to use. In addition, it is used by large telecommunications companies. +|Non-relational databases are the ones with which we have the least experience. **** From dfdfc8f316b94a8802f472258819a6fab731184e Mon Sep 17 00:00:00 2001 From: Liliana Date: Mon, 12 Feb 2024 14:24:43 +0100 Subject: [PATCH 14/71] quality tree --- docs/images/QualityTree.png | Bin 0 -> 80328 bytes docs/src/10_quality_requirements.adoc | 8 ++------ 2 files changed, 2 insertions(+), 6 deletions(-) create mode 100644 docs/images/QualityTree.png diff --git a/docs/images/QualityTree.png b/docs/images/QualityTree.png new file mode 100644 index 0000000000000000000000000000000000000000..6266b73f273723ffec6e08b42122a8b78058c596 GIT binary patch literal 80328 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�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 z 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

aT*3hoiKN3XqM|CD@whj;E*t-q5JKy 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 literal 0 HcmV?d00001 diff --git a/docs/src/10_quality_requirements.adoc b/docs/src/10_quality_requirements.adoc index 655eb610..8007b488 100644 --- a/docs/src/10_quality_requirements.adoc +++ b/docs/src/10_quality_requirements.adoc @@ -12,12 +12,8 @@ the action to be performed by the user or the system (stimulus) in order to gene **** === Quality Tree - -**** - - - -**** +:imagesdir: images/ +image::QualityTree.PNG[] === Quality Scenarios From 99993f92f35436188c4f1a61a3ac89e486a29b67 Mon Sep 17 00:00:00 2001 From: Liliana Date: Mon, 12 Feb 2024 14:25:26 +0100 Subject: [PATCH 15/71] quality tree --- docs/src/10_quality_requirements.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/10_quality_requirements.adoc b/docs/src/10_quality_requirements.adoc index 8007b488..c43b504b 100644 --- a/docs/src/10_quality_requirements.adoc +++ b/docs/src/10_quality_requirements.adoc @@ -13,7 +13,7 @@ the action to be performed by the user or the system (stimulus) in order to gene === Quality Tree :imagesdir: images/ -image::QualityTree.PNG[] +image::QualityTree.png[] === Quality Scenarios From b9ac8942864b0e46d1bd00555afd44dd44f4b53b Mon Sep 17 00:00:00 2001 From: Liliana Date: Mon, 12 Feb 2024 14:26:16 +0100 Subject: [PATCH 16/71] tree --- docs/src/10_quality_requirements.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/10_quality_requirements.adoc b/docs/src/10_quality_requirements.adoc index c43b504b..39517a30 100644 --- a/docs/src/10_quality_requirements.adoc +++ b/docs/src/10_quality_requirements.adoc @@ -13,7 +13,7 @@ the action to be performed by the user or the system (stimulus) in order to gene === Quality Tree :imagesdir: images/ -image::QualityTree.png[] +image::QualityTree.png === Quality Scenarios From 0aa46a5edc8b7d820557419afca40defe9fe5d78 Mon Sep 17 00:00:00 2001 From: Liliana Date: Mon, 12 Feb 2024 14:28:16 +0100 Subject: [PATCH 17/71] tree de una vez --- docs/src/10_quality_requirements.adoc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/src/10_quality_requirements.adoc b/docs/src/10_quality_requirements.adoc index 39517a30..f06c2061 100644 --- a/docs/src/10_quality_requirements.adoc +++ b/docs/src/10_quality_requirements.adoc @@ -12,8 +12,7 @@ the action to be performed by the user or the system (stimulus) in order to gene **** === Quality Tree -:imagesdir: images/ -image::QualityTree.png +image::QualityTree.png[] === Quality Scenarios From 52a20673e8891c6f9e876177f22fb788b7109ec9 Mon Sep 17 00:00:00 2001 From: Liliana Date: Tue, 13 Feb 2024 19:30:53 +0100 Subject: [PATCH 18/71] modified glossary and quality requirements --- docs/src/10_quality_requirements.adoc | 1 + docs/src/12_glossary.adoc | 36 +++++---------------------- 2 files changed, 7 insertions(+), 30 deletions(-) diff --git a/docs/src/10_quality_requirements.adoc b/docs/src/10_quality_requirements.adoc index f06c2061..9a45578d 100644 --- a/docs/src/10_quality_requirements.adoc +++ b/docs/src/10_quality_requirements.adoc @@ -51,3 +51,4 @@ occurs. |The user must answer a series of questions in which the user must select the correct answer in each case. |For each of the questions, the user must select the correct answer from those provided by the system. |High +|=== \ No newline at end of file diff --git a/docs/src/12_glossary.adoc b/docs/src/12_glossary.adoc index 192b2353..1ace272e 100644 --- a/docs/src/12_glossary.adoc +++ b/docs/src/12_glossary.adoc @@ -4,39 +4,15 @@ ifndef::imagesdir[:imagesdir: ../images] == Glossary [role="arc42help"] -**** -.Contents -The most important domain and technical terms that your stakeholders use when discussing the system. - -You can also see the glossary as source for translations if you work in multi-language teams. - -.Motivation -You should clearly define your terms, so that all stakeholders - -* have an identical understanding of these terms -* do not use synonyms and homonyms - - -.Form - -A table with columns and . - -Potentially more columns in case you need translations. - - -.Further Information - -See https://docs.arc42.org/section-12/[Glossary] in the arc42 documentation. - **** [cols="e,2e" options="header"] |=== -|Term |Definition +|Term |Definition -| -| - -| -| +|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. |=== + +**** From 8236c20a15c757edb0591bbdc2039ee557c1ee0f Mon Sep 17 00:00:00 2001 From: Liliana Date: Tue, 13 Feb 2024 19:40:04 +0100 Subject: [PATCH 19/71] added technical risks --- docs/src/11_technical_risks.adoc | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/docs/src/11_technical_risks.adoc b/docs/src/11_technical_risks.adoc index dc5575fc..a75e08fd 100644 --- a/docs/src/11_technical_risks.adoc +++ b/docs/src/11_technical_risks.adoc @@ -6,20 +6,13 @@ ifndef::imagesdir[:imagesdir: ../images] [role="arc42help"] **** -.Contents -A list of identified technical risks or technical debts, ordered by priority -.Motivation -“Risk management is project management for grown-ups” (Tim Lister, Atlantic Systems Guild.) +[options="header"] +|=== +|Risk |Consequence -This should be your motto for systematic detection and evaluation of risks and technical debts in the architecture, which will be needed by management stakeholders (e.g. project managers, product owners) as part of the overall risk analysis and measurement planning. - -.Form -List of risks and/or technical debts, probably including suggested measures to minimize, mitigate or avoid risks or reduce technical debts. - - -.Further Information - -See https://docs.arc42.org/section-11/[Risks and Technical Debt] in the arc42 documentation. +|Knowledge of REACT |It is a framework that no team member has used before. Therefore, we have all had to learn how to use it. +|Internal group conflicts |Lack of free time for team members makes group work difficult. +|=== **** From 06ff4a4c25867c07dff27fdc91a1b90c726042b8 Mon Sep 17 00:00:00 2001 From: uo283642 <98973969+uo283642@users.noreply.github.com> Date: Wed, 14 Feb 2024 15:01:48 +0100 Subject: [PATCH 20/71] Architecture constraints doc. almost finished. Added most of the constraints (Technical/Organizational/Conventions). Some changes/additions may be required. --- docs/src/02_architecture_constraints.adoc | 47 +++++++++++++++++------ 1 file changed, 35 insertions(+), 12 deletions(-) diff --git a/docs/src/02_architecture_constraints.adoc b/docs/src/02_architecture_constraints.adoc index 226e501f..6185d54c 100644 --- a/docs/src/02_architecture_constraints.adoc +++ b/docs/src/02_architecture_constraints.adoc @@ -6,22 +6,45 @@ ifndef::imagesdir[:imagesdir: ../images] [role="arc42help"] **** -.Contents -Any requirement that constraints software architects in their freedom of design and implementation decisions or decision about the development process. These constraints sometimes go beyond individual systems and are valid for whole organizations and companies. -.Motivation -Architects should know exactly where they are free in their design decisions and where they must adhere to constraints. -Constraints must always be dealt with; they may be negotiable, though. +.Technical constraints -.Form -Simple tables of constraints with explanations. -If needed you can subdivide them into -technical constraints, organizational and political constraints and -conventions (e.g. programming or versioning guidelines, documentation or naming conventions) +[cols="e,2e" options="header"] +|=== +|Constraint |Explanation +|OS/Browser Independence |The project must be available to the maximum amount of users feasible. That includes support for mainstream OSs (Windows, Linux, MacOS) and browsers. (Chrome, Safari, Firefox, Edge) +|Usage of REACT |The REACT JS Framework will be used to develop the front-end of the project. +|Version Control |In order of the project to be graded adequately, it must use GitHub as its version control software. The contributions of each team member and agreements made must be easily traceable. +|Continuous integration and delivery |The development must progress through frequent integration of small changes into the main branch. New features must be automatically deployed with ease. (In our case, using Docker) -.Further Information +|=== -See https://docs.arc42.org/section-2/[Architecture Constraints] in the arc42 documentation. +.Organizational constraints + +[cols="e,2e" options="header"] +|=== +|Constraint |Explanation + +|Time |The team has to complete the project during the semester. +|Team size |The development teams must be composed of 5-7 members. In our case, the final team is composed of 6 members. +|Budget |No budget is provided for the development, so any costs that may arise have to be covered by the development team. +|Deliverables |Along the development process, the team must prepare deliverables set for certain dates, consisting of documentation and/or application prototypes. +|Team meetings |In order to plan the development of the project, as well as to assign tasks and make design decisions, the team will participate in several meetings. These meetings can be done in and out of the classroom, as needed. A record must be created for every meeting, summarizing the progress made. +|Project testing |The development team must test acceptable coverage of the project via different methods (unit testing, integration testing, acceptance testing... etc.) +|Knowledge |There are many aspects of the development of this project that are foreign to some of us (usage of REACT, deployments, microsystems architecture... etc.) so some research is required to keep up. +|=== + +.Conventions + +[cols="e,2e" options="header"] +|=== +|Constraint |Explanation + +|Use of English |The totality of the project must be written in English, as to facilitate its understanding internationally. +|Documentation format |We have decided to use the ARC42 template structure. +|Clean code |In order to facilitate the understanding and maintenance of the project, all code written must be organized, descriptive and easy to read. +|Ease of use |The application needs to have an intuitive design, as well as the capability to help and guide users towards their goal. User experience has to be as seamless as it can be made. +|=== **** From 13845e2d8043592aad5aa51f7be531c51d34d87a Mon Sep 17 00:00:00 2001 From: uo283642 <98973969+uo283642@users.noreply.github.com> Date: Wed, 14 Feb 2024 16:12:29 +0100 Subject: [PATCH 21/71] Slight formatting changes to 02. Titles didn't pop as much as they should. Bold font for the constraints. Cursive for the appropriate words (Acronyms, software terminology... etc.) --- docs/src/02_architecture_constraints.adoc | 48 ++++++++++------------- 1 file changed, 21 insertions(+), 27 deletions(-) diff --git a/docs/src/02_architecture_constraints.adoc b/docs/src/02_architecture_constraints.adoc index 6185d54c..dadc9717 100644 --- a/docs/src/02_architecture_constraints.adoc +++ b/docs/src/02_architecture_constraints.adoc @@ -1,50 +1,44 @@ -ifndef::imagesdir[:imagesdir: ../images] - [[section-architecture-constraints]] == Architecture Constraints +=== Technical constraints -[role="arc42help"] -**** - -.Technical constraints - -[cols="e,2e" options="header"] +[cols="2,4" options="header"] |=== |Constraint |Explanation -|OS/Browser Independence |The project must be available to the maximum amount of users feasible. That includes support for mainstream OSs (Windows, Linux, MacOS) and browsers. (Chrome, Safari, Firefox, Edge) -|Usage of REACT |The REACT JS Framework will be used to develop the front-end of the project. -|Version Control |In order of the project to be graded adequately, it must use GitHub as its version control software. The contributions of each team member and agreements made must be easily traceable. -|Continuous integration and delivery |The development must progress through frequent integration of small changes into the main branch. New features must be automatically deployed with ease. (In our case, using Docker) +|*OS/Browser Independence* |The project must be available to the maximum amount of users feasible. That includes support for mainstream OSs (_Windows_, _Linux_, _MacOS_) and browsers. (_Chrome_, _Safari_, _Firefox_, _Edge_) +|*Usage of _REACT_* |The _REACT JS_ framework will be used to develop the front-end of the project. +|*Version Control* |In order of the project to be graded adequately, it must use _GitHub_ as its version control software. The contributions of each team member and agreements reached must be easily traceable. +|*Continuous integration and delivery* |The development must progress through frequent integration of small changes into the main branch. New features must be automatically deployed with ease. (In our case, using _Docker_) |=== -.Organizational constraints +=== Organizational constraints -[cols="e,2e" options="header"] +[cols="2,7" options="header"] |=== |Constraint |Explanation -|Time |The team has to complete the project during the semester. -|Team size |The development teams must be composed of 5-7 members. In our case, the final team is composed of 6 members. -|Budget |No budget is provided for the development, so any costs that may arise have to be covered by the development team. -|Deliverables |Along the development process, the team must prepare deliverables set for certain dates, consisting of documentation and/or application prototypes. -|Team meetings |In order to plan the development of the project, as well as to assign tasks and make design decisions, the team will participate in several meetings. These meetings can be done in and out of the classroom, as needed. A record must be created for every meeting, summarizing the progress made. -|Project testing |The development team must test acceptable coverage of the project via different methods (unit testing, integration testing, acceptance testing... etc.) -|Knowledge |There are many aspects of the development of this project that are foreign to some of us (usage of REACT, deployments, microsystems architecture... etc.) so some research is required to keep up. +|*Time* |The team has to complete the project during the semester. +|*Team size* |The development teams must be composed of 5-7 members. In our case, the final team is composed of 6 members. +|*Budget* |No budget is provided for the development, so any costs that may arise have to be covered by the development team. +|*Deliverables* |Along the development process, the team must prepare deliverables set for certain dates, consisting of documentation and/or application prototypes. +|*Team meetings* |In order to plan the development of the project, as well as to assign tasks and make design decisions, the team will participate in several meetings. These meetings can be done in and out of the classroom, as needed. A record must be created for every meeting, summarizing the progress made. +|*Project testing* |The development team must test acceptable coverage of the project using different methods (_unit testing_, _integration testing_, _acceptance testing_... etc.) +|*Knowledge* |There are many aspects of the development of this project that are foreign to some of us (usage of _REACT_, deployments, microsystems architecture... etc.) so some research is required to keep up. |=== -.Conventions +=== Conventions -[cols="e,2e" options="header"] +[cols="2,4" options="header"] |=== |Constraint |Explanation -|Use of English |The totality of the project must be written in English, as to facilitate its understanding internationally. -|Documentation format |We have decided to use the ARC42 template structure. -|Clean code |In order to facilitate the understanding and maintenance of the project, all code written must be organized, descriptive and easy to read. -|Ease of use |The application needs to have an intuitive design, as well as the capability to help and guide users towards their goal. User experience has to be as seamless as it can be made. +|*Use of English* |The totality of the project must be written in English, as to facilitate its understanding internationally. +|*Documentation format* |We have decided to use the _ARC42_ template structure. +|*Clean code* |In order to ease the understanding and maintenance of the project, all code written must be organized, descriptive and easy to read. +|*Ease of use* |The application needs to have an intuitive design, as well as the capability to help and guide users towards their goal. User experience has to be as seamless as it can be made. |=== **** From d931dcf67e05c1d851d0991fb931cc351ca06c1f Mon Sep 17 00:00:00 2001 From: Abel Date: Thu, 15 Feb 2024 16:37:03 +0100 Subject: [PATCH 22/71] Added an example of sequence diagram for the wikidata questions requests --- docs/src/06_runtime_view.adoc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/src/06_runtime_view.adoc b/docs/src/06_runtime_view.adoc index e10f375b..e63a553a 100644 --- a/docs/src/06_runtime_view.adoc +++ b/docs/src/06_runtime_view.adoc @@ -63,3 +63,16 @@ Alice <-- Bob: another authentication Response === ... === + +=== Wikidata questions requests + +[plantuml,"Sequence diagram WikidataApi",png] +---- +actor User +entity App +entity WikidataApi +User -> App: Starts a game +App -> WikidataApi: Request data +App <-- WikidataApi: Returns data +User <-- App: Displays data in question-answer format +---- \ No newline at end of file From b95d986194d2ada2a22792fbe54a8510c0d4e06d Mon Sep 17 00:00:00 2001 From: uo283642 <98973969+uo283642@users.noreply.github.com> Date: Fri, 16 Feb 2024 00:33:21 +0100 Subject: [PATCH 23/71] Added deployment diagram for 03-Technical context --- docs/images/03-deployment-diagram-EN.png | Bin 0 -> 75191 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/03-deployment-diagram-EN.png diff --git a/docs/images/03-deployment-diagram-EN.png b/docs/images/03-deployment-diagram-EN.png new file mode 100644 index 0000000000000000000000000000000000000000..546d99001508e6bb9140566d9462fa6e3104c574 GIT binary patch literal 75191 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 KsHLc!^86qDAzAeR literal 0 HcmV?d00001 From befc964d82329fcddae95ba958a88f47b018f9b4 Mon Sep 17 00:00:00 2001 From: uo283642 <98973969+uo283642@users.noreply.github.com> Date: Fri, 16 Feb 2024 01:15:37 +0100 Subject: [PATCH 24/71] Completed 03-System Scope and Context Added deployment diagram for the technical context. Added business context. --- docs/src/03_system_scope_and_context.adoc | 68 +++-------------------- 1 file changed, 9 insertions(+), 59 deletions(-) diff --git a/docs/src/03_system_scope_and_context.adoc b/docs/src/03_system_scope_and_context.adoc index c528e907..5973f1b9 100644 --- a/docs/src/03_system_scope_and_context.adoc +++ b/docs/src/03_system_scope_and_context.adoc @@ -3,73 +3,23 @@ ifndef::imagesdir[:imagesdir: ../images] [[section-system-scope-and-context]] == System Scope and Context - [role="arc42help"] -**** -.Contents -System scope and context - as the name suggests - delimits your system (i.e. your scope) from all its communication partners -(neighboring systems and users, i.e. the context of your system). It thereby specifies the external interfaces. - -If necessary, differentiate the business context (domain specific inputs and outputs) from the technical context (channels, protocols, hardware). - -.Motivation -The domain interfaces and technical interfaces to communication partners are among your system's most critical aspects. Make sure that you completely understand them. - -.Form -Various options: - -* Context diagrams -* Lists of communication partners and their interfaces. - - -.Further Information - -See https://docs.arc42.org/section-3/[Context and Scope] in the arc42 documentation. - -**** - === Business Context -[role="arc42help"] -**** -.Contents -Specification of *all* communication partners (users, IT-systems, ...) with explanations of domain specific inputs and outputs or interfaces. -Optionally you can add domain specific formats or communication protocols. - -.Motivation -All stakeholders should understand which data are exchanged with the environment of the system. - -.Form -All kinds of diagrams that show the system as a black box and specify the domain interfaces to communication partners. - -Alternatively (or additionally) you can use a table. -The title of the table is the name of your system, the three columns contain the name of the communication partner, the inputs, and the outputs. - -**** +[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. -**** +|=== === Technical Context - [role="arc42help"] -**** -.Contents -Technical interfaces (channels and transmission media) linking your system to its environment. In addition a mapping of domain specific input/output to the channels, i.e. an explanation which I/O uses which channel. - -.Motivation -Many stakeholders make architectural decision based on the technical interfaces between the system and its context. Especially infrastructure or hardware designers decide these technical interfaces. - -.Form -E.g. UML deployment diagram describing channels to neighboring systems, -together with a mapping table showing the relationships between channels and input/output. - -**** - -**** -**** +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. -**** +image::03-deployment-diagram-EN.png[] From ddcb20142d0d290c8c04094f852905e67bb9ceaa Mon Sep 17 00:00:00 2001 From: uo283642 <98973969+uo283642@users.noreply.github.com> Date: Fri, 16 Feb 2024 01:22:39 +0100 Subject: [PATCH 25/71] 03-Updated version of the deployment diagram. Previously, the diagram did not account for the bidirectional nature of communications between User-WebApp and API-WebApp. --- docs/images/03-deployment-diagram-EN.png | Bin 75191 -> 83762 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/03-deployment-diagram-EN.png b/docs/images/03-deployment-diagram-EN.png index 546d99001508e6bb9140566d9462fa6e3104c574..372e2fb7c82c5d899194b85ade0d60d707bbe443 100644 GIT binary patch literal 83762 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 literal 75191 zcmb@ubyQV-)HQlQQACkYR3sGzB&7u;6cD5vX_b%$r8^7|k&^CC0jWcSD1vl%3Q8YB zy6@V@=N;esjr-62<1)rGo`dYY&)&aSYpyxx+V2(RB?$?x6QEEi!pBnL$|%%nVHE0= z0{$8J7tTN$5%?dDt+M1pRDK8L0{n9N#RItqC{$t4`NL;;@cTI%DNS1xiqsDI4`;%d z#tDTwNq;Q(!I!1QTctld++vWp&UlA#M8?#t+2k>k zgbWkit%rh_QvxiSf3hqc*92|!ciJ~ucMfi>?+T5r?tMI{64^SzoVKJT-6knr(G6v?h<{}pVr9OrGmPNFgD$harknZ zd&oD_=DTgQ^UW4_3Udj$ZgV?t%-ZMqj+UB7Im6Fc0C=~wL|9cRhMbb%L+)XOXL(xA=cf7Z)$H8gKi+UOOLH6e;Lv#bq-kYTM2; zSbhb@q3e&-Xs0_NTuj||wvEG}F@QtJW%Dj}pvhIbW)3$x`Ro__Ua~eng9)6Cev!Z- zN$s3w{@Cs0_@F?u#3aNSCP)_+P&bJz{_C&sxPDnY<^xe0dd@#ovlQ!*F}fm5hM6cb zXu8N{+HC)LcWQ($3UXzeuqwRlm+7L!&@1LoxYbK2Kq`3C0WOlZ`<8> z#^dPQ$>SoH#`SGf< z_U-xJ%%G~XD6e^1WI9Q|^(u&1TGec+JBGQ13e6`cnyyXNBjc`g6>fSu1BUup7{LQr zr=;hQ)#`Qk#yk#6^za69Hu0I$Lhw`y$nmI$;$5duUc1=+L30|&o zSDOrbO_*iZYm5aBs*w19hO#m<(PL!HWhrlk@ukr5?o5X3&dLfS{{_l>U1Lr&A6FP{ zkuS#{pAL%&e*X7HMP>tjq_nVi2y3n9Ch|b=6M6-CO!x^d`Tw@(|L;ppe~sg}MW#p& zR;EsCa_#;ivumAWu41y!!boZE9&F?>x?|V2cZ3u=ur#ofKz#Nc5slU2K%RN+!HQt9 z&98@pF6Gv>dyOnwB|ocoCR~jts+}{m%dA$Y;kHPyTZRK|J15WOvT0&F7w;Iu)p758 zz%`C<-dP!6(SviTu~T@Bg3CAn2{NVwpQ9Ig z(m#;%ze>}u52$wDh=Fi8Oo2lEy!P)%m3NYv^6|1Aas2IjbBWfke*b(Xe6Y;rXx*sV zH1p%CKKItrAfF`V%Qxl_02Z);&@cJ6OhlAsvGMR%-`~xjn(UT`x~tb4DYoy`T#~<6 zk3=!me4Sy7$=dM?GupV&wuz2k8X5| zSerY3)+%igS`Yq)Hj}NSEJNV~@W*R?IjLxJ636D^}Xh>{=J2m@vjTo*MfvgSA&9@`V zBgC?Gca~nls{Qo{JCtoL;mqwrg$8mk^SUyPc6HR5O-Ka3giI?ji8k7Tvgqf%ry$?H!H!6fdfqF28M@T+saAVW0fdNmb zgrbwRY-}2y$Pc^8MThP(yMGKKpX$|2DS^RZW84)j}}{Kf(V}Snv^~B;$e4nzJp;1$L~zk_UU2 z7Pm;;k)YJ-=KZauc0Urjo9I?wJ&l5b)z|Y#V3WFneRe6~qfHg;&Whuwq=LRoKq)Hc`8NW{q1|g6+-MpR2(K`Hct0 zm1k$%F>$!cv7l^0Dp$&dNN6*df1`~HvviqVZ>*G_y?@7~JLRn)E(%qT zU1c|C(>}>_X2!kp=bs7Sl7$%8Hs75}#AXo9XPq!yVVl`*#`xsRRQ+hbhQ1}Q)tCv| za@3e+E?c7@;ecuHXuXLBeebg{z}f$h24ha?4J7R!4MM0o8S)IeH;u172$+F0o|*js6coi7f%+&II?hZ8&=L56j-hT-lCm^=c$R7$$l7YCkWmn`CT; z^-->PW#sx?*l|T?@RgU(Ril_`|iEMO1 z_j_3MYsUtTq&!=rx$HCV^zFdHal^)pB$K8Pz*4c=);0aIvApe{bt-z!@ThvJMpOO8 zlueF!H5Jqyn|YiZIdVBHKdF*=k4vpJ&{Jlu-&_1bLAy(}Rd6%PangNoU_(j`i6H=t z3R_>p9R1sONrW`QV+l!R){_&Ij$O_vUT z#R>KT%?)qPT|x$* z7zg{+eV19D1P26Nuox+6Mv86sGM*GZH-@CJf=|7OY!d!|mnGi4H-?0l64PGUV&isXXz&^Sr8ImuN-GGN z8L&KNA;CBx;}C~k4_P`{O%ysesTq}}6N*zODr1Vj;T`p{jQOi}YpfibsSCY3m%ytO2S`a5|)x8)6S(Jb2b1{sC zGxA9PT{TBKlFbt0`%Iv6WJJZk8~ry;IXV@ujA4hYF!CJ1=0cJHQiUKREKY!ZJ~bq_ z$V9T)OJ)Zc6qKV2ej&(7*WvCs3@BF`Em-Y@)?bwx)ktu#Fm%R!Q z*zVu61HQgfY`>&l?0(=d7^*ef5pPaF#$#Zq4Py*J597jwE1IJt=XO; zBN=4L-Ta7Ma+Nu1xiJtTDpUJ7pM5)xomGi{gVdj;^c`6xROx{boMTJP2V-2e7Av4W zAvXQ*h|ik6ZLxfvROuI4ZB0i?vYVqn-MI!u$G0pPuM~N>?Y7;g6x#6lU!1Nq2of4V z%2JE5^6t`GBADkJM>~_T#T^2z$SO0zF5c%4?S*GM6ITO6C;PHhbv`IfM#W&%TLT6JJz2><e96ECec#Du^5z z5?o<1IX>Fa9}KOLq;c<~bl>dWc4i_yj}oQD4t-Q}R);UzO^yDi$jRZ1*2T4vo#o*f zEz<8j=`!sQ2;1K?B$x!%B#JStSCX;m3>m*hhH`>tmGj_aeXyA!(E^G4fe_3GLrd+K z2BKY8Dw+Z)_&S7xpcF%SV>ie1j0dmJ7{gdV`GKUa48Xp;Po@Cr9~UwFZH;6vYxOwZ zsXM7~oic~YhMtub^K=RyguAb}DKP($tASW*u)+J`Ix^C1$ z)ZdZ&c%5h2HXLsg$xBTho86KbkovdH-9^a!!eIz|bzU{!p3O=PEW#k9LzM%jXb0!N zvVxckffH~6PJQ>SaP#%fBBNH>)rp$+wO`*c&HFxh=PwR3p<&}0_h!gBM8C&nW=a}? z)Z(h|&`HREM_@-fnfCb7;H&bF6nrs}dM?ezb-OK#FM{Rc1)?GE57T~4d;F;lAlsPG z@wr(pQEkDmD-hCz10|9EqucRa*XmFA{KzRoP9>e6~V-MyWNhx4a3 z8G3?5j>|1IY^DaZt$FAq150*ZY>nB(avJ#~iHQI2PdeRJ&#;=Los57F>~)7d0n|bx zCOcz7gxu(N7iEWar*sOOs3e!4lpW4rki z1I^#!N&7)v-g#V<=%arNxTojbq}1N=ds?vyaKS%jzg`~OierS zLF;XChVH*jG@e7ALRz88Ea%word%h|cUynkuBT{|tXt)P9?w0M977(HpP1IZp_t)R(R^EV>J8{Gmu-N^IEQpgq-1|b1^;6og zPN`LXy6#=s+o_4V`pg@UkN&%l!4gxISgIQYZu7exf~(w1g9T-lAFi_V1_|$HRs3yX z#uWO{=9njYJ%+qt5hBN0N*s^Ux9gU0SnyqZ;a7Be)2Vr};@2i%vnc6sCaTc(U~;l6 zYK@Hma*cwD56JEQ7Fg=8*6iqMtBBbPyM1`i6qV*e$#fqnODQgQ_Yf;ECWb`J{sauX zTt}MMsk&L52-TYJ;j$J}Y77I=d)P9;uVSM^uoDRwROB15=webNK8!q!6nH=Ieg*HU z&QmBtUaV^H{t((3v$c5<0xM)xxGD8vV$O+Tjf=f@-Eho5r3Ez`DwrP|z}ey;bQ&Yo17jgxQ5%wuu|x~;Rn^StQR})=?P_`fJmDBV>y^Ni zRKWPWN0A69q4dY5$n#A8&if0QG|IoZNi2uH)U)W6cU>8S6k3R2G*rV!An}IWAYQF7 za+qpsV1iRBZ$kp!#%`kWRuw*LKrJ{Z0;Pp2V2*2ZDuA&#DVp_5rk0( z8NGgHKp^Y?upqPLD4GW`YL7B1tqyF6xncO^btu}1*Zz`slPK+GyO>t{l^yTQ9U+7ekkfGf--M7siYNi3UVXg3lz-a;VQu5ww}uaB7^u!Ep6vD)3=xg%hMiZ4PIS6!fQ-OT8Qh{7yhNaBT=3 z6+-$yt8)hcmN8N#Cb(~F4!&Y!<$GU3NWmKgajGKq6jWlC{+I7OMCi+VSo-AFn^CK( zb|j3m=v5Du9?sS5OxWs6bRhV8s{ZwOH_kG4p0SXV^czPLrGd-NiscG$Nn$-ZWWm?? ztj3-VU;CA@Dgumh@vA@5gQ3puL1fJ81b$(qlk(;@C<)`0lIOHq!)`#XB26 z>4KtQrbo~)EF+#kPMDv3OoM0>18F6ey>|DTu`9RbNM9|3QT%-fHnU^4oji~d??M)E z>;w#7`0v5PkP?zjw=zoGs^W*SIzq?s?h=3eDw(aEZZXiL>o{)I7(`>e^{nPNat88*NZ zLa-B;#n9b@1f=)@y5?y%Y*i`zbeTvrp17K72@rwU5^IMtX@nvqe?tjUDuo4!QG{xq zR)6(oj|`RxXiIICBE!dn*C(%0 z;GmjsAww2~-`yZTIGFWnl+8QJBOp!ZZjJvKJZ8(5r1(Za|-Y-nKHj~c=e zbu+LC5N><~^t0p?-Rb|=q2{NBeg0pE7DZwuLfkHhy()l(wtobrAe=Jb)jOl_$00b# zB?`Nbk)UX`u2G~0AG4_adw(Lgcl%Tnc#w$v!=J3U=@@^OfB1$X zE($+Wv9VDq3drdrYF4ch8zfnhkiZq`}5gEz%;a{7IfalZ$v%JA*LOhNx>z!4y{I^(B_01A)50 zX>-8W#0{5OC%PI>JtU_v`Wbv9L$AgKVOTOAeY`#k`;`N0~IS@8^+hh6oZcB&V z1$K;+y=F7CYEFdUE0UVV;0tC0xH|6AJqobdIc%cP1{O2s&(hvOxzneJh$}rO07KV( zzDi!Wb2s^YtfW39rJ*wy+(vnx^`y1Z0DsPf$Qd|+ox%rgXQ(+}0pmN`yaedMq#z?6 z(3-=mIp!A~aT%T`$Hv>s!@R-kP+3F)RvRBTZ;Q3AH9hGM=VwjrZvQlH3(8z3ZMn~N zt`{BL2w-xCIvDe$tHSn0Rdp)Duz+IBTfRPI5H$Q!42KwDL-^<7Y}@k6Cd?G3806zj z5TI~yqIg=6*R0L?Pq@bNL7bptKKXs8FYa{&9%+uPtYuLXHLkHVo`>CIFPo@%{boLz zCLkO$6o=6u*I?6D2%Y2zt>U9YXQB0-mxU!DtO|N663ZAkW}PGg^f~pY_*&0z`Gw+^ zu3Z@1e&sudMyvNIDnRWf7?XT*RPu%uZjWd-8a?Eq6Y3vv%9@CTL7 z0ID(OIv`4KS0JS|kU%1a7w{$S8l)C+*`)}ZbkW8tDP_o#+YV^Hh(1`Yn+$YZ*jnhF zo7#2kSJOcF_|dro<#)bC4EECng=#VqWW+!HL<$&=h1o`cW-(pL)p7du*1@zBNuDm7 z^UqG{gL-iamxd#)PuE&Ga}=0m%gBT*uULOH7!o?<|ALzJVsWrwH6gr$*K%a2IU%2V zFXK2P^IWR`4^z?wnM*SIl{t>x5?6ZCch9PJ&zPdTD^x6gXz{d8tGeB{+@yCte_Bwg!TXE31!zq~MoA&G z$X(smT})vSX0@+a%CEY}X0L>LD5D$35!&4oDtelWmkr3WGa{F}x|PXSGj_^=`upCP zusM@h^mudc&d|+$Vc!Tj?aW?#1w0niY#|j%Y2Wc*#KJv3yidU~I9usL1HW1vaKPDr7?<|KiLYEVJkE!G4m$7qug-D z9zv5*u@WQ+-qXU*Wi^_66jsFb%|8gst=Vn0(!_KvO2;d!sg<*G!BQ@+s-7=(-=juK zQC=afg6!r3PQL1g+0@qK*8AUH9N)i+3g(G->IANht)i>n36HKMP24*WDKkGK3=Nmk z*M~UP@$=@{l3)k0SQ8zlBzSXwvrCLuG-c{-~=-DF0v`h!Qc<*+n#jE z-?udqagxz3p?v<;3x{_odHoSXrwh?_jgr3GI&bfuqM}gysTv))A018=dK^(JFR{O_ zkQncA21A-!$v}XAf9>n3?UxgBK}rvL0?b|+Zn@MRy6co@XZU%%!0Jj81wORe*Wa$icW1JE(0OI4-3IvQ8q7dTRQI&;{kG1q1~VY&D!d+q^I zI$C*o@w=M27|!|l5+=punCnb8_Zu!LL`AS_#{lOy8bH`@uG}~YM_MB_6kF9YC&dLN zbQ2gsOdaoa-%EM=*3536UvK=Py9geaYNyza{>vX^ymX=u%#CynOD&W)1t1?MQ@L(Z z_pLJ95a)t%;0gB(=C&+uxk2i&>HSNO*Kk=;8STr-DM8NFvfF)95m8os__x*J@h3B28G>bB zEz?wI^OB#I(^Cy&QH?n?;Y=5}Rx6{5witfSzz{QZ3{T^mc5%r+gdopUIkU8LAxJ_a zCoCt|Cq-IC{^VNvJ@Z$2xmsFR^Kwmq=HMIDb&QYyX*Mb(*TS6)g+MVPB(OSUf_|yb ztvMk6_>;Nr!Up>D)?9`6bP4jG#l2EyS0QOF6e7oYS7b|v{$+N@TeNMDJM7i z^L^bAjmb(VMyjeMX5OG_cC1>ybk%9aBo&lOm>EmteScujS7IS9=)91TB)&3Mfq7ht zdwYKeSks-{#146g&WvADr-J=$7i;cZ634kP-av7l?6VU3LlGU>wI0%VtMSU=CX?!( z&YTO8n=qBek)!i_Bi)UOgO@yMt_Hvy;8k7D>etXnQ9Dk&M6F;d8j<)Kj;7(z@*%BM$0X7d@elKa;$7bcC!64;nz zzdly`@<`*LG}fQs{o*Y?_mHkld^bau30xX#qZJe9;3Bh<(`W!AD+vLnzLY{u=iixB zgmH>p#^12Yxp4|5dJFdA|9mwIqo7#pX3tr^>e&1UX0PN67s)=Vy5qAdb)QQjurYi5 zCc@iEFu377Yr4`=FeHg#pJahOHPJ`j7sodf+__MP52ol0*01jp_Zuo%Ua1L;V8W}+ z{ov!aFQnY)hkHXSBW;q3ojBz}$gn;;~ST)9}2cx2^c4 zv=;6HZld8g+kR2(nCbH!U=E{zc#3>X=JkEPp@T0gId-Si--ro6DV=fTSXJMZ5AWW6 zmuiPUQTJY^ z@l~VlLkmIomD(5a_7OFA1aCs^( zkLBXH>Ki4E1hO$j(HTg7g4dS20Li5YD_}k_>-Uy zwdkS}?f3I$^ZJ;u6wgwzx179}r{ETjat+3Dvo(@)dq+Ap0hgCXQ|hVvnmuixJ3539 zXht<%k{W%y`>LuuNbSbn-Smj8KOTHWd0bpZEtjiq7khY;omP6FYbkR9<;DKrU~|Td zk!+$uBO^=^8{~GH9>Yeh_eIOpoMk-rpGxV{WU<0DEdw!ihkrj1I?QLt1_Bt420CM8 zpL*Q{tdz5#6oe6PVIdBUksaa)98mI8y8%q}ybQWf$#YUmK7%&FqltpY%<$9=f@!F5 zT7(Et!7cc1;v}D{=4C`G=;m>55ydYv{!B*sqFed~30^TKC8Hz(EnYOXo}aYAkQQ2v z3m{rSG$P%vH1<^5n^UYQj(a<$bw1K$Bycck{`&T+o(Ws|6mFI6qx(-S0%{GZDYl9k zQPZsB%2y&Cn!4piMNgrWFL?(sK7V!9y%syn&$a42YW9GsvpgcSOw3`fgl|?6t0%85E63^vpEhqCI{3u^aU zs)4!LUY!e5kuQ7@4A1!1@-Zdw955OwHnJ;FXC;=?gq8M>k-v!h75IEOzRtw!}wZkn4;43+&f$>$?=j)vIWTTsUSA6}ws67wYU)qM&0=>S`Bf~x{>SN}h z1I8z`u~hYN`O8$@R|xa$`Y`8d)9px|(6uV{Hv+u$q}BndqO1{bd5bA1$Tqv=MYIO& zzZ3EycBM+!(AdRuroI`7(85-;)R+C~NbrO2-UY08ne+|)Z=}wHN%$}tf65T5W27)g z&nFG^%(g~$j-R3>Ul0d|&EpFnoom7J9s9%?k_;15fD$z6}7|?SZ zw|_}4-bES#QsTHQQ0sah2T1YU^QG=zr=#FDd5Y+}Tpy}VZee+=lZ!(LfFv?KHYmZR|9ZlUDvb1zVVQ*%6&BjL_RT?S%la*>1OVoVy2 z=-;k^LIIK!h(MS+rWC|YLrpsG*Yqv1_Hq*W-KSo896fp3e7!)IW?hyhY=HQ)98tma zIfuD3ha+W#%CO)z@5hjngUJ(%M{j++*QpPQEr&lZ6SJODIU@y3uB8o^nu%~~okaVK z&65Er>JL1xS-YP>(E>*{9VI+_mfGp7Y@+aZhA#a>fsKaumx$E;JL3h*bVWYrW}!%f zU@M)uoWLoo)=z%I?k}lzG@}-MnrIn1SuO9D zkt5=aS<$;C@Db6)s>Zz~aUNoxY(gRA!LmN2pY2!+CapMQ^p}yGLDV-VXBuQ z`kQA^=hLf19Mml)T$-2C43sgdh!nEILcFS>D5T};0YPQNaz?zKh>Y+<)7D?q#dHtJ zVPdTeUfWsO4WQ{pEDcHr^cVIB>~2kKIrekSgF{KP(k{CK%GKp_GSztZYY+d*a5=3# ztt$SQ&&YgU;sO1wt44(P_kMrkUAwXG+7rg4D~vnHO6ZfP=5L_gu(K{`8C^GpTPVsSRs{`v)HoMWk?I$i-UFxIO#@{KIUIn zSv}>)zSu%`x$AM+)pq!~{oZ)VyucO_Gag=N1QwJaMpaw2GKJioPtO({g( zMG(108Z6h%-mC!GP(&`IC7d!Tp?jZX*qdLJPsPSL*CGvQMd zbXfjUPlT7xJ*f0_3xtBw4L+2p+l@7n7u+NR;jcmYA1bYT&x^A%RG1nKD)@NKgFB<( zzbHZ6&9Xp~EbHx|o|^+Lh>ps%B5<0Q#(+ECG=|&sIhR1_v+>G(O3OihFqn-dE?!X> zt#%omWiry!-e;P62`om1Ye-v3n?%*Sd7pP^XLZb#{?(qpuNti^J{@14+TY zskW5!TK!qek<5Y2NM?-=JvDU~cCUG5j@oRM%$TZ`%2wl7CKPgH^p@Zi)XmHn{R2_W z+L2XiGszdXX(V03n=<~%;#@D;kkdIA6G@_e%buPac<)M=A833y=aLo(29aSFZ*WnM zTxTP2%YOQW^NgK$lKEi1L$>D4?pFw>*5tO;ui-F}QdbAQ%eFJN%5OREhb<&iJ?%?e zJW)BR8wpXkT7*Kqe;*KpUjdC8nEe$bX(M)yQu+wQKaKG3@?&;?3_vZ|ej}stTF+z8 z2(i{hf$gC}@|53cJX*4@U7#m1oJ2>uF#UZ9tY9;G{D@#>4EhGp^zU&CK#H>4X-L4O zX0KlJ!JM$w9lo+X+8WFp3q?_OK@$bVrm{oBHfEIQOx^wKTtFPC9F!vgbf6(+atE=f z7&|XI>ek1JYZXzjA<`(2h@UkpUZu0{Q(MbmP_+GsEpLqkhpCzmVK$&Yfnn3(Eh3=S zxbC2Nq*afq6%vJwK|b9UCOnQ=ULauE682i_8Tia}>oap;4o%X9i{mAEcAVB#yNJ(# z#UF&%Xo$T-$8GBm@mR>#y40hX)JIY!iK-5XvSr@Zg3-qMHAPEfPmv<4AhS}+8&~na zU6UDRG4l_9f>$}Th~apIL?-d|tSHm5M?K!vaxl+z18BdP#aS7Fb^|n7QO zMf{i77?sofgupP85x=>+a=OrbkS%uhJgw8>yHZ05C==`+CZ8*f_|liF(J92_obA~? z5TiAca@(i!N9*6O;EIp+K6Q3vS;)v~-pu;u4hEm-sKd;(70HB=UjB>E7_X&RDt!v~ z3B~#!dV0Y#878!@;gt(5ALzuMo+R@yM8jj2VVh!{+5%-ES6s zL(vu?!cwlxH51DM0uNL3D#OQ)ebn2v4~V+iNGl%_(%v080>erPmlwDn4If9J&WTRF zw4{38g>g64=suW6&~LS8Zp#YhD zK1OV##rDD_#o{-wTH>WV(7>^Oc=y$BDXau?p1rzjz^{w!mumX2M}iN9P7XI5%C5w- z{CExg?}(Ll_BfNOPAL!uE7Y`ib6(p|y6+6@Mk#+RDlgf}<;*DQN6$Xe`W9h!c~@z> z6|@H<;HtX6v)#l&Jw!TqzDoLq<>wPj0{bL2WNCg1$RCZUj(EXQ%pQu;3XGDokeAD< zJWXEQGUA$NvSG5qS&-o&LFm|GV9&J$>8Q<|S+vn@84D*MzHW<4v<7-9&f|I$keX|h zfm%{A(3fKA#>3uoC?!}2W`WyQ{$!G$BJSS_&XJvh0+jEL;{lG>lXLWM>Xjpj8Qpa? z97-r2Fr60qjUd|53Y>d=;4rkrc}jNDpU*N9sQ!b9z2bLh7?DfXMNw$1!h|beoXD1v znt&#;Xnc>W%n)xE8ZGQD@PO!z1gNE!G{MrXx;?$}Hd^$&#%A7EWIC?S_XsYOG@ELR|ky_T`E74iB zN53-XQQn=YCtwS9R9Ni#d)27g)Iu>ais^?n4z2P(88DQ-b7WCXgG2ewTNUlWc&F+2 z#?UOZox>aKk92%cEIVOJ2Q98|z^o|f`q_o4C1YyJK>dDAT`0eySNQzx!f07Rd!Nc0 zZ@76LZ4q~#aDMJ=1Sej#vhpe>0J?Bw zN6`}3zq$Klk@R$)lIMJ~@A7Z{{((HR#|l7GSWcai;z0zlJ7XiiOkmUVqH;dD_)z=C zh(8|IQ<}{_ z(aTxT-U`pJF(nW4`3?16sZ4Uo$BM-ZIH(j@mBb~kALQMXw+u6(AVyU06?`d=7Ci)N zVU7D%te+SZ&_528OP!vnS7S^|1H?@+g>4rOpx$W*IHh1NW;}i?Sa)`sEg{L zA#jH9^?D--O4?jt_8&sL+4;kR&2Hd&7^9n7`p7qdO)WuBaH$~L>)qka3Rpc(S-jF40IWC`#F>ix@HM7^W`xiD3 za8Z7gxHLFDya8Y{FKHE04yR|4HaZ&`O`ocDJ$ad))wFwL6I-tQk})4FJycj4EdBHv zy%9i07SVT+03rAUF(u}M9pk6OiCT3JZ5PrbN2W8G_Ok;7wyLtlaWuE0bMTN}NW>56 z2(|MVqt$g(-l_=nIxN$=w{bL;5A-2^Q(N#<#X`{NFGV#QG>6`v1v6cV#w22lSadWL zlkrq-P(AYTuVD%ox}w_pee}Vjtw_Y8wSx0}2CyD4*cS@+0BY!-FXD9Fwy2Uxz-?P} zHK@VZm)udzP04Ig?Y($6=L0VEll_pRlU=%t-P#vj{LpE={n6l8sk}nFZmRiV@gEJ4 z<~&yZ^0ZLVI?_X7Srfj#4)@c*GGFMn_o}L77H|OfB?kFh^WNn)P~yaZA@vh(gonUF z+9!+kXGSC0*9!efnUkWKIs}$jxWGxh0X+>dfMU3saJ}x*t^H!q?e80~(_+79kfWYw z=5c`Gb3Am{_z^9?QuI>Hk&)I?R@@1h%p)Vn+!OS-ox)dglC+|E>_jzA9 z!FzQrD^LvjNG+(&?n?gfReSR!G1{MW$@&09uvsI%#{&+V6fk%%ZejWdH*0*Mhh|6@ zjc6_>C#o7aehdOHHMXzerq)VGyeE5eJb7~bqIlg7hlz~wsRMXxhHLXcGDar}V{Iab zY1~$Fn=eI?w9R^&Rta2e?RH?}lFu)#@6z7C!%B zVdmBz!!s@<>egLE_%WPC8$U3@ZT{OQbhTRHkZKNV#&`oa@11*|AW&w?PMt;FeEZdx z25miQ)k|pq=ge8v9M$(<&yo&6m4n#cEVb650j(XR+PRen>Z-kBqiklm@|bDT^IGbu zxnGYCcKDEL8)+V_I_oE*g*yPAPVFk3dZj`Y%kVtWQU}wX6_;$~1F@=FlNU*K$NQ~k z;?%^iqljVic_#}E$F`g)*>W#dN-eu8!$ZM7yGvMJt_<`Ak5e}JQv3*@w z=Lyg#i*UOh0AbkMhF>IN0%-;I5Muz+US*CmJqdk;1_BPtCWt^}J8nN%p>8Nyh2C5q z?$xUqh$!sNPfuRv#LKk{*LV;F!fBPO*KX$Ccf`8B)I-aS^j_&EI6=d9ECK`A#N_c7 zZCA@@F4`hl-e@o;5*LLlHuaroL`&A3b)6<2MF#$)&mhB=qSoc?Z-f=z1;>syE6s5g z=uPe5gTiorGP%kb&ubY&=rS)p2djz~nu{EFQ15T(*ScjWr9PSkk;0J`|E&)SAq>Q4N7l9ZmJdb3 zUQU_0c`=N+(#OCzt!Vus!q}zClBa7Srj61^zVy4md(@2cBhAbCWK#E89M6eh*mht9 zho722Qdcn^9RySkQ_?4%cPPKpjqQmD(LSC^jwWx zNPoxWT75ca(>oD9)Hw?;p(C?geRl>J2`;{IyHC1$%4iGC!RyXQ&0NKI2+GyAnH8|K zV?v_SOj;#b;|`iXdPqF3>e_|u0k*VUH`t=dR#Zrb{fHI$5&7RhCkMLsn^j!{otcUC zP746re`qTQ zEG-8&c3$*npTLx&W2zQEWc4^h32xafVYzi?cLd15aThgjqN9X*PsEj-I1Z*pb9w$h zm*MV5atfiAz#98C>G!WnU5Q~wUS2?TV+=s1#^IAHVN>~#<;#jHg&KGwxXp)8g<}h) zI`nZGsFAg?mVB`zQocw{${g_IwsaQyiHrofk(TXO}d z=~HlXhfu=vk|vOpI$}op+Y&`4ODVrVw~pWxlZyC*PY4j+v>&KKLAPhAp`1wWz!CG&L>1|0 zX2HsqUzna`D#6X-rQ+Vsq)s!S9k+$k0$(J$51e5=6@U8M(ECZGSrxpOf3$9{!p16n zK!h3VDbN=g4Z>+goHc0rx2sVBKNaQ3+9kndWhh`b|8(wl^JnN3`?YMf+=yr)S9DDftVAJLiOIQV zM}}|HjZ7#h{eo`1@`zIyT6SwUxn_1=moIz$))yA6#{zxPOy`` zp;nnZFl5f>k8mF22FoZmX!|P+Qfhp?ZNHPw+R$r+ME>wC0wM4y6e9$7wj8 zzd0K3nPflYgEF-0wKTVgpnE4k%3-fr%d+uVE$`oHGJQ{QPPIhJ!Y;MZ0>3L}5HO*XHew&sA1KgIj6hmO z5T9B^NeR#-EO|gPY%d)#teHadg*3%Io2MfXyewmzT#q1DSHV$7ub*fE^jsc1IP1%@ zx|48%FdzoQBEe~YI^st?;`?_xR@`6ALggU?ZB|uBT8Xb~2amlws6l3GH3eJf<57|M zA%n?Ig);Dtr-sFx%@m5bXoB5s_hOz?!{1+X`QGWPUHKegUVI>4Ad0&iUZ6?Zk%kQj_j)R5!GQ zp=>Pydg=xS99^$io0kAHDF}iBfH`E~s@*6QkLxtvJcRT!j2^FYe6csdN!q-(gqRdo zd+!g>v}xmMvIPeSX#ZN~_wd5~jh!O4rjE@kE#_1-_j8ZqIOE zp^3BDKRkZ$ZF#(EPzbkKx~@(-Tx}aQI&el_Mtid&9%4iO?IJreh3rnPh_pUETC%Js zU-Dx<$Kdlrv6*){Ux4i-hx3J$C7 z8W6H3DEW)2TB6EuyFt*TfR@!3n>o@vAyw(5MVb3Bn7nEVn@-VCjA1D4RpN>5pYz*N z@0Rm4p8z~r)_O=L*!w<)oh3vIT1z-tL)J#9WFH_+B?Ht1pcSqa&iRjx5)hH$Xr6cncy6e>;V{PcJTCH{irALizUk$jAaBD^W(_v&G}phsoAdFym9v#^SN+LjOF|5fY#~zW zT0Y6wuWIE?$2+~Chaf~Qq%ZT*&1h%hen>*yB5pEb|2$s$0P#i_i8uI`kK)56HCV`u zJOJV^7YbNPnA`tN=lPU^UpPSHKk#_boXn=@x(gY9kND3>rcm=HQoT zee79&2?W5(Q3jjYsqt48l7%EY2g$$UiBwjy>(`M|Ct%7&WuonNUc~l`$8;|45zy`n zPnJ1li>$U^TG-3we0=%MLVxaHJ#84ezJJGXfrOUPR*l%7e1 z8#VZmpj%3AHZoPGZN4m+QFTf87c^aXCom0jbMQq~fKZ(&KW#OSHqV$6GOz~-2_bml8eH`8|t<~@|*&_HP5qbF%U{;-=h>aqe?8 zcb}qKLxPJsgbyrSL&MuzS*N2pDed0s*6YPDo9l&t&aXRmQ7JZ-bM1+bhr#fli1kl! zkx>QgJioHOTH~C;;pq+pv>dp{FzOZil<>9_%ejs=ZSVP(kVkB4Xw`Ae{@8wJ$x!9? z(qj#hr`wL7Jy^CRp}IproBO;r ze-Zq%Ev2~G3&^VjaJ1Xmi3MdMSPDl=a{_+=p-Ngh{yF8bCXv=i>Xa9*aCflZh9>Gg z@`@&M8V|*c2kH_b%F*bVo=Pd&D^SXqCbPUe7nfgRs{IXg5ANv)M0wd7{?N|{%JkWY zD#bavZMz@3_9EOtN;b6aFWU`+`KYDBpC>*~;KUe? zhMWcQRyn3{z{Wh@^_JYYA|`OJZV6y}o9#tHghlTAfb$ z9BQ6l(b$)#Jvau$P(GR0B2|{u4yf_Jw1{Q&#)A;I*MPR-vsS~@KlgLqru$?r#?sw^ zt&0k!@g@>MUSt*bvXT5TKk+;NbT&USwGSHZ1Z3=DSP>@nPHKu{NZN=FNSyo6FFge#h2GW{8+72$TzGqqHJ&B=9( zz`NVQIcCWG{HPQx(WpIe(=BiJ^4oIup%zRXubQzn(2x}kzGWK^%Z`w(T4kKd@alk> zFhqnos9CbThqDq(sCOWL2$i4ZyQrunj!C9oD0%!f5`6~Z_XEXN#TAsQi~Y_bH0+$Fj)T5z!p5UN_6K% zr9p}FLTn^R^+Z*l`iBihj#UpWiM&zd{9*d#IizaJUk`i(!Ftg6)4cR^keGFtz1mC$ z??q5Hu(S3;>w_x8Jc}iNLf$}ipK`L=cD`zzF-xt z7V;vagQ|fHIf_ACPt)_?5hRmhue4I}|B&_G@mT-u|NrSkL|Ks$PLW7a$=*cBO7==+ zuS#}yk&#fLkeMw+PO?=pitL?H%AT2-zvFqnzn{sLBUSN;=X@=J0P-+s2*n=Bf@`LyIBz7Qb0HOCmahR~SfsE1$ zn$;g;nj+m7N=l3PKTaiUE_}c963U^1}Z*|Dymh@lBO${c+-p5yrwCf+}2X_!%3 z0p@0J%9LqhxZl(_fXcdL{K)~7FZZ1$#N{Fk+OW-jUh>#E z3|R82445+inG;;#^SNTl!>F+v z8|(sDfme{^s?x{ocfGz11=b?@N+A@3BGJ_VbL!63;Xx1q53SqRSN0Lzs!#BwH=~>& z1X)Pps!$M;(+Ru@8+^mD1~+Dm$Im+n7dTmQ>3Li}HVI|kvOh6N7&bd>DwHeo0>lMN zP!6t5L47UrDhwv^RnfLpd_eFJ$PcFa~PZ z=OELITI0P$l;NmD{s9LfnjDZXh6{A?pAXT6xF6T4i2^-70aS|%Kg+B1lBnAp^zsj5 zp3??KapW}Tx?j0ginH|LDCz3zns32VxNzPBD~r8iiFAzWeQ3Ui&IVoGJ490ribW!{ z>s4H*=$wksTql7LUQCkg$Dd{=9n;NM9sZH$PZnSa^^giYJ(oZiN#ZAuohA3-cn+1Q zRd;x7_>=n9Wa;5^W|ciRo*pR&JIMgI0DU5OhDa(TS;TewWsJ;or=5ei0(4edrT3fbJH z6o0`_-;d|$v~Bt3P*h`mr*bAMNFd+&;S??+c3lnhfG)t-n}dbFOdK2`PPe-6 z8Na(37%$~jV%AN?;S;kipA^+#0C^>ZbwSZ_6Jk}jJUR{Vb|5myJ^15zK$+lfk@2ugZEF=w^2hM;XqGFj*`~WK6D&$Hkz3CpssluRS$^D55M&%HR z%qKZ*=Y@Okyf;D0H!dX|f@lW3=gKPui!Qlx|m{zroD| zA3CFzHXB%sL_UQ6PGxJ+wKQf7rN5w=@xT_rbwCdhh8jq%`Hutw97J8nL2dKfY7p8A zx$(9)rzjXcX{<{NR8DhxkoXrsJDeBBlGX~F*tR@p42P9`T>eG;s~m?U;+x8k8R0`*(pCq zT%=?Yjtj=_{or}<4!-!BJ`?~gY2w?{Z_MED(0!i~i)-OQW|5t{4DV_{syt?$Kfo$} z{}t-Jr8WjE&Ls98Aw29aQ2+ZH&78KDe*$)8+Wv7Nc}^-P4Ha}^6)2G7n8&}H9X8Ya zjEn1eY+8Xclwk{z7{!NWm-Xb;1x}yJhMQyf`23yjtfy_?)kyLf^Z*b*2q7QGsHnrA zV>(iD@dD&cZ(r@J;+P};2>=^0bO;U=<>Dq}eeZyVSU!B_aX0GhY7h3kDcZ2|f6H+? zS#fcS=rzW34BCp;L$u?&wO@{>E$6lRNqAp0a#*-Azf8_eZi;tt8WyX}Bp8@Flkx~) z6w*f&d2`~W*UKvtn7;D|8~~Q5s=*3U?q&6Cz7jO7{yW8FIG+xB$S|xydJ)gT>gIe%Cm@WyS98|5b zdi{P@C@dAzhQL`FmMK(03MPSvhNA4w`9e88ub-oG2ia|ff8Fq1*K>i!r?PJ=<6l9X zq#q0(-9_u}sr9ZN0#C&y0c*%(UQvvz%(y?L2c4GWg(FNC>hT$e_}x@XrDtjDs#BXF zr8RFHorI1zzqf!YAeZchhh(O! zsd)9@zM6q@eWt%C#X;4t@~e6ynSxRWml$7APMGZnoy?i;!1~}fxbD@p&5)jJFlRHF znd|;C00J?HhHBjRaF>w-I?FB2!N*-iXthO7ABXh|Ar%;gyyxw~yh|!(nRal>* z&5qGtLFfk*&RX0CGaS@bi0~=7Nb=<3A(f*mB6ZZ_@Ks~Q849{2%nC---QoN>JeQ!A zLG_S5t&@r-;T#U`1|Z$7&B%>^8i|U9R3x$i5yI&ldaQ7UAuFqUg=_WV{DhS+$+1@! z5k%K7OMPFuOySevWu-;jkLYWlBATh)huri_6hD;2?q2TTa;=nLDooEpUzxKvYUXQY ziA?l^Jl)*e;1`x&g|cgK2)8l`>U(K?Ek!liL&8riQAaHSKk=UwK)fWtMc5~`yZpJ3 zTO2sIz&XV#z?Y@S$)l==Iqj73LuK@dJl}hT#UVvqQX#K%qj)IGG@b!5ZylcEhJGq7 zwV6j;l(P?=`sW*2%E1_I?~B6(DLA}(KS$r&k0L>AANwJ4+Xhcp8z4|k)t0Bb1IHEf zaG+!-Bl!}Q@DB2PkY0~Pj5T!LR{+<*%wc}!_DjDdhUROx`sOb*Vsg1yR(Bv}dy-T} zjCm!cOAqRNYebH%T6ZWx;1CT6PM{0cj51o-e}`r}p*0D(9+QxQ!%NBqg|{=4o1WUa zm}J-oU?v}EShIjDSI7WlRxpdgoNW>z9l#*xT2L$s{=oM)KVny5K3WymdJ(?)$>$U4 zMeyBk4Szpwr1Le8)BNWL!4pxs6I?w7ZJ4bk82^dDAmPGM79ohuK39brtqo>et@jyU zp(rkZl{)U2Eow!dG)4;VoR1@rFz~>e;9RCvf^mElTWL&ff}@Z;rJxtN98J&5oSfX* zIgE;C&%c0d#W1?E$&l@RIeQ1i>tH!(L;R8d%5TgH+&=Uu=7s!WSsqKHpb$zI3XAhD z%QuqIunkEV8yu7_o{;;SXI>{GSvAgaek;xC4&Yvt`dLiS7|9Dtx94|mP!giUB`|Rv z7S=#9SBEfuGyXm>!rXD;|ERjL;P`o6oakrj?GSY0BJ=>i-0x26D=Bf6wnirykB=i2 z`lugz5v@B?iDTQD(eTiQiU0R+u6^ei(gF&otE7I;7IIEt7#J^ zH+AdPvj$K7qV_>&?K~>wAf{|?s%B}m9+J6@sni4LE}n#kjv0r-@NLnZhm&QxA<{dz zF!EjYzz62FteZL07hZ^H_t0wc> zqud3ALSj_&+gms2$L=!jc9>o#y<$-SmOtl;KX_%s?Ry)jSsN&x>0Z`a-2wH(z_Pvy_ zV?0?&;I_8gIl!2y{q|g10QQF)|4$DvH)p^s$9s`iYJ)n1Y|I;`Fx`lkrC;so>@5ZD z|7Onk0sy~!gAJF$x*iU*hq~SM~Sqa`^gx81?vYgQrHN=FSBs9j@~%6Y2jcy-*_~vlH1tK(gPqUH^ld z7p`Lz7hqzgwgX3{Q`M&7-pZK!u#+7;_RA-olEEvHF#;!w9aO|uzd?R;uiATU`dOLP zx8s|krKJF$%ECJi3Kjs%jUcQ`PQJ2mya2$&GmEqbzIAJ&Q68^rFC~b(SR2Fiz6*#S zx9jRgl_9R*1vBhL_LVUgC>0w^QOTO}9$srZYMHH6?*^j%>h=h9+}8TR%pOK=Fg~yt zf_q~!a(Cx#_2v*58cWX>e&FN>-k%-Zy8c7ZR^A;3*4H0)uX>mb-5pK@Hf2=JRQADZ zKX{l*Q3$|KYtIqPAQfJ_UUzf9j>$BPHDyxlji5B{BCpT$85cjO45;?ofT|+y1R*l0{kk2*k5yZewn;8k);!9kKGz22i^ z2StF5FxA4AuHUe@&DE*n9^G-Dn)=j_p*Ft^zsICXKDo(3=++$@s9*$u9-rRNZR-SAC(>0BJfeG$@xvQc(oW_=XXv7XxOjzoz_r^ zOVUL!JhOuqLvsjfmJ#WYzfob`8IUHEqDjl2KkyR@~s z_?7ad_B+W-OIvXxbDo=|+k+&lmHQEAUz;>6y<&OltiAUB&;!sFIG0{(JS$s^VN2U_ zC1^s49`k$8K{ncSPk$?`U!>7_Rr<=u$6$c?SO%opsc{!b99$aCGWTTjnC|$<{tZfs zZopyAM^Y^(Pwj;KX_=N$dfc1!-5IXXG7YnY`1sGl~Tybjv3WXsWV%k9^0y-NNTBb9D0{C0MrWlL_A zPmM?=yn_?27m`mqui$T95qGd12>t0mt-P<{b{U##+%&24+nZlin4$ddyt}wJGWYd{ zHBU@{=f@}&lE%GWFo~yZx9mF{FtH<&NE}lmMk1Mu~rd9|F`m@A)O0KiVr0 z2Ayp68t*q(vi*a?{Q5OamcQ%@5~JYme2?r>%GyAB4^*(l?FchobN8SnXs_P@x+2H1YXFSu|7$+H ze@wUkb}MMA3w3F0q-&2lmVWQ6mc|3`!GVY>yLJI?v-e*%K;v`kXE8%84g@HdylPr& zq3rH5aBr=Sc_n*kQ#p0QgyUh-m<>;rv(m%8(TLn!bl4!~{{bTOF4WZ`9Mxv8f7I$U zqdqb{!S7;COa>}oi4!~CEJ|ApEGfl+zb{Y04HN6VRKiK1Fg)}fT4OdM=Cj~VVU~VSigr9KM4s==dZE>3b+9!- z-A|W-B1H!yC00-N41CTHc{nDmQ z2h1Dmk2ZO{*oKGkhQkcxKzt+nqW^WVT*T)OXg(O-T+w(>;hOs-Isdjlpfo<7bYk}( zvv~kFrOc@|wdysgg;tJzKmAb)pRt$c8C1IVwrl$8kiBS=HM(=P#4eY3g1 zhibo;yw&tNuLi3f->v~<65`CpEnm%QA1wcn8y@*Di*)YpKvnyjT9qdBs7Uv9VT*8U zzOOyzhpD%^k6$I+bm_fOc7@TMOjMSZ@X)$5<^xT-39s0`|DwGV%{$okc#<2L_zz!C z(S_EmN=U(_2Wqe1H_bEuz2&JAcl@wDwzfO7BW={Sx(6?L$7=BZ=M{G_ZM8k4<_?7O zlU?VBph)ppe)$dxM)!9sW$*RmEP!FN*lFi3dI&!SG@JeV-hnhD^hXd)nm=HIp|EqJ z)XfUrabRYAw|w6?r}OS2sh;ck zwiO$kIKFT1Y=7y;eSxdk-or;*o>lK}uf;lLL7?I=qn8m=!hm<({A@>0{29;mrJrhn zN8BVH$c}FQ-SWF@KJ)8syRS5=xOs@ z&0LUD%HU;cY1ih|3{H7C2bgQln-6)Im~75od=PckpwJbb<-ye&{_LJW`*Gb=m6XK) ztraNu7L`hF`wRMght!4YkP@Sr<$+9ZNX~RF1t5ZY_3ThI*1IQg!Kod9W5Z3;E*F&EzW!n*Zhjh;O%P`ZM zcE!EgGEu#;Jj#~|MOo)bX4_dsSoiKe*x%TD-YYdWwxWTRHV^&nrQ$w8@!wtLVtQmP z?y}a8gETV7gYywUvVAJ~@Vu`8(DF(hSOIZ#2g>8$i!G!32lOT?x^rGoR?Znum;-{< zF)ekEhq;inIib#%-1q54P?(B?3lOmPiKh}aQnnspml~*s4t+6s{!eRs zx6BmWaH3!bb}d-ZB1&YHQQE@Hl}B8olYuV_L;tpR0P8w8Z5VX^?+$%foYx48raT0f)#H9xMO z1yK{9rCAAl<>;1K!CZeSCzjkgX^lFMf|0idpzOB!v+jMk=BIB zcsg&c9IeU{ZN7d^`#ms7tFnaxmceKnhlV_7Ov>Im5JiV0Q!@mFt=#7aei{eVBZ?L( z7;fn9Kxh?q4dfh07EuB!m=e=)JTOXZ6D*0tVUgk2zg)8N$&oo6u)Gaw1zKJ5gEl}n z7FOcu6c`Jeyrm=8hpVp*#yvMHU1x3slNH&sk+c*Km5!27bk-k%ywzf);A1hxFz6x5 z8OY_k4^7`^kp*e?Gs|iD+L%u^04$z_It{P)k0=0}4ca~32JHDj%S8|i6#v)&x?ZQ^ z1I3|C8o9rm%g;EFh*e&(0DZ6#Fv~z^0;PCP~c)q zGwMNW!>Pg(u|L=0H%QRY6#w$yXd|Fl_!tr;JV=5NL8ldouh7`r5Ww1((UK(~gu&l~ z!yUdZ$5Br3+gJYsWAJ|_Luz5y>1&&MuDl6aApgif5W_m2GT<{zH#2NszC=i=@g|sK znmO3IYDZwe3oJLzCC`Q&Gl?ddpJZX;P`ED3cPg`9rSx4sC5=p_1bE)%uF!88!ca;Q z`$0y{XW&8*|ftw7N2CBd)5(5aop(bKzo|;tN z=P4VY#YnH6xkC{|T~&c;ZUtw$O;N)V2qSpRPv91cnp`uls(EW(H;Tu~{enk`1maCr z0Q+GhEU3_u`PYDFIkCosYSHj>Rz7IC4I2?TDS%GnwcCOaj}oE;6~{RQA8gFq2~_;1 zJF$yM`VOQ44UjWbou=qO>69l)_M+sSk>`;%hzfDahRjf*hICqu35Fh7+JwCnGsSG6m#3 z(J}Yht2eHsn{fXr1=DMR)~TY;iW8De^46BkFlHt zo*aJt_pE8;A>ffUuzPGtgf58Ht?dO^<9g+ z_$DU*3sjkpEmMZopsE2G_{_1bYki-Q4I8Du3DC_130Er>yD-4ax$&!z!0lFAR|I5U zSTe>1RT^gns3%UOz6Eb0%XGJ2`vN3_<~$vq@IxGFhl2`{4jb{9&NoTKZXeYc2Vl?2 z`sWfq)Zbp#T)gfUu|hU+&0ck~qDIld^aw1t6I3$;btA5e?JC&I4?j4?p{Jd4(c-bB z0&wY?U?z0CUyJL(bzjF&#x=LVZoSW7l&|9As3c%#fu) zfjEDll=-(pQup?IIVo_B+cuw)d(q3r>XoJ67$zmmA=88E!>AF$+*w zC|&0~ZVU_fBLe2WE}O;fM=|;XrlnoR0_Teax-3WQAu3i+L$ax&h-9^Ku75mgdB1MJ z)anxOonJXoCQ+ogTwyx#P}!Vu$4`B@FACt`wK6mg$dj*Bc>v8k0ps@@jJ`ZQ$CoL8J3T(sa&jv{nyY z1yO=13pu~|FbKYw6#8Q6D(~(S8QYzI0h=pnKR0Mg|v4ZT#@ia0lN8W zq)iDg1$E?M9njQYz#ZVR6!=E~mC=$|I?Dg^D;}Q1&>pe!7IGZu_}!}N5z&CY5T9<& zO;~b8?LpEI`H&5oFhPXLV+PY1GQ%UZwAtd{`S z4}%ooYrxG0$xKP?ug}PUipm|3IVr3DlxVU9DmMJ@2Xg_wKRJA|w4ME5LJ;~?vsDxo z6#-jm5*&z#NEla8Mtd?XJtqsK=1`|U-1pQiVEJX=KVU#^%RD zJKrcLp3%t~IG8Y0n`{?98*%jGo1!OCe)B*#6$Vme+K3Txs6nnofEHW#7{N$%WUkq%rte$MbFlz>R=V0ulS4# z8b~xqpoXML0_eeeI^e%V>1~2L>;}4wg5)32!Dm#!g(}z z7ePU(K|uI<>;4X!d(Ex=-8cFJxzAQElw$6;(^4NRo2Ph9#v|-bnYIGD?&gQ~(8?=z z8%FtE7`~wSt>Zl_aPE}x@42|%_k}WRK&7xm9U(3dsNXwf3R0mWsI;%?%HdmrvvA=g zZ7&qRWBd6#YeSV@CEj>*Or5VGbncr+DAfIjNPskJ`wdWI__3vHH~@?xUJw7--;Z$lBzZX zT1Oda$VoNatcY8F!Z;64dKwArEwK%;9$2H!X?9JW}-}ASi6ZaSD+lC>SF zPeNePFUJ%21fKcjjpj!<+*0<0M2<>dB$^W6W;)b zp?M&+l@jmYT>JUiw=f6#y(r!T-Ao&@7{ZBWgEkiwowBFOn!c2OHtK;E zMH~dkH^z^9K-+;o*tWLwM2{|#niCICjJU>jzR8b4f=10uc#e#y#&2n(8eG(9$Y_*A zC3NT#-!^kOo}b<^wt*p>$qtj%1d^m{j3>u*=2k->AFoAM-EQc>jYOX}Z8Mqv<^gp* zvN;Dg12n0=R(9yYU2b0yN8BU3v+;D+qG7Cd15zRHjpRX}#k(m8G51<9Tv#2V$7o*( z!G1%{4zrMLG-^U>hO#4QNUsXHbNrj}h(I5t5Tjm)iKx}}>0db|4Q|fg4S1)B_FD&) z81JvYh8Xt1W~SGN$zFDUbC6oz(5f|gWAS4EHQ*?CekACxd~mrk*FoOVMEDD(}t`gg5(2Bv^CmF@m_ zVFY#?EG>%5bsC$+>z>j#;9~fFIH+sb$7)@MQNYyp(b;W(iWr%Rktz?|2J_j(DHsL5 zFPcNo*RE2TvOOU^n359^w9R|>@AO^sxf6=|hmtbxcE?IfYkj%TuxmR~xqk9v9KwMk z#6ZzSOc-nciykU{`v;D$@^7-PKefM^m!2{qa`q3pPxVtx%@OAK4v)?w!l~IPd+YOW z@H+n7mQmqHuOp{hI3M4Kv_y~RZ(n%nE%nne;zdzy1AXb}ONPDTJo4nz1^dl;15tfH zy=b*bnb%~h)r03H9$rh%Z&&zk6{EGH+CG$C!3x{9I~l*a zp)=DNKJXy;y7Xv~WI~`hbsJ9ONnkH9> zjybvI1eAtr?sOSuyqJ!7$Q^2K%$I+lbyt-EV|zHOM5Ma-Ow4M4+~jFT2A`F* zAJn=cXSH{I+58E|sCk6PGONr9g}7=79N&f6svbo(&QbpZ-(hV84Q42qScGl78s~LR zrbXB)yh&i6jYj$@Px+A3Z8V~i+*o4VpHLtz%J8XY7&BLXMGrl0eqPX9Hoj%im#?c}>5W@h<=zA-5Q3=YW}a<`lEQK%>1NVx)xXWGO^VU>K@1@NZG3^{OU~bdg_3= z{vuxsi%uIFNIbe5p3Af;c<2Q9dO z7g%ISX-Z|whor&{XQ>T`Pustwbvq;xwwd`bDKBET<1+Q&FVE4P&8dob#0qW;U9PbU zIbo%Vwnx{-m1T7`n9GwW#n!AnH5`b(i(=|6T z;SfCzQ+et!Y=7EovMos)gL;K2UKZ+D>GVpjQBurd%f*!5*D_U0FW4v8PAMlCIP=SG zbE#&mXH?E+HlK{PrN7XnU)9n$CUdHDJK-(w6P4k@GnY9=PjyeRk~coydKT(yCbe!+ z`759D)VyPWXUu=i=XI@;?+e`jwE&=4a$E%k_?sXjh8Fx`7)(4Wz_nqAGw6ed@3`Xu zU`AL&%R!-g!WMMfEO6?BLi`D|B*L-{VoW+55Tx`Xq%;>TVKXLSMHCI`ITs=t)&J|i z548o?lLe@pgyo(At*AfX1?5%l)R_swE_G(~O=-(OHZ~b31=SmUgM73a6ZA4`5UkJ+ zBREVjazWYy^m2sYEJ`jpj#L8d1cO2Ai9#=ciW~YE6~KUUgk}VT(fUdvL#S%8bZW2{ z=7)ibE}x@umAjKikmsiX8rkVN1t1%%NP)-^vLYY?A_ro;BG!lpJ=kofaGQF+{(;*5 z!+=~=<0i~E<|3nWnzusDSENLc(6*Sr9M->0z2^2)8#bcGRbmdG9&OjgGK4vwrkl9+ z_QL2F&B)TdAN@pU{->Y2dIT9;;z5*YiN93)OB#9TQ5*{Gtes~WQ7l1wz+oeX3&Q<_ znXN)U=u!Gd6E9CSrSg4WdVh z2-WY$!79YeCTJOo+>`&UD4yrOZ_apk?^WY3@VzC#bqtdmnT)?o6H%Vh%7=S^l-dT? zOpWq8BcC?jPYatrnBjIAw0b$n`9191;M4{kK^M7ll~m>zN>OQ`jewx|pgl?&5P%wy z4x2y)7^;{nz$l0WpkKy;^I+?Uz=JD&@Q2T8n>C7-a?5mPH!&tv+jH)s*#XRUe&8Q3 z!T>`QYUwKqk)kWSqua$N?pAlAHCD)sSx6d69dR-D7K-=mqG5@{;SpFw+J@$BNZM^u z5-0_i&C@5)mtMEdRjbz4MGFJamf=YN1Zy;_PQzzHAT}0p&YH6ki^aIR=4!urEQu}I z1cN~$^5)<8!vX_&hoe#O6$cAqpS=c=k|PfE4r|aorXxRH{uT_3u{&so@cB|KY#*kz z3fF|}cs+uI?0ZAG8N&ZmdIVQ!!Pp=JhKPwzGB{TcMxnmZn$+1)kg+kwehZlKg3S&@&5# zi_dr~1wVFGx(`Z!*%h=e*&F4F2X=^<-b0d62V@9ILt-OsT;4p#dN#$mm;5GusPx&O zs6FjDw0D+Om%;p_Sls1PJbQrj#n4b1CsaU}TIGEC1MjixjQTK&vp>&y6z-)_*Uoj& zI5J1UU_H+D5Q$xvVEqSj z_+X5TYJDn_ngMs*f@l<)i%3b^=|kH|WKNqJ;V3@M*s~hpT2vWNsT>@FaB7Fc8GkWR zrw&p*Qt?uJRa{5TV-*m!7b3kXQ_)STy+rH>IttNMBXHX!I+3BhK(AW;CZUfuG8b_8PG3#BAL(8mC`s8Sw!>63}RtlfcxGEvYG@)gF z8)B?$L!$|Hrx@?X(_<79u{ac&RQ{QE?k~Jx38?K();hC%lI3g);(rz^)qyB<|mUhdblw153p~YK>AjB^;?q z&hA}j)DHOf+U0xk$MtKuo_x%>7T`S*zK}8uRH!RHx%P$%NueWo04m zmsB%TLwJ{;*~?xUr*^VZ8z&Cz5_vD-+{UYu12NWHgDghJbRfeN#sUW#_YY=VW$L`z zUSb)Z+kzIIm+8o$lRR$gr3R@?Gl$t`$6U(j+0tH?Kx&e!Y8hAK&do$pF-F#hz_ep~ zUBra8B^U~gV!FkMs0dz*XZ2(cm0-UY5?n?K-C;7LYSi3=OSoCwLn`(fn~q#Z$^rgx zJ~OS1)W>8RfKGQ}SMGjiFo2)nFA?avU~2?h++Zyq3vS&v;3f(UqD{20nbYD*B&!`y zbZ&SA_4qww|GWj|!#*6>U?EKCSCQ#+9;%vGj~Z;`QWO%)mGVXxuBNHj)HyKcG^%ni zflQhzodM=lCwL5dKT~vMvcMQO1VKZP7I{WDC)$B%_gFza*^8#%N=ek1&f`xVl{yEM z8VSFR97+j5HW5#%0k7hmu@0k}S-@w0qml;QLeoJuqWvfO1 zEb&^k*2z$z^`IAL!5tprGK3D&6^Oy{C==!irvX~eU5SC`=}hY*l=r9;Q1fy7m|WU;`6hWz?(By^@XswgjBjM zl^b?;c8g~*q1ColJ}^G!1tm|FC<;8tuONz7Qu;Zhk9O4ytvZ1^@*!;j7@!JaMV$CE zxI%~0V+&NqiPJcif08+Mx}pVw1j!k^Xm|w}2vcQ8L;-p6JNjk&em{$d`hBI5EWkFs zk&KQAlvz~CFMgLZi~0D-a<~o{I zOh-;170m8jMWgMN1#lg^P|FeD>d2r)vRM)*}?!2D>RZRugsS|~dv7uSE z{M|9Tuma}4f37}F4e1QONw^L~#9jVgw0dl27I3*ZmLI-n1hp@9;VW()DBTrJO5^Op z1*qV!aY5`&djsTx)ZwjZ1H1C9aWt)sg3>z~j!?cGeoMHgRoNR=HB8OZVCbf^X7p zsVIA2j)IkpXqt!TI16rw{rBLq&;c)LVHqbc`fjGeYMP+(D<%ro!wWcy{*8PTx*cLr zx|ZWCeEJ8S`eo-_yH5d3^EH079H5-C2}el6woSJ7$rx-Z|;mvX7(J{gyQ z&FTV^;wmmn9#exj6jSt$l`^e5A_bXCwBE7I#6crTq8I=8NiA1Bew4LMNPk0S?-ht~XskE%z( zEH8=}l*)29dz2MjM5)$C;3A{~~)v`_=$lFGazEcn*$8-@+w^$N%?QazU6+qxhASSl~)B{Ju+xFtQ!! zF9M@wo9T+>Mh$lr3|-b7!Voi@hYm%A;-N1KhnX&139*DBs>^nQvuuZxd z0;~gm1?~B;tA4}5Uq-pt1F;(R{F|pOZ^F(TlzYjN3&du@O|~($DhxcnorBb=xz(Oc z6Hs>lL6oHpHZ$D9y;&;AS3{`(rg&+xFjWL%!+yLbOWzhjeF}Geg6q9AfAZAX!KcOh z--)FL+mwCIOn1U;9fgwmp9_5`aBdfKTM!BFx)LYFgJ?&C}z6?zgG)}xVd=UhPD zorCxfkhmB0;2R-W7cy&sZ^^QVX}ZA%Y9|zL+^7X*E*{#pVIegQ0W^3bb2n#sjrW-Z zITNA2Uzlb6M7E4Q4@g#S5Sj-7T%|az^6Dr(svLcEXbi=3%WO7l-ai=IznY?-->z(Q z=>ZN+l?eOAw>FJJvDb{RXQ*lx-Kg31OSV06+xJTPfzI8MpY2myVAdRJ8AQmdpBZa} zEsU^41^#i1CaNyKpGZzmfqu@CkLg zMz;*u5~M=D!y_$!MlUaBhfmxG;2(C7FLG5T^MPMAfi`PF)>-2$tXM(V4CHr1q##!0-gtfK-ZARo$(0-6+5##R{{l?H#kU3* zQ=}}t>Na(*cdq$`(dzhViWS zFiNxoCH%d4w!c>VimztLD)?ApYON1c6^-E}8PWcw8q+QwzaU$o<^cMaWVqB*FR*#J zE0bTTUbooMD(!|%w-HC+V@)oy6m2{tLEU^u=2s1_ZOIkL>WaqD5q8H3m;q6Y`RO3& z9@#Z_K{YAlc8G5yE!k#o3B7pQYi4P(v|H0f`B^{gO5O1Y-l8vXb_QXFXsmhbUd-q; zgRq8{fipw#n7`m1uAN$gqty@SkRwRLu4e(Jf#p%d2Ska0G*8@nRPF_x=Dc12@KD*x zzNx@(He%3t{EDu#=1K{JVAa@r|9W?Gwt?hpGjA)c)@$B-kL_P)$$z<$Mn7N?Dc*<{ zAF~5seKhMMj3}x$22$G7QPu9dW!<~ATK#rwM|>84=|!hQM$wOzy^x*oI5j=6ni@2}3-|Gcb$--$~SqdeDqA=K|UmVLwIn`a4HV!U$~ zQfl*cGZzcF7~notlpFut8N`u)%zRIN&T{vE_TFp!iMd|*xB)Klh4I`(dkNd<)v_1e z+uzZ?W&xKDI%kgc^x`ss=%q9JAJJxRC<9;;GOnv=7y`RDR?2_C}A1|32(J--(q=zo7R z;gN&?%X3Dz4`S!x08xN^dFH+bk4>jSD)&EIpX;ZUuKe<v_FMbynXP=8T z@$B@+&=DnXgAj4;Jm}Nx`MBf*I3L;I%30-en2(dnSOOH`}O^+pZ1B)YUm$3k=cd~ zL>9W3+AGIQGey0J&+sHz&UGJqW=}H>%fQOt$Qw+=ewpr-mmB|8fI9)s$|MuZ@?M8j zI^Wud0~QggH@;f;c?tqcsh`dWZlg;uM>N%K9~`gyPql-SBt7Z&>mx#{?T-8xqwQl> zp6MlVa7fN-#eT&V1pU*h3{!ml=Pc|mS}M(wuyNi!|!!kMn+JRJb|XQ^LU%H+FA`$70nTNy(qp0SAH?d({8#v zPJF={t{C{s9j{E+L_OeB_&>*i&&h=6B8!{Mnsn*6V^cVC@X08fytYg6nDyDxg6?8I zKvx-P4ctS_ID`RKRyl+OFVtM=rG!5zMBY{9ogs(zO$6aNZW+RYt0&4gD9U%-O*7@j*W7ZXR|4D?Qe~HD-APQ>)t9TcJ3P9fiodFp(0P=^zDDLb) z^pLS2A_`E`PsRpMA%X|?9p-jAnkqouy~uliO?s^cDF73rLz+jAbO#VB8%iLa=zN&8iB3gic#1Z76VQg`YOPJL1NJ#_a348 zvtTo@6&lfNW5hoh3hF}yWx$oq2+dkUIP~D;KJR)+p$&c(2=_!H>YZU`I;e1~nF$&$ zaFbQ1SM&tKtQPsVXP#ghf&^vKi{XDEe2Zg9^0kAYU()^FxKa4nhOyF6 zp>B-=eR;Wayvu3M++aoqn1xKqJ$TJt0S`L?XdxBHx2`vmshLI3HUp4G$stK7FzWZ` z>x>| z>y}_MGx+C1f@nZv(Il`fPVxl!<8Vq@A?HY?`@+@b&t%Z1f;b^d`U9{L6Oo*k4cfM9 zG=Knt31uMV62g5|H#Sb#;q%P1$iO@ipuv0uc_AArX2Q0X@g|tUFB$8c2&6_oLJAgV zq`^T9P#>AiUZSsk-Flb0f?tF*PQcDloi%DXb+kuH9U^O_37s}?rc2n9!;lt|j z!+B$F&F9kPXfYVLg$l3BLsROZ+!!fN;qw~YT0kyAcMg!pu1oYI?bq*M&%*_pE}P2W z7kyPn!5qfM%~){ECYSO$^G*vF;m60|%UG%bQ#Zc?H6Zo3tqu|tbC22*sSG_*;)zil z1~0wag;W6v(Z5H1cqMDWjdII`N*xLrkPNYz)OBF@&4T9_`4E_oOZUc>!FS$>j^r?k zUJ2A~ic1Y8VYs`Rr2hEP=?r+eF9FRW_^6L3GY;)>hjd`JIJlSEP*Mn@;Woq14C%Mf z_)!QzUJWRUiyTSr=T-_<(kj_2&Cn71lfW4cSO3&1WfIgSCTm z1i7_f8dTYKs54gl)afKg&`mfJ=%+jWJ&oJ%htR-roZdYJ#w&L#XHM@hk@kN6B5F&G zRH#=%4t=fauP%Hf>=XwUq4;lmGpPTa3Zf881b>Q*-wj;4x{cQv6(71&T<=pByF?lr zpOYDeERZ8~*NAoy-9_`-c~~oqwoFtibJA+Vr*ICf;mZPoyZg&3M43uH;GIr$a?&H# zkPHoeByb2#TCInXP(*uWn-~Z8x;Uil9fNcXI!o`aqqH7$OjbMzvrNxP|Ig8qF+E#T zcqjNtoLOE+StEy)AFoQ$z6nv>{@zZN@=4kPh-DnYBXbluF(v48{K2u)hJrJMNbfPI zeDG7UUxkjmL@0LgOeZpdnvh)q+qFixjsej! zLjob%V!ogFULV5vn}$D4n?`Y>H@~R%s#z3C6HK{_!RIR74cYOkH7ij3(R6v^;S$0@ zg3I#%65xs#yD+nCSlQ*YhdAo}Yz!G|5LX{q;w>vic5 zr5D=T?sAYk&zXBhVmOKA=tIJxcj3gsc)B_bsp2Ok!kq{24sB|_>(}{fonlVw8Tk%3 zo=KQl>Co!#B~HVc-3wawv-Fr7W1-Lq|D21!oG7lc6z1y0h_FU$i|Q+W%ps)E!^f4&H~CZdmw3`io5DQ}9b_rr%oj zJI&F{`>F!KXpbIA(P%zv-s(`)ozR8F5%W}*DloplG!Q$Pc>@D~I3Psi0qn*h&$$ku zTI|CYTpGPL4^xkMIhn*v69P3LizI^V_91Th8j(1|zm+=(0dSCKCQ5n~R;PRolCgUL z&@gq74}Q?@W*)4<9QN^^hd?Lzmm3_+(aqdlVx@Koc8>HvANcjtMZYd5;aH0-7-LSHd|mu%Y}+jV>=FH8PNQA5D1Glcfgnr^*cdzYnqRpf2YH_d;|q@r#;!Srp&E zsclV00f;N4NF@E*>>FLQ>APn>zBI4^!zye*|JoEGV^ zAKv$YNu8W4)Bh0=$!`_KG*HM#^<-!&GvnY6hJAI4^dd)#Zhd}yaZsIy?u8U=@Ue%X zXAz$oO@9UB^-3U0JuAq5x z0vg1#5gB>I#7}`jKjXm68xH)1vL=WdJ7Bo}KnwhS_#yCz+6uXgzihks!DHieQj0_K z=i(DRp(27?{X+3#lZ3~jBU)|g{%ZorVYCpC0-+10 zwI#JH?cB?>Ns$+?3*AE@{l)JwM{e(lU-}tT_i5z+Ve7x+v3}qGar|LLWJW{TkrYZs zkxjPD6d^^~l$AZoNM%%rlD${iTNzRI&JKmkR_0}WkJIz@{@i|l{Qi61dUClQ<2=vf zxF7d%{OsdjlfWGi0=w{gVg~h9|9?L0)-0i^Z0AiUW~fZ__h$pLJz+vGEVBy=xzflE zZp92UPPp8{ic1YdIV4p5&OHb)+a1u+WS06i^MX3X<}XnCO+i%fOaJwIkzDh$r!d6_ zFI^Dlxha54KlmM}7A0rWt=QdvhbzoKq{%WgFZ3S(rtE!0O+}m8f7q@yjHw5ZYaP=T ze^Pu0fMV9(#T+45z-&&Dzju3L70LV1ba}h1z7~qv7PP4%3xKCzV6=M)sPYLF$M?vl z*riMPFJM8E|9yq!r|da!wmtkIe}}=bcc&#-kdHP_FT-@@-GTpy7v2L|0J*d$AVI7H z;ONl@2<)6Igi*DxyMh8c9Ob?4>Kimh0^8ne7nDLVDtu-2hnRat3m&#VJ*vKB`4d`j zRp4r?fMJOci$=OD{|C*IQYhj+pET6`H(1%;(4_pM{ZccYbG!WDrV8;9wE)|6 ztu74pk46nVOp3d`q`UeL=CGjlp8w46?NtqM&Xz_wD z*fGVRxJo8@JwU?1Z~ydtBx44i^}8b!J&+UEuzus@TKLBn{H5=ip;QkgqeiT@{yCTm zjS^pG=Jr`ZC~$l;pupAv2@>yHKFZcmpE>@mq6xZJQ&~L+dJDB8C+G6P)aOxLaf#k= zys8x-Kr}nc140$@=USW?lm`yuqLPqe+_@{gg_7h_z5B=9V6*kgZ0^lV;P__XE~iHb z?xPmy#1$L=*9(Cf+k=2DI`HmyT7iV}Pgs8`fHxym1KrQGk9LA1SeF;IT3eB9J0f@Q z?s*7DuWU?rFD2y?&${C>v$#g+erz0?xShG)a8i@)HzYoMo3}H#eIPJdh$~ESfvi+j z0Onf|-nTo;!O+veck;h`@Od6TW54cjyDG9qQsL&L+Qp?cG_nDgv|{5ZaF|5CY{Hvw zPU1aT%Px+}LkInZI=C=(P*g0ZzmK5`q@RP6$aPI;9HoUaTb<&uN!oXz1s@igeSLIz<{k}KiF9ah%T{WqEdOW(JzgX0H<5bnm_O|F|Kk^ z8+7V!&&aaNd@<4f@XbkYZwa*k@fhp#VaW#EW2b^#GJYO^C^x_iorDl54w9{&OYkme z*c(LC{P5FQmfek?;YqQ)Y*8`t60dmU!R{?*Psc0UW!Xl}V{sf=D_rk3GVeB9q{TkC z%pCD2L7%65CO$^*WWpHf>;K~YQ)g} zI1+%;GIy#D&&dA8M zEN(Vc>%CLAuCSVFQJiIob>2HHQA3cDWa8d(p4x^cUIThYQ!5fuc z7qTP-&JV10PS{CC8G7?YSKUmP3_KgQBGnwgSGB73UMVSWZMX1)BK@=P)<@8#kWLz! z0zN_*pKf)rMD8*QBKZCRV&!3qv;OscWHlmG6=Sivf6uMmlo$E;`}_SD+2?xuqR3;^ z!CSznO3Ra4ZLo40H`nqpia|}T{p$2-M7$a-YSG`%(UG!K3Xxo896Z*)A>={v6{nn; zo1bC+A@>umK;uV|!jggipSNxc492|-%KQvhv)aE6t=$Da-1^w6%>tLwV&#)(Z%b&`ex@$`xG9Wt&k86^Wv-6yOz~YzBU~u z)kwr&AUnWGKFGcK4`@JT?w7r&b|u0p1sI!m%Es-luE%*Km*o*97M8yZzRgLu&?H4n z`8iQ3v5&kl2}bQhgf^L_aUZqJfxut|M#@|c$baX&$q(Yr;$S4VeWR=P;|6$Tiur2u z6g%5n4CJRE`|kx}E!~wG5F5G2E&UTn#GVS=sO+axyH?>e_n_a$>UCPr{i*=2=eQb| z2ZAPgCK4o%!RN`8q7nBHjM_?e2aq4tQ=xK!bS9GAvMI)jLxvl3?&cHOUK%HP^^21P z?W)qi$*bX5QuBO4IAZEAzU3gdoY}=!PfK}A} zbdI*|6x3n!GAEaI82(Rm3Odd3CsZDCvW248y;I^GAIcByRD&S+0npNNIaeCWZ#=Ah zeoLwFOCTX3k5|TpYpj~}Zb%JG^V%?zR067=`b#N&nW+JKsz+C(^{(g&A?}Ox;4MA} z0=nl@H)0fARU)utK2V*V#)E!pUN;aJk|VZCdO&}5p`P$1WYND2ER$n){%XEYQn%hr zX~x{JD0?%dhiM%J0aAzuRDZ($x2;kdq09lvl~6ax?OgcTmCn*Bzi+mUeu2nuVC(4f z#hf{1>+NizxmOC4z2F#Om_8hemr{A=k!4(LlQWzgh)C;P(F00Wy44_U)OXavaNFt_ zNHp^95-rC~X#;MM`yG7edEaGC6eGW-ocl(CMkkT46zAQ3i4hweV z6w`S=Sds(S*&_EclAWQ+_qv%|J9L)?BNCz?*n1zk)4AV^xE86!SHl)m*GOX}y}dSOnmRUC z(zty2cWY4U##^wf-P;LvoD(XP|JZlUa(5a0wuY1LH^;^C)5YpvjI)aW=)LEwigxLmt8?hVAW3Xmf#{xAhcoH+nsADwq2?* zl`|gmFJR7zu;EEm(G%wXw+>YdW$aN1`}3mN%OBikGg5(8o(hcODd3_M=rP3sWpn$= z?xmT~R*~KBR@ymOdl;MSe6ONYNHCQoP+1=UIeKw)|6`I*uzKlgDfFHLLcur`u>>_S z)8dRq$*5b_Rq)qX*sffzrLaj$+Q{wiWO>>L8HO94YT){C?3F0kFtpr;7=~Ma=I?q{ zg9qY3yI%O+DwOrR@ay+>Sw<4=NZRz=lqTt45b6#srS*4jc!PiIa22WPx+jO4(>1}1 zZSO_e4~?&SC$5@NRx-X7y22r014_+9=`_ZKxS{+xy-F|X0S|;NSN%=dGkha#b2d{# z-3G5GZErlV=7h6I%=w-_i=Pq4J-h-k$QIE1+M)Q8jr1@0f^7U`Hom0=FY67-M1D-9 z_VLAG#Z$?j&e5E1%|bHGQ}G&Kl3)$4-}?h?m-X~&Oq9P&UXpbHfZsoBv`Hi!KgO4p zA72g2#{bfosx;ci#o8SKC2mjl?QZ(>H(QWYeF~7f!UejfIWQY-zXqoG&UdupvM*dU z%w9HK^X$4`dB5@nCm@nt`H`rIxPHDn%@_Af@mw#^o~y0C8-ZEY0!yW(Lo82 zrRjYJCk~L`I`v;|K=Pev+}?0h#*AIA(or~(%9xv^RY<7nu*T)$kuNt z59b8BUhA{w`qa6?yStez>%?9C&qX3lBNryblqixVn=>WbGTT>^m#B%hMxzg#o%Z>h z@vpoo(a{4oHjml-X1;>vEA&UaVYjvk*Cvta2@RA*Nn}@0!u-!S(=DdGq=5p{Ybi%a zU#XFQKn&tTjBvpIUR>LElG|NDq)6nRx2->0(j0OA;ZpPB_U1iwv%zLbT8rn6mi61V zNZO*T%ZkQzY#gHBJptxv0TP-uK8n3Q_?G44oQ0AulxC?0pe(%LOG!dc!Mn+RgL#u< zLu;X{J3>j`wtFn?2vN#uR}r&pVtjQE+bnf4z`qBvGDN|mdm3I6DK9KEw9e>hniS3L z!3t+qeT2doclE-JQcCBz@FxpR<(!s zS%5~|hwM*_LLaDogpq??`$|dj zp7Po9@^f{+koA~Kx1-G5`7DVmKd;)k{pjm(cuSDGk@AmlZ4A_p3b&g?E%Y8dhFxl5 zyUPma7i)T;i@G%0zzE#*W}b<;+hF#v%VB|ZhDRNDS29b(a{0Ekl;831O7m36hHg8wvxUm1z){_E1#(epj) z#8v%PKP~%2Z_jcB+^W~=>4F_l6o=nS5#jI(TM54+FgsK~<|U8IU`|O;#tW}Gxf#WK z8nO~Dva% zPnNH3uHD^qr_5;1Z$5@d)o3`*xSKhnqBR#})>fj|#6ka9ePW5`9B^op1^H46&XMqP zWDdnsoiAAPD;L16RNo}lXDV>fex|QEv6>ey!I=jmfc4pbz>l)#QvYDyPY7Cy(Ghp< zD!Y`<4371b)oUYZ8}o-(J#kLm-AdQFCF8t~@z-XrUQNNf(e`VI^{v)M%$`u!=XZrt z{XM+xrN`=tDD{aYCRA8G4On-TukY%Y;zd`!y#|n@x9FL|gQZU6@kMG`rfIF%+_#nj zEVwtqkZZ7)?D}>}yHo4aU1>3qemVw*g-T#jsRH^-wf;2v@bm{g6$wZ6cusKzCa1TM z45s(xxcn|{(}oFJKSg!k+P{uF#Rvb&^tpkTxX5^*?!?`S#rT3|Z{Z6A7v<2=Y#NprJa=*#Y*;AUtl2NK0IS+i$i zOR|EsJ{3Mtfe@R;K%Vu?t~>?35Zx1s;U>J=x50X&sys~v#qo=s6KbUxSd+3OIAI{m9&7PBj(QP2L0>T_iH`9Wb(6c;P1J=U(idZJUE z3g#O9U$HlSl00(h1afgN_Pj@*Oj1@nlcTk$r)F^OU5d?pJ(EhPr_Z0+lJO+z`-?+@ zRmSzly|;zE@ey~4hx&1zb39?>j9Dyt#wk74IhU#tQ{#T^0Bi~mA8?%>6T361lzA_j zf@Z%^RlZ10=Z);{d;AYD)ciR}mAUpSR`6jT+F{jhG+aa2T!o|Te_F`&trwfyqA_nW zs{Lm*(rfzKlUJ1e^*H}i`b`>Mpxq?%W&ezPbIw|jdvPabSySxRT2aX5iGKED&79AA zBgRm#EvPf}4&SvxM1AcpD!D3ds#|>r;MBaka5ur`)Y@sA))emoPzHsonq{YB+AzUh zzzgKGYOe=*aqW()q%Soeou4yT`yjz@Bb!kxKYOS5}eP>~42dC%9 zplY1eO5yzZg`Z!rAGdOz%91$CMqLZz`n+wv#e1c_nzkI@xZ zy${OIf(6KUUhZ9;ZjW2yC3z!CZzVb?*CiRy)dERVoPUh9=rd>H1UwkeCiA}voQL51 zlDD3&C@ceFQ)(T>1S--d3%ff2#*Av>i66(@rXw_y%?R2yx)Tf-M0jE zKVs5p%ThIt^DtW)jag^|_Rd^T&M)bdr*5rQjrwSMVe&MUO*_K3+;UDY(w^sP@A65f zslI*l%{+>|9&5LweXgr7o}~&XFD?E^Fx4rQ~=px*4|7K9i2KOuPK5$)ZjvAt2ZQaVFQ8H;l z#0Nt{A4Fpi9#&^#!>}NxucR7BdZwirL}yPWScK}bCGTC#B-C)YP8rKR`(YtkhVrvu zy?h;;;L+DCRGX9uf((VuF-{sYX|d+smKSYQTCZ?z8&f&$o1u{hT1%{+YDP4nZ}y0sI*m@ zMjZh?vAKCbfKPhuLl8NP7MXFWo$UkrlB`cO{xlHB_F=74lbS{|B_Jj|I6z}&6J{_r zRL)L}{mxWr34G-eLIS;?7;2Q2$LrYwPv48JVX)pzn-&o&EUu8`jLrKr6yjL(RB=4S zk5X+Q?fUJQDfO@Z#R*eodJQjP9$KWSFd{yM`O5D3qsNS-kDCwz1_BA z;Q^`8ppHi3fQMjKP%Z6(PL_0d4F0T$=Qk~X`OEK=UmQz2 ztKqg4pSELd>D$t;&Ouk59iEkGyE@o);mRNvBVqD(-c)wxOou(I%?+WOH=P3UA7}nr zp2>m{y*xc@#vSASB%2f?ImW@nt-Uo5Y||Jo+2#IP(t#emSlt6$Pect^^`F0MyIIGj zBmRqpK5}MXz#}$5cV@o`GKJRl7|29XH`kZ3@0V(9194X_IT^GI?uzWAR)62~iQEKN zrMIo*NgJW8ox(cl2~R_&fB(K^_QH>XiM}{PU;dR@Q7Z%Hzu!Ao=S_L8o;w(N0DY%d z61F;9i55@)-JHDmiZxiJT>YUtNEC1T4PLyNc8UsZzEsE@J;53NwGoop zZMGRU+JXXlXS^{zvZVrjC~a)Pqtn%68CY?mA&%a!wpJbNlmw#kv0g_vcOE=)gz zTq0OT><77w&f)m5dTRNpmgxK5P96JIZD};pVlA0;9U+AQshi$wd+|QfvW$i3>le71 zi|R=VD)pX9IwP=o0*v+SFhs-4X-vOwzEl#F z2n@rKNsviYaZ`$`!)IR0)uh=$Y))|? z-dpY|{|9b9+zAill1n(VEFmWqMq*Oq+sPPKIZFg9aY1c39Tc|X(#6-ddP3t`l zyk8!ZndX)F0Ix)*heG{5&RV7HUSH_=?67dX%{7H)YUaOP3+a;nwa0WnrN5T14b2*q zA$V1L#Gf%yL$>!K2z5SjrN4fOaolX!{pbZdP$_spxT#3ZaI6>(IN$Qo>B>GocnO(mR|*ZB)wO&1 zJaxbTneC!P8#}cJ+=~m@x9wLYA8n2Yx?B1D?sjaBQBt`~)xdso>3&SOO1G<3`n$ce zKB{51aeubP9k@RizK9M=aAW-24-8AY!=HmU;FSNqd8dW?s{*Y>F$JYa2Y=Hg+kouP zPIEWkUtjA|;s5jE7U5~f4(WpeO3PWf_tgDFi=S#>v15(zQ+-V}v<0b-_AsNPT)L!q z*psdQlc>+vIFH8pG##6*G-Ipi9|~#B>lz#kWFoCSrjZ1jh!jWVo54gc;~p*82!Q zvu#T0kV*I~^qeV5zg&+=2^u{aCvkzCF;^9gMir#aC0^z$9T(ke?#aFS(|cddlgH;4 ztp_U)yjQ#d!od&eELs zqn49rV0k-AI22f}0d%lVoi3DdNtaDXc1_mC;*%H4q!ibfOu?^t^!@^ zFlctF90)o&{&$svbACT~30O4|bHR5O#*GU(1U`4Q!m`-@t_X_sdNsoM_71@8cOXs5 zhULJ)2IkTBXv72@$;L_t!h?@mozez=mEGYcBmA20)-J&r_(lY#(XY8sVz~xFS?>VnOX- zOEV1AuU~GfGvn~xerZW{rfYK8ofAgx)R2nm#Gw#UXu{X}UZkX&tqbIuS$j_)eb4%2 z(6O(i>{^erL|Cx4ZxM7JnBrTY5B4#^Jn&{0B~-P)l7L?`s?~`j?ME&UD9I=n_;AJQ z3@nH{#}oyoN4YpIbB@tn7Z&zgQS&6IW6(n!NG4zzW3JFd+2#rM*nsu5nyQ zuvMj?9QkKw{yumS6F+=7?MF@j0*=daxOZ+UI1?Dp5yLF#X2hjZD@MlcU3V z&cj>pg23wY#?`Q0V19NGsw~{C4Dr1%63@gmaZ9pd4$uA-HtksxSKyync>RcOE~7FD0NLa9*Nk z@@WEJ5GlNSa1{&;EQ&F#{>;FUIp#-=i3P2D&Obl<(HCjysjG*S z5Yt1!PM%_%_9K$_{aY@1sSX)x&Bn*rvi!D0>h*C;OAy?6!(B6tG(E%uYo%~1BeRm^ zp7gS>3>qnwUncraQ`kX-{S99Cgj_k3MF=3XhxPRjUG!}*n#=;_VaeNDvw5lHj{YoC z7nGmf+u6zohVAGjET|QfY0RY^vP+(TLv2I~kS^h*tl^e)w@E>1K8&EZ$sS+pHyLrU zKRZDWIgVPv{wjADJGFbT4qGAi?0zl)KBJ7u@6Gr7Cp~Wjan=T1-IQ|PgijuZ2+)P< zJ-n42W!T8(-$U`~09wodAK({Cq=$br+?;QrLJa;2u#mX}Q=2NG=T6Xglp$*|Khxwi zM=FUEvwkwT7y3XCspP~k4SI^>e2%c#5-Y%sqe=*vYdRyTMyJ0gW;{L)fkwOpXp@w& z87}RNc~6M>B%T6V^xQx}8ptC)qC2mh|1=cd^veYl_uv`J(1MQ<&3joqQhtCsIUM$P|yZ=~`7x8n6kXk1Mog=!8xj7131 z+CDl)XEw30et1WIgB#VKgX#!w2KCyg zV#9@-nLNllw}e;@`Z52mydfPBjK`CcOBsQ#)*g*lD}V?TO~@>DQ;Xp`k6$S4jdUKY zT=2E&8CbrA(0eRP60i<`GO4=**t}sBpJ64uP=-KM&;-Gk-+y0(2R5JG*CcnvU;`i% zfq~)%NT^FuKm;7}0}9%%S&SS5u&cn)POto(xBEK5{@rv63^uvP(7QT7;H|$EMD~>& z!}3FG$^7ZQ!)ph{L%hapTQ*-SR(v0RcnpT}HcO;}f+S%JIxFFs@O(+=8PLA)x(Mt- z2M90*7Oc4Y2p{zOHSXY-o=tlNGrg>90>uFCba_{%XaCaSk$aEN^=gCRWRT=bP494v4hDkh(}WYZy(qJ+!!UE8tG z?C|5nEMFwyhfPbsakvynwG}YV6{sh{iZ$CQTZxgmhMn49B-KZ&&44hm@vJcWy>yCY zYPeGaDmCWFjARj}Y|g-tUFjo~a#rcRcpQaZR2?UhN2i9)%GbBWUz}k<<@W=xVhVge zMO?so&)o{cGB*|F?`y+$e(+U5PvSyx?80)S&-_hrW`I9%dj`yN9wCb1De$L+mCc&@ zMT7G?5BKIRkoo=hO3(^{2)q>{m<$N>4dB#xH+r&3z+tN85qdC4rcb#~jP1xuKdWX* z@gqFOBSAv}XA!7h#Rj4zupw}CviF@&*x!KsjE*&6(=EU}7;dP~4F;CXdPNd|b^iN} z_0vlijb(_BFnv(yd?QA7^7!NF@F}!XFuXcFr0X3f1t%t zu*e!})lpv%aGJm86`BWiFe*FFZKtpr!K*wl2}X%7$miG{bRF<&`c!I-Og{ZZ^cj|@ zTud(~J^7^+n-4#4w;e%0Jq}=9fn_LqvM}p-Vnu+trU-1t_cNjsI{mkeJswO0^f`l4 zb5Vq31<35Hv_Bx{67Wg-cTn#k;sKH{bl-Wt|6(5`1XKDYwl+~qAS!<^Xz@Ch57ncA z%x>weq}5OpltQ`TmS(N@(`Gt_O%!~4+N*Lw5&0yLjdf+T-<)qB*>9tIs`|>DGjb;F zPct)|g4I)a+W}0X#*xZBDhJ}ZDfgd%YmiOZr=f7gp$mDH)6`>pTe@bObBP1Cug4s8 zIwqUl51>(-#6y0fao>8krDX-%l{Af5KF3cGHFa`{iqBf;oZzba$~l!L!> z@W2|)QB-k@z4nR=1(D1xmu;vgzBxOmL0XttXEksN`k@+YQ3J+SEuG;aczBe!%sTV1 z^tF|>^@HI>e}#+P68&`BwSTGGfx3U^XwXjKqV7a<(A0pH^pY+7_Er+5MmPn2fb(5hB zlJer-M*bslejk%+nT<=4Qfv&Ae?$Da_ag zprToSn4NTZg43V#AgD-kSeih!W+lt&*pc@D@8ms1(bmQR+u>Ts)e@VuF@O}~*;w)c zs2DQtym-pkq$D=V+mLbb7e!6(lO?OdsQ%p}X_o%zQ0xV?E0Yz%)33lU)_hqN?OKo< zeBjEkw&N;aE-CLC^7qG5HR?Kfp;|W>%#EKu^KmHT7z2ycRF_6QnmbYgh!N0BfU$SG ze9{rh=+`(t!mOb~%n}srM@@NZIfJwgNv~v&QHjl8bU~mj9;sKyzP~v;)Ir76GbAmx z&Z%M0|%wzw3skIl?c+qtJXN=co)zsB^BC3O( zHFUq)L%4S-=o1G;cZ2i(DaeXdgQ&>?kp`J5XQgRJKjeQJYE!A%%Zi@z-uuTgbgn@g2=*i}C*f)^Rr8od4Z%dC`5)8{CWFw!D_PovHB~ z9?7!$D-UmS_mIEt9^;NU%%VOV z1A^fPhp)_K7tHTuUhlX_YYeV`Ipfp5q|D~yO;DOxdnONc;z(=?cIch=P((Wp`Kh#K zKZb+SAgRV4b`4lnez0pG^1atp4YI^&1IN)JTQKx4vX}Stte5d6FDS>NCt+z79{Nu1 z4&*l%be;O-?5n%n4695Z;X1i#wLHaX{EI!ieAF zkH$jMyYRx*I0}qLOm{ZbGW`WlN!?jmED@b&MG$YP1`xXe`618G;wUrt)^%tga_-5? zs`=c?z$Lg9VPv_`Fdb~B8Z`*7gCp^?qM3uXNgpq&o;9^=NFt(0EYg;Ih^RhYkHNpr zy8Z#;f|C7Ne})sXMZCP!!YM$)0%z;jl-tp565H1AbLPLDvRmyV#O|SEyj&2Kz(Fyi z9e@GyL*qZ@YUMMZG?j;bC7FL31v0d%r<_c}uoV@vhCn~+|4IycC2&(70jqQv>1)#+VJv2RaFuw6#Q;@(knqTHk0@=`k`0hJ!kWU z6dPdet-F!FDRqHNLgNfRLX}b$l+&n3Gep*xs59UtP<&`gOzEh1+m*o&6o>AvQT_)5ya z5(Fjqy}xlTs%A9>yj7B;8- z;;5Xs4{oiC__;h6P)y{P9Fh{i9j^g>aw!Op8mZ8Nbs@)Cd+9wiR(u^5;F2t+^S};Z z5#;L|eOR=T_Wh6WlV#%yPnJJ>Y(4HTcz6Q=1$v-$G9YDjU6o8@jKBuK_spuU(R-vP zOhBE2(=WEhfx=gE=>zt99NK0lWWc0r43s6qoe5IRLI%o59*I>$WPLJ9MxuHl#DSlm-=5vG^~DYMb7GC8u76vQv{!bcx)x|1FXZCR$Dpvh!vEFyKjsj z$o6*t^tz`(Y|3*t+hm?iD49`DHLNo`2DI1>aNB|bLkp78=t0*jmdi|pFgGUBuq((F zKnz9{!>B2!yR-S40>i0%4a_vr_JtDzK10S_v^~nm?YjY?fF3aG9#=fKx_&q&hVXe3 zn<+BUtbh{ArY{opPhuokSniI=mka;}QS);cO*SfE)L8~yDr}oAI-sCO<@Tv|Bq4RP zdhr1KIsv1S@bpUmaUY_<7E!|ocRUomhq1T{fbqHvpNEzIGYdnw=jFC5Pnjq%iv?hU z7K5es2NEU-uW&)c?75+mJn%ny=0fhH8h;x*Aa<~IUjw1I?L__aMJNUT^_^*lI?+aU z9u8MWJIXGl!u`3G>a+E9CZ;;e2_3RE^&$U5^uXGi;lW5OG`#s*GVIVMpV3 zy|TwJevh+;2k>F$lv@s(9HvvNI%(05?T>|981;m~P zX1`#)%%h!Xi5`>ENGYE{9VwY3`aLiBg=uhfm_>sLI8ds{#C^Qew?>eRY%(9x6iK!# zF^o7arYO&#qz#IASX(@wzLF*=;I;JjVBZl)O}#9Y%DRdbYhNA%gP}(8e=V06(Mmv` zxah$jO`pD=`JhK<`RlS`J$o4XT{rEgqE!T$Dw1KZ;O{LUI=aj9SJDbtO#>I30Mlzg zFW)&GUj(ew;WFUlBRmfGiTG)z1UP}>;1GV=L1b?WQ`p>x?H|`~=dkgiw-=>0yYOJF zZ_LwGc+SH-l;(vL3ClC)uaCeAsMOeNs{!?m@L(ils7)(i7*PQ*RZmQ$GXSGi&|ceu zhrqHr31*t8L+Lb7Xz^y3Q&9o%SHhm4g#YkY#T(!c;8qX#tJwkm>eI3e+i3;T&I1vy z6iM_Egds*ERXpjyUx38)MWCU^Nj^cQPBLq#e=vCJc=Z3(R=yMxPr8p#iR&R3T?>kH zO0vR=z3;`t)K|}s0b6$%ILkQOvOmY(7lG~iN?Ftvlvrm)fKRWNZ~FHT{XzOT=sO*e z?!Dv?j!SpU|Nirfgko6~U2#SoU?zCa(g17HKte<{lj?g7?f!2vMpOYtH_9ty9v4`HSO0|gH&(3~6@Xd^oIBJy_vrsM{?J*RYCtiDB<0>qn= z1wmr~iBorwbfN{$I7wDNafWtW5HM}&V?a}6D%vvnkuwF zDHBh}sr+*s4%GF&dSsZl2xmx$#f6*fXJ#Lrkrf>)d15*{NtizXL={W6Mv!t113h9G zB>({QJ{L=lH9cVTdp&5)38#AzVgMmFLi;Dx zEEwfJ3O0#b@Lmba~{xXCC>*5?Gk*aFYCdffUmm(=*tY1 zD5^J=3SqEdwVL{<10H`7igdDq6jOsj^YHB@@BKMZ$C+PHB8V>yvJmCbO zLj{BkJyFSsXle}Sj#*csa~;F4;wBOPJNG2#TR!|~g(rp+T89nOZ8|vCJ1!|aWazZi zK}>6=D9Wdzm;=^@;r1{g#>%hj!TnB=%TV&5NK&8^hl>%eiW`O*+D+zc<2F>xp;~k( zyyvZ|*X>(gy(C)z{MyE%QQ%|mfqwN|XSX`-KD7TMb+lF|7#CCkW>79mb+sOR;2(}& zEjBK>vC&?`YwT6Ri!urkyEY44+()Vx8{yDhViLW&9n~AM1POmrD8EYt-2APa8Tn$i zPv-3~E3g-b(wiCF0St28BWtT0iu0;E3)hm*Q)ic893Wm&?hPWB{GoF%CEeBG>>376 z{0I~dGmjrXwyv04n|d*|rrqHQfp9NuJOLf9a zNhShYIofcB_T&Awk)`)u8Uf6TKtDUP0uf>4VbHLMkZWk_TO1tyRI{ySslP5FoGW@T0YBa5f zZF{0_+Gwf*Ops(`1CFdjzMh1kKP5zOx{uOzX=YYaSk=U*llq08`Rg)>WSmfzL#1#( z4QCHARYRiQS3MqHS}KRL>u0|6Cz!D+7;L}>JN>cU`*KG}QlvXnhRv_vyg3SGZ%t*& z!cMdQSSo)_HymM>b6`PAuMei{IdGS5ExL|Dpe#Hp5eR831iY*R^aj?q2^7IOeEu5U z!fs1*&0Z~)g!k2*M`sT1Sr52?7J`+$L6ivn;hH@ZzgrF;`3#(g=5r|h(Sm1c9)qGY z%H4C%1iC14Lx)zO1jL?pP4wK|Y~C7qC@EMDb~rY!;C@}4?IYJ-v>CC$GB<{j<5B<0KAkeN@hyN0Z+Mj43C>U^f`G8M;)$ zMg|rYC2S{GP5^adR~$r7HW%W|PrPWC9C7(+5_tPfD~x9b{z54-3^24+Bj@OLhQR!8 z<@Fd*^Q(-{e@e)Y9J3V2WE0ZLH~qTrHv5W=F~19}S;Y9p>vaDnC2*sWp15$tso(&; z5#T>8B2~p7b7RTsoyCH0_-4RLO}(AoKZYs)po3wUVrW+S2Bp*v%4>WdvyR-nhN?de zw(#QjiLiKXt6?_sm!M@-t`eOP~)s22(RhR9z70|sZ4b_I?IU<$`ezcjk8yIdBEda+v)gs)n-tz!f4^jbC%rt^Ml)m zSe<7Hz`W#a8OlL$yW|P`hA`1_4EwCXnsApr+Hu!|MJ}66;<5i zqXwYS`BFb$SjNH|rAXYg=LJpEy2u^S#V+J!%B@n=)YRooIS`Rj6&`X-y!!{{-Ulwc zv5R`_z||31?@v4QCh;OWBdVZxd)tcQW~)Jqwyw9+O;G^IQ8{cV%^?czl1F)IhtARt zu}cDoTC^Y+;u~`hv_d-kSKP1BefkY zJm(0;6@S*b&0&8@hqfjG?1l#N8Le!GG}qgh$eDnCQd|u*gg$C%@uNG<0UOH8r=(^* z5Cihtn;~awo7gda>Bipq$AD^66+xzMTb7e$DWf{&)gq%-E~h~+P2jh<7FEOZ?(^xY zS=?cC3o!08Mq}2w&=shu2Oq-*$iH7+n`aDr*HrUTrGALZc6|Y_$5w1)$>H>mW9XtE zo9xU%K;Xv_y*1{Qel!^p(_77BVftIqp4gw`&CG$Yt8L}s0IvB3O)0|%K>d142siM=+=(B9{cxYUNk4%6eMnShHObOs$<>pHR zem|rB`uzrAIKwCn)AP(~b7ihUi7Pb8w=*0~s?K{1Ia@C5;B_Sjx1-Hrc|ZSoY)dmG z2!DHKk6XN-{u22xma!SFyhBFD`lU0`=-*t6<>Hjy z&(Fj(Mg(mi`o)5m6oW}hPPyz7X{MA;%1y-daDV}Qjj5i;j98K_QIPIoPOj0F!nAJ@ z2L-dA(uT1tA)o>{l-s=l1~zVKrYu4v3*BkdW_?X3I;$1TYTZwEy^kTGX1?~*?_lOq z`yF6Z_cTH&OH=_DsthD69o+yJc$$jg#u-XaFEn30EYhV1$4eufiN;F!J-64ol=0uL z!7U$3*ib0mg0$ZSgmPxVEWQ4Q@sVEYX(YiL(AP0bA*Yssj$a@n(V&1MQ-I?nSQh<8 zZ4pet6_z!R=#=MaUF6h7I8TZ2w)r7nAS0ahyhVYTic-evBw15Zi2Zr1eE~zpCMUWG zF~yUV^0zCWd3IqK7^`HOL&yR$W-HmT3pVzX5hN#xr0ksc0#`K3ayp4 z8Su0tT8#LBX^}iZ^l1DPUGNB{$nf1N_0@nwSW_J1w+v-lkn$It423e~Duu+}TAsJ- zG={}*p1F+Rg%yAXK3ff!einl_bp-kjm|bFHa4yUt`UvVGD?k}hj_mV9hd}eaIC>Ss zxV@mfjRnpPFETE91*ZDQffW%BjJ)Zrt89()n~9VTlXtWRkLD=EYUh}c~U`3Hz2 zOjMKok-`hH(08XL_Yvo3JzC5q_kiEO-wD-?wR9uA%Q!U4(}T(E(j5#-jsu6*as)uA zJTCxL?|o!!#sDq)uvahyZWWdG29RPj#v8>Q!=yW4>pCAnAfMkS_ za_G1=+DI@dH*NUei1k___ECk}V-gnc zy@G=DhmFuBPeN|oFWaiMoBfrp4(J;a%K{N^7~Y=|_@oPxX~^lqJKBgDv_p>`Eu z-)5Le!G?NFqXp_Mg97nY4VIcG>8Pbg4{=blp%FRc21@n(UV3C8O^{HVDFo8=zmcuJN%@eBrg#wORB-tmXC0c{qY5M!zWu?)Na$WNvj0j_HXg_$ z0ddT>jmWPLSUJ6=fsc5k63Wg^z&zrfUV;pX%2PNgAC&<5X`lyamJ6~}J~aiojti99 zVpLdINKd-s=JNQ>fk!J1#}B$4m^RcucyM*4{%ADdgkj;%VDbckm?B_Z#7`lqvjR*X zNh8bDZ?K6xnSRLx%rau2nTV0FAlC{+9|D`Vcp#NE!+|+zO)B$BU2^jm(Q$JB$LA$6 zRwm?@S_Muz!f)kYDX%d*0r)y}yati0gdlKI>?~x!&B36_9(k}L4{rn5Xega<{dsY* z&hX~L&jUbdCxU~fz(eaC3>T?&p zCmg;XE1F@_dHg_CTQ_0F*v(zWYusuCk@$-Qyo_2ceq0lwBr`4;=8Vas51sw;#6Ir;U zHr4!<`XAt0e5%31$Yuu;e01w>>2xOipz{2x)sgU{0Jggi>VGjzPDxw>=0y>2NSPeN zN`#%s5uHws`}2Z)ndfO~m?D+HR2VVJGDvl`bP@ZEva117amXcbP6gOAoyECm+E?XhSU1>5uB!&xYb zZN>5TQjFMQ#vef|I{%(T?!PmY#^YJ%@n671C`~hz`OE#btJLjB>$pLweFE~5J_RIt zp-vw447UP>PDJ1FgcD;CqHiA`4LphxdKvujj`!?5qr9L{dNAyV920iIhaYz~8u za{7;47+<}Xkx^m?fV{B0jZrzX&^jM?n8wU!*ijmLcidsrqt}+ZO)s% z3DA}^nW3X(o%e8u{b}9QnY@`m!F@MD)yCsqr^8cbD=vOj_<&f8E|8J;XO9RYJLJzo z&L`Ah{zw@BHumnQtCX+0SAR18$cN>B%4!EqjSxdp7lLnKp|K8Z4!`)wqP6LL9FiL@ zC(ktAUii%q8Wa2|&cOzVH_j5?WAeWK#tb!%hb7ZhC85*r@8-RD|Zm&5d6q14Kmp5!F{!qEjet60V$ z%d|UUL&yNDTf>81A_Lz*owE7?w-o^t%PEP_y?>e0`fNdd$4NBERdt>x$^yo32v@(b z8ox&q2URaI%Oju@`pp6Lw?uuS;he7B`cHKh;}{$c<|&_o_#Z zCIn`S`ZKgQjtXH?k4g)kKhguC99^6c;eH& z&>d!8a!DPf#3dO^!Xe<*-;2Z80aQIKF(J21klY3djQ97vo0sy5S)!F{0$!dHX_E;7 zxZ;-5CpSm%s&3d5prF8#YvMf@EjART19?P1Cut`xq*Io_V%`A|wXQ=zqoU9dbTXfkoP7A;Je|PkCd)}&s<-$I@R?oheUua9p<6m%Ab)xoe5su$S zPzq#O4Hf6;I?jB8(~#78_&jEs#pNYwgRUYTo~MH%Ce|phB9cP{!j_ zhLk4SIGVR8l`&~FG-ys5$k2cyissslng{79DV%7I=7h%GpmuY)&wJ;7f4_Uzx@+Ba z*WG{dX%COAPLj=K+_L|Q+pB-Ue>*pO;mw(;pDPnvWg z@Hy++cx?fnbK+P*rQ-bV0?KKfTVD_#sd~P|X#l4Ff9HSeLBBFQ*kkm* zN8Iqqn6O|@(#ho7@I%~$7(?`ah zKRITPUR?U=EmunU^>c9yUtF;~TZ0HQP%iGDDfI>EGdI!2FasB+qqMV1Pw7Ppr*ycg zQ~W9cpQYsv-dTORM6dRS>S^D%)WqnY$gLeP&gsQ>!uaq>iT|*hLg`VuD^jPnwp`As z1(jc;;d^dK2y`@PBBK)=;aKMLuokw^_vj@@9E=vsjvN>-6S{h5_R0=GVg$F&Bi&+P zw;Ov}N)}LV*1=lP{O(aCBsU(J-lBLOOubsz%FNe)mSqXmj9ARfD||22Cd0HMeM6LB z5aF|smQ5ZSc_pNMGS-~1u?$IrX~{8}rME+i881gZw#F<#cI-`A<9>u}7srBzMp>|Zw8|6CMYR0{C zk)7GB^*Lfg6dLK);9S4p9_#(o!7lvwx}_9q>^b*=Qt9BqIXFC~eX2ti_qi*%Xfq9@ zbLXdm-1I*JsG(fi?6acDaFnc;Unxzp&%Te=D%t-4Lp-Zp*@X6P>em9V zB>SlLVhYvd-5j@QqMrMB!*=FWm5O}6xm?00M`8Vmh%lq0E8$~$ckQmmu3V>k6LsR8 zM>92w1`>HfrmVGJoS2cha}9l0YvdVY&Aod@)_#+wj675S<+xQp`>*Z9eo{N)WIGWyIt+@_}X38mhK?ho?-VE4po+XD0&a* zg7lZRj?K2(Y5Z&YJ4dP;x zU%jMl+#8{kcVBs>_ z&+aRnJAPVs*{Tf%z73jXAMHivZM;D`%Sha+0+w0n5pDqa2pFZMe7j znQhaCQprJkj%xcQXG+;ApfDNjAD^gN`DII!r+-kZi9|Umw-4I*6W^!kEe>hGy3>ca?jNmL^1Y4y;ScW*&TW2Izz#e)OnoD#eZ~!e^|R#~r-3?~ zj--r_=@%$k9pj`->n1EX|F#py(Kh10J&RpI!(1fF*pi!>4 zq8qJCdmx;?&Ok|%J(VgrU}--CR>sqO7K^ia&fhr^TMdZFlg?=vWeIyfEKb*u~MtL_P+8c+%oyeI#cRH0K5lG=Rw1 z07iS_J8i@*5-EDZ#O)miHIw`kH~DuGm;=3~w6H-GaFfrbpMPv5ZgEX0jT!qwxos<- zE882mp|#Zo1gncBn5%I#W< z6}E7zbc&NWxQ}&=Xf9{*o+9Z0kb&X)In}sCgA4z7EU@37$&k%B=r+@3torolN|D17 z=7#DcGe2DK9LQsMsyP|?+|Im9ZVoYiTsXA~(YkXnSaw@Og)bJ`_s(7n;*1)219M4x zcp$~ggD#oendUaE&-@3c@?w|vc~9%Xv=Z(N;VZPYLQsy|hnnq`)Xwtox%7>3re9a` zJ+b4GPsx8t*CVXMrd#@@s>YlPGgl^xY#@a{X~Vuby$one)?&H22z7svR;gc`>&s}h zWtR!!i^b)O)iWT&l*2) z){9h6Jr6UfXel(U5L~NM1Kn|-a5We_}VD;IeRASs zp?yB{+Ir@;H2|Y%TPJ+U1SR?J?xjC!CQ)lOyY6&KUYGb-#0-Up6!_xU9PkLqJcb+f4el2F_CgomU7m1rbXU%SY0HvZg`AZea z9Et)~$%JG%9iEu!#MUY9>#sk*IBWIUBSlqJ6qT#EMRbB=oa~dEro4x;gCu{AORl`Q zcb)4Fv*`(TD__s(-pdJ(FGfy$nnfi$kbLOQ@oc+XHN}Ise%P(qRz>b)t!6T0vguEE zj0#~)la_0LSde1mWQ6Sg$2&SGTD+eAi?pQ^4&F0=^Vp$FugJ?EBWy^rn4Ki-v}F7B zP{Jkn_e4oKs=b0eSAX>LuAX3b_dQ;+N^cFh%3pZBK-O(=3taVUU&r;sZnc@Z4N>R* zdTMVb`zDgm(?V-+eZMUE^Ky5-ty{(0m0Swrfrz4 zrP!aoYbTmi^Id&wCAw4s!Kij_ra|(-ey2lS69CdLMro$H$WSheg6X zaUHF|(~@%@OvL`|HEM|Q_%S(WH#xmY`ROI499M9mzc|z&0u+QRIOn6lbBeRp|2(qZ zTOpeo!X%RceS83BH5iDHVpINn0kuK*b9M+db?MCZF})R3`Cg|$1kxUBfLCLhv9Tdj zUD{4PMYnoN6T{gtX5vqMq@*3OSzY@s+gRZAn`?fYeU$A_jY&)C^ski`bW@{LY^y3IHCdA(76oK@TjQ8L$Z+GC1aWNu<|1I#(7Y$p zYNLW4XoFg4DXK!d{;n{IyQx*o@`=@SS$f}C14t5$!8we~#-G_?KePausUkRM_L(Cc z8DQ|)J|42`7~eA!(00DKVLD{#ev^Iv2uXo$Qvln%!8r=91oR+;K>xs~D|=Ux@V5Ko zI~;$0tIXz+mLJUK3DQCdsEVRar5oVYzY3b`bL=udrMlnzo;^~KQfwT;X0(Cd7p;m< z)0*29(btijE?h?OunkIi=6qms;Mw@}-ML=*x$H3J!cX_dhtNL$;t)r?a(;r8BeEA< zzpI)>fIpQ|{`{=I=_gwc^I5(jM;rMF2ZvQt|V@@Z_Nny@>OE-Uaj0JBwZ8WiN z#)-3Otm@Ua$UPFB1y=#t*tFzlmHV#9Z_nmh%V8e9+kMW(Mrv5*wr_0I(P%8i4LWsj zr7E>TU#fl~Rfg%^Lky|(_C*4$8*^TRnoa_llHbo36V)AhrG-{qwZXE>3`@3;esKN} zywxhqJ={v3ajYeI&7|$xUbe^)i%rFNpp$pb+69y>AtTkT#N`v-N&`;Fum+VVbRat~3j%#EZ z0Xo<9NYTxGKYYY3>Kh?OPw#FmEKo45Sl_M7Q$#>wf;IabUu9cVGFXD4%FXcZ`MJM= z#!EB%=HT`#dv;o|$5E>L#i7iQyQ6qaL}>Y|G8s{>Mrz_~+QM|1M!SPKAj3Ws8x({4 z`uOCrq`N+NWGQ_6z4>v)k{ORs`*-C$`40Ad2ey^fbk?lZSm#e1tzEOYDYO5bLu?!@b;=GuGIloqjs3O zND-&1&!6QAZ<4HF(S6g+mgq{n={ZJwmxi&DeT?T)24HA)fL!!aH>c*6GMSKq?8jnO zRAYC?qP`CsdMfo^{r%4dp-Sdv>O1GAjt^D)wzDZ@n{Dgc+&`>-Re{aQdBfV9!iHD` zDU=n|yWO%f9b_2Cx|NNWxt{&|Pu#)SMyX>XjUL8Up4unH!#{ zuyeiE-oJz<8QCd4fWI4+^*3o%)}|{(cFWFz0bo#iOE7kW0UkXt6UcdpjD95u#5f~1M(|1+ z_&kFTzSZpDgo)9*HNXw>a|EdSxEiVg)^N3HdsBC+_=6kI$_yctIHo8c#p8*YRe(7(>0=~5ncMu6&t5SohxtaYJ+Fki~W4UfUxm9;RjSZ24R1X_<= zNE^^mjRQ;+uJ3=>{m{qOilYOW& z|2VXZFC&#OU>r(x+}~5pHOmA;tA(<8RxHs(RIXUKct@wx% zIHWZL_pl6$O{p6#q_=BDwGJ)LD3$yVYPkq~2*eeswTk1!_Cfb{?{lfcS!a8F*F#;N z9S{xiBC*s+0m~}|c+OZ36oIX>Voju5O2n4mA)16@!9bLIwr;=?y8fgqsz<3YU>xPK zdt3HM|JM)Qe|6GKdIw-VN;S_j=cbEPPr*?7b-G)g2~^+04QXEZy5swo&w8fLEyFiv ze=(KGqHmI^+CD>!vqlIRHCExkumMJj&`xc7qh%Hm@WCb^@uCBBUvFOB)z~gw<&bc7 zg$5vZc8E>shu0|-IaxDbEF4-_pP{C?6pL0qnu|a!qtn0 z>w7a+5&ZlQ3a^CAK&gg&6vDklF}u=S1Y(OwSelLbt9Q`fp7zNu6@4U zNo7B24%?HoMUC&q67+A`zh#CQ*q*H0v^SMIGJ>!1G7qQKcAB=? zPmO)O+)As|`JO-x{wZFxP}Q~t?gTHSMZERrvPVl2h8Rz`;;Mgkw-P`py*egMI;7#r zK@Yhj_0=Op3+nJrGDKp_Or;(DijuJZMFW1J(BMR3ov1T>2ptR*^~GJrQ(DI(T}7(q z?wL+=#2x0_PvNEQ+@v-%IZe&yX7o=-cz6x&PvBHpcm3na&20OotWz#2&+wMSadL*K z(^fcY>K^a(T@}eoeaPRTceK+)qv5rG+whS(hmPZ8bxRa^kHbmFf#`*>j1Rt)9iGPX zMjWy)EMZ_-e3yHK?-0GU9|+$H#c_}R0D#w!i`^0yr$kqRooNJNTw%*kw3a2{utYO=H1dv7SV|CUew1iz@`L!fCOMc_qs!26;B@=0cXJqz2R0rcC4gR}Kr`1oAN-zlB|qpv^c zZjVBBC$D$KEVLQLPA;BaI7N_`vf9vfrNg#E5mFWoy1Z$9!U z0RHaa-rY{Iv0{A>pNmAnSJjNSfMxMg>i3f$<;6Muh*Q#UlV0XSY(dEO>UHzm5fD!j zfHCHq_D~==8(Udl9QkltgfDjM5N2d1`nQ*|-(L8oB`Indge27Qk%&i@eE9@p>#%c6JngJ4Z z;FAQlB|sDc$2-G6`0lXwgqi~LEVs7@+oS1azItd^qLck`{>&}{5r5$Y{FYSWKg1lu zu)sb!hjnXk2$ItU2>2w@|H7DWI;C*GA;&;ghlLlwLrX#Xs#WJo!dK*ECY^Q5BKF|CSK0igau!#x|u)ax2 zV*bCO)pGoYA8hKF{}?NBY^+l?>Xu@?3rIdL8w8yyJapFO7Rx2O1A~>rCrZnZKO6ma ztHD84lKTVA@B8ULVmTGbfU)^|#}gU}9DKw!V0hxJgv)~hf>wKU`d8K0>TnN$5f)za zpJ(YZF&K5LqOuQWGQ!Iz8MtQZ~c8)R^zg4e8>+w zBXa9{oFcz9fA_QWwErZaA$~aYi8Y!<4>7rjJlya%!HadJHK2&Y;P_ti`XtC@$Y#%* z*nhZrl7AD|t%VzDugjohJc*>581-P+dCB#Z2}=&W2Wsa#!}~&z#ggqqWc%UZEj^e4 z`#pHe3Eb1%((~tW0_TxRmSb?wMuUS8HpnMDVefK1x}D@LxTD~C@}G@pqLP2#T#Ow^ z0PMAG<3@M`a2vU!%KLo+$zBBLXb=DCFmSSgxQHzwpWubN2}d+!_QZdiOHgJAOg_9= zfk8WS*E@h8OQSNtLE+Wi`eaD%MO)*d!OdMh}sZYHT`p#0t$YGV>#^tS-7Xu1mk;hGv~m z$98RD6ZoYQeP_m*b$&K&ffWPVODw*v3Pv+shHM1Y&v#jt1MyyAm zi>{Y&CS;Y7I`R(|#p%RR{j87ssS`}`t7_9C;Pa3jdV&>zxUh*SZC@!&2&=G+v$^gy zN8ft}}|@6QJW!aAT7X%{$oipi;th{_MZw zKjNi46j(Z=q#99*hK^N}xvz1AkA1o_(XxDFG^RJ$aQTvI2D)`6djH39~1O zo(CfQ!f%6gVnDld&tiJ|`mJJ~F#R%qKAg)B;VWq&-P;!&8ooKE;5WV#hbtzxNOVG! zbC=9aCrU4Sl9UogrLbwyURBK^y0o75^BdC3ihVDM&BC3gek*3`kz|7#{nN4LsSe-b zpf57IcgQ$y{{<94|mUy|RaA>a^L~SXg>%t1p9E&~uJ$8dMos`!@<`fZbXEIw5d=k55 zb555mcEG6IKa;m&2R!~+H^C7=8fX-qS1yj@a6-)^7#iFpu6M9gH_;rrvtk+^;bTa~ zKVK&M%n`aGf>NRR<+<`7yI2SuD??{_xmDjo5@f1+N{=fN!>y?`E%k_R^6Xk^SeWyO z#U#npoZgX;ADgz-jQRnV9;5@ z$PyB1j^l`_J~DY06$YeW@VOKQpO$X`yleN@g^!twV-V@C5}kJ%rkI-x*b+NQ`3oH! zik$y-OZiA29twO08hDdNs#~4@j>z}C3XI-{=SA2_J8aImA$`ESA%$VILOIQzVX#z= z&%P(%{{6F`lHCb!nOF!ORZpZOL4DRLdHY^_6!IwSwbGU4F6ZK}-SDT%G{d$SplW%` z^=CyZ%YKHiv!=T!Z4qnHlD0gJac64lu_ zx3_z;GJsE5KR%+Jj=OxUSq3cCI&=^UvfqeLY!YInG6BdV*GPYPt**TV8d%c_t=*AY z=a3m#<3zIpCryIBX*iK^E+s7lY5Zjap!lsMcIjbi?ylzIO{qfq@9KP z$7eE(v{FqfFk1Z3X`pf|p4= zh^>demJ%fZUdY1&uM+|-%L0VOu$3mOIdPN#J#8?L1bf*V-*&xRUqtu*pAGTv)ZY#9 z4&q%H*4qp;?YlkPZW5b6L%P^3?!WJA*w^MNbx|vKaD%#<-*e)kv|)iJ{*(Q3wubo? z7!O`#ANr~2Ux5oSZP3!U+`Kvr4l@zfXL4&s(h2i@a$F8u}Jx{GZ z-QeC^{xPxaD&{8-q=j)hCk1ZnBj#zO3ruFX8{uwi2B-d|ZuV_kg+LMK=q^@8Ls$kr z@aw#2U8mA|*pG}tN3WrcPzG8<%ZZ?fA&Yzj_&Z~^pTmh3Y) zQTE$k4tZLTvC$joy8{Ww&nK%}D}b=P6cDrrfIOy2KSYbASw-mA-r}A)qS<9p07=S; zI2e=cZ|fdO1D&0mqP(gob!Ut0*^CEUE;gx-A6@W$mNJ` zA*FE4zyVD`#t^HC<*!hEm6dBhzKKPKNXxhJah}Lha?3Q9FUMKwA8VSH zG<>JUT!CcR@L3Sd>B{9B_Ag$xx*Z!t`%YKKX^MhN&~~Df8a=Jcmp?#qC&K8t0(0Z! z_t7A8qyUr{KWkuf+{)LZVWu11&{%MVgfCBN~6ec=UA>~SX-;Oww(ZNT?JknO(bPpd=lH3ordwQStNcE-0 zJq-c(A^3B&SiiY{PVGpSe$n!x(>+MhtZSO+T|R0j5QzS9`tA3YwGmz0`TCR)Kn zJ0Qw+{`%CU<=nrXS(ErhSpy~>yR4gc@4`}Qag82!jkZ1hVysy%6+dPfyoxzH0UIF8 zdY)&Y5%d$Wp%>^&ejwdU_Pt483_AX~E^TqmihYqCtM@W+*XH=GV4S;cDzdy{Q&hs~ z64l^KSjH}+xqOdN>kj#*{WIC9+k%(qSJoK>4rnU#iEV+^TkOL6PTgnAXxb-nN$m4Q zd`%r4;hk-1D5b^Gc1)-8?A;&fidGH85?16FX#{lxXw^^-Sz;15EmSeP zWdB4+opMtG0$Bv)(%#V7_*BAl!G1UFBvl!gA8a>KtOc-GiG1jaO~ZaoWq;Y~^Rv?t zU8>_JKB;5Wy9&yq_l5VU4J#|oZtu^#V_Ru4ge8M%{IJ|V{E3;GGYc}1Z-k0C5RCcP zR`MFxpSvw(=>pSl`^1~=E+;(BWT{ZnCyjM?B`{ic*jbycyu!>o+U}2FNb$TjE3s+1i;fK z0Jh6Wg4(r)mn(&a+QL84{v}L;Vi^V25 zcFU&E0Htoml}HMTf(v4H6q*!vgF;HLWscnOl#!LE$@+%IneV10snXM75KSI^@?aDU`Pz$W#0Aa7SBU0E{Sj}DbVba3owA-X@ll*)XEOoe;4&$HBD9f1Ft^=O`%fwH$Db$Q;X%7;*0c@EhT=dx%y|HLb4inn zD8g!`+5gMb(Rs$f2$;@rpOEj` zo9eluD&2EsmBvf^TDud%xUDVaf6k@TSLy`@S@Rw4{&Uh_w@LYRKrp}77BrsgeMQ?a ztDf!fSN7F&Chko=*HAHU{hJQBh3i0-ToqKalF_?Z5RF(~=Aa&+BkCSD$=*GIOvKQT8b$Ehg9-h?u36+dRRw)ll5d#xBu@r z35B}d$)9diAjkUl0132*;CKT!s6xQrFqXs97b1e|{;HHMn`m z4^hr-naA5G0WYwV9l)utBgg6K>T^~MTZV( KsHLc!^86qDAzAeR From 7111516b26b1d426043c17156ad88984a52e1a9f Mon Sep 17 00:00:00 2001 From: Marcos Barril Villaverde Date: Fri, 16 Feb 2024 09:24:40 +0100 Subject: [PATCH 26/71] Minor fixes --- docs/src/04_solution_strategy.adoc | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/docs/src/04_solution_strategy.adoc b/docs/src/04_solution_strategy.adoc index 2378162d..84832e17 100644 --- a/docs/src/04_solution_strategy.adoc +++ b/docs/src/04_solution_strategy.adoc @@ -51,30 +51,3 @@ We've established the following organizational guidelines: - *Language*: Adhering to international standards, the project, encompassing code and documentation, will be developed in English as the primary language. - *Issues:* All deliberations will be documented as issues on GitHub. - *GitHub Projects:* Employing this tool, we'll plan the application's development process, utilizing GitHub's integrated features for efficient project management in accordance with AGILE methodology. - -[role="arc42help"] -**** -.Contents -A short summary and explanation of the fundamental decisions and solution strategies, that shape system architecture. It includes - -* technology decisions -* decisions about the top-level decomposition of the system, e.g. usage of an architectural pattern or design pattern -* decisions on how to achieve key quality goals -* relevant organizational decisions, e.g. selecting a development process or delegating certain tasks to third parties. - -.Motivation -These decisions form the cornerstones for your architecture. They are the foundation for many other detailed decisions or implementation rules. - -.Form -Keep the explanations of such key decisions short. - -Motivate what was decided and why it was decided that way, -based upon problem statement, quality goals and key constraints. -Refer to details in the following sections. - - -.Further Information - -See https://docs.arc42.org/section-4/[Solution Strategy] in the arc42 documentation. - -**** From 1959294446a2f29afe40480c8e41c2e04e39a21b Mon Sep 17 00:00:00 2001 From: Abel Date: Fri, 16 Feb 2024 10:58:57 +0100 Subject: [PATCH 27/71] =?UTF-8?q?HOTFIX:=20A=C3=B1adidos=20de=20nuevo=20lo?= =?UTF-8?q?s=20ark42help?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/src/02_architecture_constraints.adoc | 30 ++++++++--- docs/src/03_system_scope_and_context.adoc | 53 +++++++++++++++++++- docs/src/09_architecture_decisions.adoc | 30 ++++++++++- docs/src/10_quality_requirements.adoc | 61 ++++++++++++++++++++++- docs/src/11_technical_risks.adoc | 21 ++++++-- docs/src/12_glossary.adoc | 26 +++++++++- 6 files changed, 205 insertions(+), 16 deletions(-) diff --git a/docs/src/02_architecture_constraints.adoc b/docs/src/02_architecture_constraints.adoc index a4253121..fdf41026 100644 --- a/docs/src/02_architecture_constraints.adoc +++ b/docs/src/02_architecture_constraints.adoc @@ -1,18 +1,40 @@ +ifndef::imagesdir[:imagesdir: ../images] + [[section-architecture-constraints]] == Architecture Constraints +[role="arc42help"] +**** +.Contents +Any requirement that constraints software architects in their freedom of design and implementation decisions or decision about the development process. These constraints sometimes go beyond individual systems and are valid for whole organizations and companies. + +.Motivation +Architects should know exactly where they are free in their design decisions and where they must adhere to constraints. +Constraints must always be dealt with; they may be negotiable, though. + +.Form +Simple tables of constraints with explanations. +If needed you can subdivide them into +technical constraints, organizational and political constraints and +conventions (e.g. programming or versioning guidelines, documentation or naming conventions) + + +.Further Information + +See https://docs.arc42.org/section-2/[Architecture Constraints] in the arc42 documentation. + +**** + === Technical constraints [cols="2,4" options="header"] |=== |Constraint |Explanation - |*OS/Browser Independence* |The project must be available to the maximum amount of users feasible. That includes support for mainstream OSs (_Windows_, _Linux_, _MacOS_) and browsers. (_Chrome_, _Safari_, _Firefox_, _Edge_) |*Usage of _REACT_* |The _REACT JS_ framework will be used to develop the front-end of the project. |*Docker* | The application will operate within a Docker environment. |*Version Control* |In order of the project to be graded adequately, it must use _GitHub_ as its version control software. The contributions of each team member and agreements reached must be easily traceable. |*Continuous integration and delivery* |The development must progress through frequent integration of small changes into the main branch. New features must be automatically deployed with ease. (In our case, using _Docker_) - |=== === Organizational constraints @@ -20,7 +42,6 @@ [cols="2,7" options="header"] |=== |Constraint |Explanation - |*Time* |The team has to complete the project during the semester. |*Team size* |The development teams must be composed of 5-7 members. In our case, the final team is composed of 6 members. |*Budget* |No budget is provided for the development, so any costs that may arise have to be covered by the development team. @@ -35,7 +56,6 @@ [cols="2,4" options="header"] |=== |Constraint |Explanation - |*Use of English* |The totality of the project must be written in English, as to facilitate its understanding internationally. |*Programming Language conventions* | We ought to follow the conventions specific to the programming languages we're employing. |*Documentation format* |The documentation must adhere to the Arc42 method, ensuring it is clear, simple, and effective. @@ -43,5 +63,3 @@ |*Accesibility* |The application should be user-friendly, allowing all individuals to navigate effortlessly, irrespective of any disabilities, ensuring inclusivity for all users. |*Microservices* | The application will be divided into microservices to facilitate its development. |=== - -======= diff --git a/docs/src/03_system_scope_and_context.adoc b/docs/src/03_system_scope_and_context.adoc index 5973f1b9..78cc50b5 100644 --- a/docs/src/03_system_scope_and_context.adoc +++ b/docs/src/03_system_scope_and_context.adoc @@ -4,21 +4,70 @@ ifndef::imagesdir[:imagesdir: ../images] == System Scope and Context [role="arc42help"] +**** +.Contents +System scope and context - as the name suggests - delimits your system (i.e. your scope) from all its communication partners +(neighboring systems and users, i.e. the context of your system). It thereby specifies the external interfaces. + +If necessary, differentiate the business context (domain specific inputs and outputs) from the technical context (channels, protocols, hardware). + +.Motivation +The domain interfaces and technical interfaces to communication partners are among your system's most critical aspects. Make sure that you completely understand them. + +.Form +Various options: + +* Context diagrams +* Lists of communication partners and their interfaces. + + +.Further Information + +See https://docs.arc42.org/section-3/[Context and Scope] in the arc42 documentation. +**** === Business Context +[role="arc42help"] +**** +.Contents +Specification of *all* communication partners (users, IT-systems, ...) with explanations of domain specific inputs and outputs or interfaces. +Optionally you can add domain specific formats or communication protocols. + +.Motivation +All stakeholders should understand which data are exchanged with the environment of the system. + +.Form +All kinds of diagrams that show the system as a black box and specify the domain interfaces to communication partners. + +Alternatively (or additionally) you can use a table. +The title of the table is the name of your system, the three columns contain the name of the communication partner, the inputs, and the outputs. + +**** + [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. - |=== === Technical Context + [role="arc42help"] +**** +.Contents +Technical interfaces (channels and transmission media) linking your system to its environment. In addition a mapping of domain specific input/output to the channels, i.e. an explanation which I/O uses which channel. + +.Motivation +Many stakeholders make architectural decision based on the technical interfaces between the system and its context. Especially infrastructure or hardware designers decide these technical interfaces. + +.Form +E.g. UML deployment diagram describing channels to neighboring systems, +together with a mapping table showing the relationships between channels and input/output. + +**** 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. diff --git a/docs/src/09_architecture_decisions.adoc b/docs/src/09_architecture_decisions.adoc index ebb59981..73da571c 100644 --- a/docs/src/09_architecture_decisions.adoc +++ b/docs/src/09_architecture_decisions.adoc @@ -5,6 +5,33 @@ ifndef::imagesdir[:imagesdir: ../images] [role="arc42help"] +**** +.Contents +Important, expensive, large scale or risky architecture decisions including rationales. +With "decisions" we mean selecting one alternative based on given criteria. + +Please use your judgement to decide whether an architectural decision should be documented +here in this central section or whether you better document it locally +(e.g. within the white box template of one building block). + +Avoid redundancy. +Refer to section 4, where you already captured the most important decisions of your architecture. + +.Motivation +Stakeholders of your system should be able to comprehend and retrace your decisions. + +.Form +Various options: + +* ADR (https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions[Documenting Architecture Decisions]) for every important decision +* List or table, ordered by importance and consequences or: +* more detailed in form of separate sections per decision + +.Further Information + +See https://docs.arc42.org/section-9/[Architecture Decisions] in the arc42 documentation. +There you will find links and examples about ADR. + **** [options="header",cols="1,3,3"] @@ -24,5 +51,4 @@ ifndef::imagesdir[:imagesdir: ../images] |MongoDB |Being a non-relational database, it is easier to use. In addition, it is used by large telecommunications companies. |Non-relational databases are the ones with which we have the least experience. - -**** +|=== diff --git a/docs/src/10_quality_requirements.adoc b/docs/src/10_quality_requirements.adoc index 9a45578d..a7be69a8 100644 --- a/docs/src/10_quality_requirements.adoc +++ b/docs/src/10_quality_requirements.adoc @@ -4,18 +4,77 @@ ifndef::imagesdir[:imagesdir: ../images] == Quality Requirements +[role="arc42help"] +**** +.Content +This section contains all quality requirements as quality tree with scenarios. The most important ones have already been described in section 1.2. (quality goals) + +Here you can also capture quality requirements with lesser priority, +which will not create high risks when they are not fully achieved. + +.Motivation +Since quality requirements will have a lot of influence on architectural +decisions you should know for every stakeholder what is really important to them, +concrete and measurable. + + +.Further Information + +See https://docs.arc42.org/section-10/[Quality Requirements] in the arc42 documentation. + **** To describe the quality requirements that the game will have, we will use quality scenarios. Quality scenarios describe the action to be performed by the user or the system (stimulus) in order to generate a response to the interaction. +=== Quality Tree + +[role="arc42help"] +**** +.Content +The quality tree (as defined in ATAM – Architecture Tradeoff Analysis Method) with quality/evaluation scenarios as leafs. + +.Motivation +The tree structure with priorities provides an overview for a sometimes large number of quality requirements. + +.Form +The quality tree is a high-level overview of the quality goals and requirements: + +* tree-like refinement of the term "quality". Use "quality" or "usefulness" as a root +* a mind map with quality categories as main branches + +In any case the tree should include links to the scenarios of the following section. + **** -=== Quality Tree image::QualityTree.png[] === Quality Scenarios +[role="arc42help"] +**** +.Contents +Concretization of (sometimes vague or implicit) quality requirements using (quality) scenarios. + +These scenarios describe what should happen when a stimulus arrives at the system. + +For architects, two kinds of scenarios are important: + +* Usage scenarios (also called application scenarios or use case scenarios) describe the system’s runtime reaction to a certain stimulus. This also includes scenarios that describe the system’s efficiency or performance. Example: The system reacts to a user’s request within one second. +* Change scenarios describe a modification of the system or of its immediate environment. Example: Additional functionality is implemented or requirements for a quality attribute change. + +.Motivation +Scenarios make quality requirements concrete and allow to +more easily measure or decide whether they are fulfilled. + +Especially when you want to assess your architecture using methods like +ATAM you need to describe your quality goals (from section 1.2) +more precisely down to a level of scenarios that can be discussed and evaluated. + +.Form +Tabular or free form text. +**** + Quality scenarios, also known as use cases, are detailed descriptions of situations in which a user interacts with a system and describe the expected outcomes along with the conditions of the environment in which the interaction occurs. diff --git a/docs/src/11_technical_risks.adoc b/docs/src/11_technical_risks.adoc index a75e08fd..b488dee0 100644 --- a/docs/src/11_technical_risks.adoc +++ b/docs/src/11_technical_risks.adoc @@ -5,6 +5,23 @@ ifndef::imagesdir[:imagesdir: ../images] [role="arc42help"] +**** +.Contents +A list of identified technical risks or technical debts, ordered by priority + +.Motivation +“Risk management is project management for grown-ups” (Tim Lister, Atlantic Systems Guild.) + +This should be your motto for systematic detection and evaluation of risks and technical debts in the architecture, which will be needed by management stakeholders (e.g. project managers, product owners) as part of the overall risk analysis and measurement planning. + +.Form +List of risks and/or technical debts, probably including suggested measures to minimize, mitigate or avoid risks or reduce technical debts. + + +.Further Information + +See https://docs.arc42.org/section-11/[Risks and Technical Debt] in the arc42 documentation. + **** [options="header"] @@ -13,6 +30,4 @@ ifndef::imagesdir[:imagesdir: ../images] |Knowledge of REACT |It is a framework that no team member has used before. Therefore, we have all had to learn how to use it. |Internal group conflicts |Lack of free time for team members makes group work difficult. -|=== - -**** +|=== \ No newline at end of file diff --git a/docs/src/12_glossary.adoc b/docs/src/12_glossary.adoc index 1ace272e..cb656f34 100644 --- a/docs/src/12_glossary.adoc +++ b/docs/src/12_glossary.adoc @@ -4,6 +4,30 @@ ifndef::imagesdir[:imagesdir: ../images] == Glossary [role="arc42help"] +**** +.Contents +The most important domain and technical terms that your stakeholders use when discussing the system. + +You can also see the glossary as source for translations if you work in multi-language teams. + +.Motivation +You should clearly define your terms, so that all stakeholders + +* have an identical understanding of these terms +* do not use synonyms and homonyms + + +.Form + +A table with columns and . + +Potentially more columns in case you need translations. + + +.Further Information + +See https://docs.arc42.org/section-12/[Glossary] in the arc42 documentation. + **** [cols="e,2e" options="header"] @@ -14,5 +38,3 @@ ifndef::imagesdir[:imagesdir: ../images] |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. |=== - -**** From ec0df485752bfd686d2024b3c322e02f58314961 Mon Sep 17 00:00:00 2001 From: alegarman2002 Date: Fri, 16 Feb 2024 12:34:17 +0100 Subject: [PATCH 28/71] Add the image of the diagram --- docs/images/06-UtilityDiagram.png | Bin 0 -> 14540 bytes docs/src/06_runtime_view.adoc | 6 ++++++ 2 files changed, 6 insertions(+) create mode 100644 docs/images/06-UtilityDiagram.png diff --git a/docs/images/06-UtilityDiagram.png b/docs/images/06-UtilityDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..c964e3375087f82543cfd373a0859725e2b45576 GIT binary patch literal 14540 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 pxMI6n_ From 22818ed8ea3a8fb726c8484e851f82f97709188a Mon Sep 17 00:00:00 2001 From: Marcos Barril Villaverde Date: Sun, 18 Feb 2024 18:51:28 +0100 Subject: [PATCH 29/71] Added part of section 5 of the documentation --- docs/src/05_building_block_view.adoc | 230 ++++----------------------- 1 file changed, 35 insertions(+), 195 deletions(-) diff --git a/docs/src/05_building_block_view.adoc b/docs/src/05_building_block_view.adoc index df5c29c8..5b8b41d5 100644 --- a/docs/src/05_building_block_view.adoc +++ b/docs/src/05_building_block_view.adoc @@ -1,212 +1,52 @@ ifndef::imagesdir[:imagesdir: ../images] -[[section-building-block-view]] +== Building block view +=== Level 1: Overall System's whitebox -== Building Block View +==== Motivation -[role="arc42help"] -**** -.Content -The building block view shows the static decomposition of the system into building blocks (modules, components, subsystems, classes, interfaces, packages, libraries, frameworks, layers, partitions, tiers, functions, macros, operations, data structures, ...) as well as their dependencies (relationships, associations, ...) +*_WiQ_* application is the general structure of a system in which users will have the possibility to play a video game implementation of the popular RTVE programme, "Saber y Ganar". -This view is mandatory for every architecture documentation. -In analogy to a house this is the _floor plan_. +==== Contained Building Blocks -.Motivation -Maintain an overview of your source code by making its structure understandable through -abstraction. - -This allows you to communicate with your stakeholder on an abstract level without disclosing implementation details. - -.Form -The building block view is a hierarchical collection of black boxes and white boxes -(see figure below) and their descriptions. - -image::05_building_blocks-EN.png["Hierarchy of building blocks"] - -*Level 1* is the white box description of the overall system together with black -box descriptions of all contained building blocks. - -*Level 2* zooms into some building blocks of level 1. -Thus it contains the white box description of selected building blocks of level 1, together with black box descriptions of their internal building blocks. - -*Level 3* zooms into selected building blocks of level 2, and so on. - - -.Further Information - -See https://docs.arc42.org/section-5/[Building Block View] in the arc42 documentation. - -**** - -=== Whitebox Overall System - -[role="arc42help"] -**** -Here you describe the decomposition of the overall system using the following white box template. It contains - - * an overview diagram - * a motivation for the decomposition - * black box descriptions of the contained building blocks. For these we offer you alternatives: - - ** use _one_ table for a short and pragmatic overview of all contained building blocks and their interfaces - ** use a list of black box descriptions of the building blocks according to the black box template (see below). - Depending on your choice of tool this list could be sub-chapters (in text files), sub-pages (in a Wiki) or nested elements (in a modeling tool). - - - * (optional:) important interfaces, that are not explained in the black box templates of a building block, but are very important for understanding the white box. -Since there are so many ways to specify interfaces why do not provide a specific template for them. - In the worst case you have to specify and describe syntax, semantics, protocols, error handling, - restrictions, versions, qualities, necessary compatibilities and many things more. -In the best case you will get away with examples or simple signatures. - -**** - -_****_ - -Motivation:: - -__ - - -Contained Building Blocks:: -__ - -Important Interfaces:: -__ - -[role="arc42help"] -**** -Insert your explanations of black boxes from level 1: - -If you use tabular form you will only describe your black boxes with name and -responsibility according to the following schema: - -[cols="1,2" options="header"] +[options="header"] +[cols="1,2"] |=== -| **Name** | **Responsibility** -| __ | __ -| __ | __ +|Name |Description +|User +|Client of the application which will interact with it. +|WIQ App +|System developed to be used by the users. The games will be based on the information obtanined from WikiData +|WikiData +|Service external to the application from which the application questions will be obtained. Wikidata is a collaboratively edited multilingual knowledge graph hosted by the Wikimedia Foundation. |=== - - -If you use a list of black box descriptions then you fill in a separate black box template for every important building block . -Its headline is the name of the black box. -**** - - -==== - -[role="arc42help"] -**** -Here you describe -according the the following black box template: - -* Purpose/Responsibility -* Interface(s), when they are not extracted as separate paragraphs. This interfaces may include qualities and performance characteristics. -* (Optional) Quality-/Performance characteristics of the black box, e.g.availability, run time behavior, .... -* (Optional) directory/file location -* (Optional) Fulfilled requirements (if you need traceability to requirements). -* (Optional) Open issues/problems/risks - -**** - -__ - -__ - -_<(Optional) Quality/Performance Characteristics>_ - -_<(Optional) Directory/File Location>_ - -_<(Optional) Fulfilled Requirements>_ - -_<(optional) Open Issues/Problems/Risks>_ - - - - -==== - -__ - -==== - -__ - - -==== - -... - -==== - - - === Level 2 -[role="arc42help"] -**** -Here you can specify the inner structure of (some) building blocks from level 1 as white boxes. - -You have to decide which building blocks of your system are important enough to justify such a detailed description. -Please prefer relevance over completeness. Specify important, surprising, risky, complex or volatile building blocks. -Leave out normal, simple, boring or standardized parts of your system -**** - -==== White Box __ - -[role="arc42help"] -**** -...describes the internal structure of _building block 1_. -**** - -__ - -==== White Box __ - +==== Motivation -__ - -... - -==== White Box __ - - -__ - - - -=== Level 3 - -[role="arc42help"] -**** -Here you can specify the inner structure of (some) building blocks from level 2 as white boxes. - -When you need more detailed levels of your architecture please copy this -part of arc42 for additional levels. -**** - - -==== White Box <_building block x.1_> - -[role="arc42help"] -**** -Specifies the internal structure of _building block x.1_. -**** - - -__ - - -==== White Box <_building block x.2_> - -__ +*_WiQ_* application is the general structure of a system in which users will have the possibility to play a video game implementation of the popular RTVE programme, "Saber y Ganar". +==== Contained Building Blocks +[options="header"] +[cols="1,2"] +[options="header"] +|=== +|Name |Description +|Web App +|Layer in which the user will interact directly and which will connect with the different services. +|Questions Service +|Microservice to generate the questions used by the application from WikiData +|Game Service +|Microservice that implements the quiz game +|Question Historic Service +|Microservice that stores the generated questions for later consultation +|User Statistics Service +|Microservice that stores the statistics of the games played by the user. +|Authentification Service +|Authentication microservice that allows the user to register and log in. +|=== -==== White Box <_building block y.1_> -__ From 418b44592b5c0cd4454f767d88046f1b69684a12 Mon Sep 17 00:00:00 2001 From: Marcos Barril Villaverde Date: Sun, 18 Feb 2024 19:01:56 +0100 Subject: [PATCH 30/71] Minor changes to section 5, and a couple of fixes at section 2 --- docs/images/51.png | Bin 0 -> 5225 bytes docs/images/52.png | Bin 0 -> 29778 bytes docs/src/02_architecture_constraints.adoc | 4 ++-- docs/src/05_building_block_view.adoc | 6 +++++- 4 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 docs/images/51.png create mode 100644 docs/images/52.png diff --git a/docs/images/51.png b/docs/images/51.png new file mode 100644 index 0000000000000000000000000000000000000000..eb2fdd2956a3a168a645d9924894ed87af207f7c GIT binary patch literal 5225 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 literal 0 HcmV?d00001 diff --git a/docs/images/52.png b/docs/images/52.png new file mode 100644 index 0000000000000000000000000000000000000000..3526a504875541a869884311a40d437160d3c980 GIT binary patch literal 29778 zcmZs@by(D0_dPs{pdw*_A}K0LmxO?b(k0T3lyt)YN{R?b3DOb*(%mgXt8`0)ba(f= z2YsI3^S!S3FYg<(TH0_kFapJ=hc`Q-ij zTH;pKu73lo^cCKj=90?rLci(3a@{5;1JXYJ{p#OzR#!F5_dWA&1mHb+{zkd-WxO*t zZ?(v$h00n754Bp(Kkk7y*#k1Q`Lwz>S=)Nz^Z3OuC>IJoGAH17@JrHE^<%iyKd}nh zxbk+C#VAZ%#a(TrO40^bi`q{?RdD}Z;8pq*pP%+cSKK2X4+qH$&cupeFOC^WDAaj) z*9EtoMlO_SkSIjk^YZNk{n$(o);4nY&R<=O?^&W{q9j!qdTEOs=JS}xc;+T=rsJlf z_O^XAjjDA<-ImIKVY@dH`B`)Ge{59n&1w$vHLY(a)&Dd|+Ud0~Le6y}q5xxKb*?Aa;-N%9lO)q*dMmmT>O`i%AUe z-!cSoOvqdLOtnPK`PK;}LYq~kq#acf{7k_5wkvQg1r+#Fk!9E)0n^|;Ww6XcQT~X=Cd-}(U z^HD`f1t;g`V1+J|04;1Mf=CJrh5i?@^$v*%|7eMdDxv?^^TWUY{T-eCmCyA=bJ2Qd zX`sGd(1j1epgKs|tUQw2);L-63#)R>_qUs$$a%S+KK(kT4WG@$`TZrkwzig9)pn`> zv+JhFjNQucK(+?YAiJifrb{gP0<6jg<=i$ilAbuX;iFAT${q?Cik+j&V^y&^==)#M zikV-iIz48Z#y@C=-zFv|p2x&S&ULu`{q;K}m4x%*PV1LP2I}ghn&{A+(Z4Zo{5w+x zxf^AH^7iw4O_iluq@#Hq9~W1TN~6Lqse(#8ByK3Psl7cw;d4kxNGP3>gQMeYWAH

9e6a#^H_jW+A{BDs+U-ET(d;9WA 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�*Zt7Oj<=~RFi9e$2Q zu0(=hHmm%oVce_qSTs+vi}NsIlyenyJ0_E`BYvj@$O->Ac>A+}~VWzpk!>O(^V1MD-lUb1VAAK;(yq}Ubs3r5|zk+O8R zQV>q{v;Hd6`$Vg&tKHqS4u^$>fm506c~G&OpC9mJv=NG(R%PoL8Hp|-lsH$fMi=~& zG^C)F=SiXXEMcB45vNjPeSr)Lhl$KUde!4_FDGs(hJ>g}N36CKj-kK`k_KN0xb4ZI zuU&Wij~$Y5sX;wa+nC~Mh!u4rcripJ9aZFwf1!8_?IixG#y{tKv%B!=Z>ynoDDT|@ ztj8;CWaZ=nK;TMV@b4c7{P5TRyx)JWAFQI|w^{j$KtPEF<{q(@`~?C6@-wm6@cp-s z#TP)x-^#O(r#=I$-?FT$_yQ*v7yJmKk;4XEF45~1r%(o#F*~+vX=x#^FtM;}E=)zi z2VY2R$X%>t6OZ!^Ht7Iqa!=OPH}_x$n*g->oKCJn&)ptoNe8+7A_QzX1(Cb!d->YP1?Bfz%# z3b^j7(vXU|d)N7O+VhR`DU{I*YzB)6tMQK>1|@;E%gW07$zn5^iKp(2fI&oJQsd!A zPRPLvo})ot)j@aU<>X*m@Tt4b8MqkI=k-!^D3s|ttjIprqdowVrPwf~(1pP`+OiO) zB3v8%~LESodHYqCuckxLnu1}57>m$mas!N37lv|Da2EkTfJ+q`j(H{&Y~=O6Q8v87E6NIU03beptT%vt%B#+E8d?ChJqe zb`0+dAKXf;E+};Ufm!$PIr20Z)ByEURTFd_0+5f5h2 zI|j3<6z^v`v{NnhY(10LhQMLIK0}A*`4afeEXtV`UE+&Y?58=Y;sI*EGI{1z2U+75 zLhZO}E8STAfB)-B7Bd4S+NkjIR~|1s@;d*;ZHph5PuJEQt=O_`QXi!&Vwz3J-rNFMZPCB?<8?Dyd)6N2n#mmfDb_c7#__wNr5Ihl;cQ@6bIZ*M3N6wGeuqCWXmb2t`bU` zn)rw^G{7n%5fJ`-v3}n9_PlD?Ute_w<*Vn%m-WjGP;{|pY z3htNpDvyRovotg`(%HzG^wrhX&CJX|l!^>lnR&c_o6dTymB~TONF~hreeqP6-i$gF z4NZmF+zgYm3tXPv5o`*Kgg9~`#ZixVAExEMd1x18L%@o*I9=&P!x6uNuP)@ca5pqG zw5O*Bz68a^#ZRBArNnRUE`IU1?$2Pm4m_C)iPRt9mzQyK#{=bvgn|eMsSS?R2Dw*` z#bsskKL>ZpIVFr6OaNjO4o3V+hY0^^s3%;FPacOBX*(d})(0fiHiCpUqVkJ5XO>p7%g@7mh#kg1iKRETouO^?sU z#?{F4&TBRowpcP6k&}F#o*8U4Sz<6$F&H|u;P1bm#kA)8K1TnazkX=O!Z~8Ou|=ai zN@ef&T?adQsDjh-Qyup}^g;f{C#Z!39%#G}==|7{4wExRpp>ZM;xfut5SDEDw*Ztl bK*v>jHjl{PmTAqyC(7;}+S^%b7C!$4UT?fc literal 0 HcmV?d00001 diff --git a/docs/src/02_architecture_constraints.adoc b/docs/src/02_architecture_constraints.adoc index 3a103634..03deaad8 100644 --- a/docs/src/02_architecture_constraints.adoc +++ b/docs/src/02_architecture_constraints.adoc @@ -7,7 +7,7 @@ |========================================================================================================================================================================================================= | Constraint | Explanation | Docker | The application will operate within a Docker environment. -| GitHub | We'll leverage GitHub as our remote repository for project development, task delegation among team members, and version control. GitHub streamlines communication and project organization. +| GitHub | We'll leverage GitHub as our remote repository for project development, task delegation among team members, and version control. |========================================================================================================================================================================================================= @@ -19,7 +19,7 @@ | Size of the team | The team comprises six individuals. | Meetings | Weekly meetings are scheduled to discuss task organization during each laboratory class session. In the event of requiring an extraordinary meeting, various tools such as WhatsApp or Discord are employed to coordinate effectively. | Testing | Various scenarios will be explored to ensure the app's functionality is tested. We'll employ a range of techniques to maximize test coverage, striving for comprehensive assessment. -| Experience | Team members possess limited experience with the diverse technologies being employed. +| Experience | Team members possess limited and diversed experience with the diverse technologies being employed. |========================================================================================================================================================================================================================================================== diff --git a/docs/src/05_building_block_view.adoc b/docs/src/05_building_block_view.adoc index 5b8b41d5..9e60d9f2 100644 --- a/docs/src/05_building_block_view.adoc +++ b/docs/src/05_building_block_view.adoc @@ -4,9 +4,11 @@ ifndef::imagesdir[:imagesdir: ../images] === Level 1: Overall System's whitebox +image::51.png["Level-1-block-view"] + ==== Motivation -*_WiQ_* application is the general structure of a system in which users will have the possibility to play a video game implementation of the popular RTVE programme, "Saber y Ganar". +This level shows how the application will work internally in generaly. The client, WebApp, access to the different services provided by the microservices which make up the program. ==== Contained Building Blocks @@ -24,6 +26,8 @@ ifndef::imagesdir[:imagesdir: ../images] === Level 2 +image::52.png["Level-2-block-view"] + ==== Motivation *_WiQ_* application is the general structure of a system in which users will have the possibility to play a video game implementation of the popular RTVE programme, "Saber y Ganar". From c25e5873d7f058039d857134505ffccd77f648b6 Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 19 Feb 2024 20:45:34 +0100 Subject: [PATCH 31/71] Add the diagram with plantuml --- docs/src/06_runtime_view.adoc | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/docs/src/06_runtime_view.adoc b/docs/src/06_runtime_view.adoc index 1e1adaeb..f7368d81 100644 --- a/docs/src/06_runtime_view.adoc +++ b/docs/src/06_runtime_view.adoc @@ -39,8 +39,28 @@ See https://docs.arc42.org/section-6/[Runtime View] in the arc42 documentation. === Utility -:imagesdir: images/ -image::06-UtilityDiagram.png[] +---- +actor User +entity APP +entity QandA +Activate User +Activate APP +User -> APP : Start Game +Activate QandA +APP -> QandA : Request +QandA -> QandA : Generate QandA +QandA --> APP : Return QandA +deactivate QandA +APP --> User : Game Prepared + +loop + User -> APP: User Plays + APP -> User :Game Responds +end +APP --> User: Game Ends +deactivate APP +deactivate User +---- === From a87ca8170db5f7f82809a19c87c3d68dcec68756 Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 19 Feb 2024 21:38:17 +0100 Subject: [PATCH 32/71] Add the new diagram --- docs/src/06_runtime_view.adoc | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/docs/src/06_runtime_view.adoc b/docs/src/06_runtime_view.adoc index f7368d81..1e1adaeb 100644 --- a/docs/src/06_runtime_view.adoc +++ b/docs/src/06_runtime_view.adoc @@ -39,28 +39,8 @@ See https://docs.arc42.org/section-6/[Runtime View] in the arc42 documentation. === Utility ----- -actor User -entity APP -entity QandA -Activate User -Activate APP -User -> APP : Start Game -Activate QandA -APP -> QandA : Request -QandA -> QandA : Generate QandA -QandA --> APP : Return QandA -deactivate QandA -APP --> User : Game Prepared - -loop - User -> APP: User Plays - APP -> User :Game Responds -end -APP --> User: Game Ends -deactivate APP -deactivate User ----- +:imagesdir: images/ +image::06-UtilityDiagram.png[] === From 56821350c35fae7dadff36ea4152cfa6bd121025 Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 19 Feb 2024 21:40:25 +0100 Subject: [PATCH 33/71] Add the new diagram --- docs/src/06_runtime_view.adoc | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/docs/src/06_runtime_view.adoc b/docs/src/06_runtime_view.adoc index 1e1adaeb..d5946878 100644 --- a/docs/src/06_runtime_view.adoc +++ b/docs/src/06_runtime_view.adoc @@ -38,9 +38,27 @@ See https://docs.arc42.org/section-6/[Runtime View] in the arc42 documentation. **** === Utility - -:imagesdir: images/ -image::06-UtilityDiagram.png[] +---- +actor User +entity APP +entity QandA +Activate User +Activate APP +User -> APP : Start Game +Activate QandA +APP -> QandA : Request +QandA -> QandA : Generate QandA +QandA --> APP : Return QandA +deactivate QandA +APP --> User : Game Prepared +loop + User -> APP: User Plays + APP -> User :Game Responds +end +APP --> User: Game Ends +deactivate APP +deactivate User +---- === From 9b7d9d00b7d4b1c1f0289efccb200a35eef45001 Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 19 Feb 2024 22:09:59 +0100 Subject: [PATCH 34/71] Fixed problems with the diagram --- docs/src/06_runtime_view.adoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/src/06_runtime_view.adoc b/docs/src/06_runtime_view.adoc index 707c8fa6..7923a9fb 100644 --- a/docs/src/06_runtime_view.adoc +++ b/docs/src/06_runtime_view.adoc @@ -37,7 +37,8 @@ See https://docs.arc42.org/section-6/[Runtime View] in the arc42 documentation. **** -=== Utility +=== Usage diagram +[plantuml,"Scenario diagram",png] ---- actor User entity APP From 00fac83f621767bff577fc128f7ac73096ff8074 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 20 Feb 2024 00:05:04 +0100 Subject: [PATCH 35/71] deleted unused image --- docs/images/06-UtilityDiagram.png | Bin 14540 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/images/06-UtilityDiagram.png diff --git a/docs/images/06-UtilityDiagram.png b/docs/images/06-UtilityDiagram.png deleted file mode 100644 index c964e3375087f82543cfd373a0859725e2b45576..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14540 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 pxMI6n_ Date: Tue, 20 Feb 2024 23:51:43 +0100 Subject: [PATCH 36/71] 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 37/71] 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 38/71] 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 cd60eec1bd25a2bc102934604d3ba719ba2e09cc Mon Sep 17 00:00:00 2001 From: Marco Quintana Date: Wed, 21 Feb 2024 21:22:35 +0100 Subject: [PATCH 39/71] Added info to doc --- docs/images/deployment.svg | 1 + docs/src/07_deployment_view.adoc | 76 +++----------------------------- 2 files changed, 8 insertions(+), 69 deletions(-) create mode 100644 docs/images/deployment.svg diff --git a/docs/images/deployment.svg b/docs/images/deployment.svg new file mode 100644 index 00000000..e7f67add --- /dev/null +++ b/docs/images/deployment.svg @@ -0,0 +1 @@ +
Azure VM
Questions Generator API
WebApp
Questions History API
Questions History Database
Users Database
USER
WikiData
\ No newline at end of file diff --git a/docs/src/07_deployment_view.adoc b/docs/src/07_deployment_view.adoc index 22b45c27..4c57851f 100644 --- a/docs/src/07_deployment_view.adoc +++ b/docs/src/07_deployment_view.adoc @@ -2,46 +2,8 @@ ifndef::imagesdir[:imagesdir: ../images] [[section-deployment-view]] - == Deployment View -[role="arc42help"] -**** -.Content -The deployment view describes: - - 1. technical infrastructure used to execute your system, with infrastructure elements like geographical locations, environments, computers, processors, channels and net topologies as well as other infrastructure elements and - -2. mapping of (software) building blocks to that infrastructure elements. - -Often systems are executed in different environments, e.g. development environment, test environment, production environment. In such cases you should document all relevant environments. - -Especially document a deployment view if your software is executed as distributed system with more than one computer, processor, server or container or when you design and construct your own hardware processors and chips. - -From a software perspective it is sufficient to capture only those elements of an infrastructure that are needed to show a deployment of your building blocks. Hardware architects can go beyond that and describe an infrastructure to any level of detail they need to capture. - -.Motivation -Software does not run without hardware. -This underlying infrastructure can and will influence a system and/or some -cross-cutting concepts. Therefore, there is a need to know the infrastructure. - -.Form - -Maybe a highest level deployment diagram is already contained in section 3.2. as -technical context with your own infrastructure as ONE black box. In this section one can -zoom into this black box using additional deployment diagrams: - -* UML offers deployment diagrams to express that view. Use it, probably with nested diagrams, -when your infrastructure is more complex. -* When your (hardware) stakeholders prefer other kinds of diagrams rather than a deployment diagram, let them use any kind that is able to show nodes and channels of the infrastructure. - - -.Further Information - -See https://docs.arc42.org/section-7/[Deployment View] in the arc42 documentation. - -**** - === Infrastructure Level 1 [role="arc42help"] @@ -56,39 +18,15 @@ Describe (usually in a combination of diagrams, tables, and text): For multiple environments or alternative deployments please copy and adapt this section of arc42 for all relevant environments. **** -_****_ +image::deployment.svg["Deployment View"] +In addition to what is shown in the diagram, we will also use Graphana and Prometheus during the production stage as code monitoring systems. Motivation:: -__ +Our goal is to run the application with Docker in a Azure VM. +However, during the production stage, each contributor will deploy the project locally. +Final product will be deployed in http://wiq.sytes.net/ (if that does not work, try http://20.77.37.219:3000/). Quality and/or Performance Features:: - -__ - -Mapping of Building Blocks to Infrastructure:: -__ - - -=== Infrastructure Level 2 - -[role="arc42help"] -**** -Here you can include the internal structure of (some) infrastructure elements from level 1. - -Please copy the structure from level 1 for each selected element. -**** - -==== __ - -__ - -==== __ - -__ - -... - -==== __ - -__ +As for performance features, our current Azure MV has 2 GiB RAM and 1vCPU. +If that was not enough, we can always switch to an Oracle VM, which has better resources for free. From 31328461b4e1729fb2d4006481e2cc955d8ef8cd Mon Sep 17 00:00:00 2001 From: Marco Quintana Date: Wed, 21 Feb 2024 21:27:07 +0100 Subject: [PATCH 40/71] Fixed --- docs/src/07_deployment_view.adoc | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/docs/src/07_deployment_view.adoc b/docs/src/07_deployment_view.adoc index 4c57851f..9186c2b0 100644 --- a/docs/src/07_deployment_view.adoc +++ b/docs/src/07_deployment_view.adoc @@ -7,16 +7,6 @@ ifndef::imagesdir[:imagesdir: ../images] === Infrastructure Level 1 [role="arc42help"] -**** -Describe (usually in a combination of diagrams, tables, and text): - -* distribution of a system to multiple locations, environments, computers, processors, .., as well as physical connections between them -* important justifications or motivations for this deployment structure -* quality and/or performance features of this infrastructure -* mapping of software artifacts to elements of this infrastructure - -For multiple environments or alternative deployments please copy and adapt this section of arc42 for all relevant environments. -**** image::deployment.svg["Deployment View"] In addition to what is shown in the diagram, we will also use Graphana and Prometheus during the production stage as code monitoring systems. @@ -30,3 +20,4 @@ Final product will be deployed in http://wiq.sytes.net/ (if that does not work, Quality and/or Performance Features:: As for performance features, our current Azure MV has 2 GiB RAM and 1vCPU. If that was not enough, we can always switch to an Oracle VM, which has better resources for free. +MongoDB will be used in both Databases. \ No newline at end of file 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 41/71] 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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

9e6a#^H_jW+A{BDs+U-ET(d;9WA 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�*Zt7Oj<=~RFi9e$2Q zu0(=hHmm%oVce_qSTs+vi}NsIlyenyJ0_E`BYvj@$O->Ac>A+}~VWzpk!>O(^V1MD-lUb1VAAK;(yq}Ubs3r5|zk+O8R zQV>q{v;Hd6`$Vg&tKHqS4u^$>fm506c~G&OpC9mJv=NG(R%PoL8Hp|-lsH$fMi=~& zG^C)F=SiXXEMcB45vNjPeSr)Lhl$KUde!4_FDGs(hJ>g}N36CKj-kK`k_KN0xb4ZI zuU&Wij~$Y5sX;wa+nC~Mh!u4rcripJ9aZFwf1!8_?IixG#y{tKv%B!=Z>ynoDDT|@ ztj8;CWaZ=nK;TMV@b4c7{P5TRyx)JWAFQI|w^{j$KtPEF<{q(@`~?C6@-wm6@cp-s z#TP)x-^#O(r#=I$-?FT$_yQ*v7yJmKk;4XEF45~1r%(o#F*~+vX=x#^FtM;}E=)zi z2VY2R$X%>t6OZ!^Ht7Iqa!=OPH}_x$n*g->oKCJn&)ptoNe8+7A_QzX1(Cb!d->YP1?Bfz%# z3b^j7(vXU|d)N7O+VhR`DU{I*YzB)6tMQK>1|@;E%gW07$zn5^iKp(2fI&oJQsd!A zPRPLvo})ot)j@aU<>X*m@Tt4b8MqkI=k-!^D3s|ttjIprqdowVrPwf~(1pP`+OiO) zB3v8%~LESodHYqCuckxLnu1}57>m$mas!N37lv|Da2EkTfJ+q`j(H{&Y~=O6Q8v87E6NIU03beptT%vt%B#+E8d?ChJqe zb`0+dAKXf;E+};Ufm!$PIr20Z)ByEURTFd_0+5f5h2 zI|j3<6z^v`v{NnhY(10LhQMLIK0}A*`4afeEXtV`UE+&Y?58=Y;sI*EGI{1z2U+75 zLhZO}E8STAfB)-B7Bd4S+NkjIR~|1s@;d*;ZHph5PuJEQt=O_`QXi!&Vwz3J-rNFMZPCB?<8?Dyd)6N2n#mmfDb_c7#__wNr5Ihl;cQ@6bIZ*M3N6wGeuqCWXmb2t`bU` zn)rw^G{7n%5fJ`-v3}n9_PlD?Ute_w<*Vn%m-WjGP;{|pY z3htNpDvyRovotg`(%HzG^wrhX&CJX|l!^>lnR&c_o6dTymB~TONF~hreeqP6-i$gF z4NZmF+zgYm3tXPv5o`*Kgg9~`#ZixVAExEMd1x18L%@o*I9=&P!x6uNuP)@ca5pqG zw5O*Bz68a^#ZRBArNnRUE`IU1?$2Pm4m_C)iPRt9mzQyK#{=bvgn|eMsSS?R2Dw*` z#bsskKL>ZpIVFr6OaNjO4o3V+hY0^^s3%;FPacOBX*(d})(0fiHiCpUqVkJ5XO>p7%g@7mh#kg1iKRETouO^?sU z#?{F4&TBRowpcP6k&}F#o*8U4Sz<6$F&H|u;P1bm#kA)8K1TnazkX=O!Z~8Ou|=ai zN@ef&T?adQsDjh-Qyup}^g;f{C#Z!39%#G}==|7{4wExRpp>ZM;xfut5SDEDw*Ztl bK*v>jHjl{PmTAqyC(7;}+S^%b7C!$4UT?fc diff --git a/docs/src/05_building_block_view.adoc b/docs/src/05_building_block_view.adoc index 9e60d9f2..a16d8660 100644 --- a/docs/src/05_building_block_view.adoc +++ b/docs/src/05_building_block_view.adoc @@ -4,7 +4,11 @@ ifndef::imagesdir[:imagesdir: ../images] === Level 1: Overall System's whitebox -image::51.png["Level-1-block-view"] +[plantuml,"Level 1: Overall System's whitebox",png] +---- +:user: -> [WIQ App] : Interacts with +[WIQ App] <.> [WikiData] : Gets Data +---- ==== Motivation @@ -26,7 +30,20 @@ This level shows how the application will work internally in generaly. The clien === Level 2 -image::52.png["Level-2-block-view"] +[plantuml,"Level 2:general structure of a system",png] +---- +:usuario: +package "WIQ App" { +:usuario: -> [WebApp] : interacts +[WebApp] <---> [Questions Service] : Get data +[WebApp] <---> [Game Service] : Plays +[WebApp] <--> [Question Historic Service] : Store/load data +[WebApp] <--> [User Statistics Service] : Store/load data +[WebApp] <-> [Authentification Service] : logs in / Register +} + +[Questions Service] <..> [WikiData] : Get data +---- ==== Motivation 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 46/71] 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 1446bfc3965eaa014ec3ba3e775b71a450b1e9b7 Mon Sep 17 00:00:00 2001 From: Marcos Barril Villaverde Date: Thu, 22 Feb 2024 17:10:39 +0100 Subject: [PATCH 47/71] Minor changes to section 5 --- docs/src/05_building_block_view.adoc | 80 ++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/docs/src/05_building_block_view.adoc b/docs/src/05_building_block_view.adoc index a16d8660..3e432e4a 100644 --- a/docs/src/05_building_block_view.adoc +++ b/docs/src/05_building_block_view.adoc @@ -1,7 +1,48 @@ ifndef::imagesdir[:imagesdir: ../images] +[[section-building-block-view]] +[role="arc42help"] +**** +.Content +The building block view shows the static decomposition of the system into building blocks (modules, components, subsystems, classes, interfaces, packages, libraries, frameworks, layers, partitions, tiers, functions, macros, operations, data structures, ...) as well as their dependencies (relationships, associations, ...) +This view is mandatory for every architecture documentation. +In analogy to a house this is the _floor plan_. +.Motivation +Maintain an overview of your source code by making its structure understandable through +abstraction. +This allows you to communicate with your stakeholder on an abstract level without disclosing implementation details. +.Form +The building block view is a hierarchical collection of black boxes and white boxes +(see figure below) and their descriptions. +image::05_building_blocks-EN.png["Hierarchy of building blocks"] +*Level 1* is the white box description of the overall system together with black +box descriptions of all contained building blocks. +*Level 2* zooms into some building blocks of level 1. +Thus it contains the white box description of selected building blocks of level 1, together with black box descriptions of their internal building blocks. +*Level 3* zooms into selected building blocks of level 2, and so on. +.Further Information +See https://docs.arc42.org/section-5/[Building Block View] in the arc42 documentation. +**** + == Building block view + +[role="arc42help"] +**** +Here you describe the decomposition of the overall system using the following white box template. It contains + * an overview diagram + * a motivation for the decomposition + * black box descriptions of the contained building blocks. For these we offer you alternatives: + ** use _one_ table for a short and pragmatic overview of all contained building blocks and their interfaces + ** use a list of black box descriptions of the building blocks according to the black box template (see below). + Depending on your choice of tool this list could be sub-chapters (in text files), sub-pages (in a Wiki) or nested elements (in a modeling tool). + * (optional:) important interfaces, that are not explained in the black box templates of a building block, but are very important for understanding the white box. +Since there are so many ways to specify interfaces why do not provide a specific template for them. + In the worst case you have to specify and describe syntax, semantics, protocols, error handling, + restrictions, versions, qualities, necessary compatibilities and many things more. +In the best case you will get away with examples or simple signatures. +**** + === Level 1: Overall System's whitebox [plantuml,"Level 1: Overall System's whitebox",png] @@ -12,10 +53,24 @@ ifndef::imagesdir[:imagesdir: ../images] ==== Motivation + This level shows how the application will work internally in generaly. The client, WebApp, access to the different services provided by the microservices which make up the program. ==== Contained Building Blocks +[role="arc42help"] +**** +Insert your explanations of black boxes from level 1: +If you use tabular form you will only describe your black boxes with name and +responsibility according to the following schema: +[cols="1,2" options="header"] +| **Name** | **Responsibility** +| __ | __ +| __ | __ +If you use a list of black box descriptions then you fill in a separate black box template for every important building block . +Its headline is the name of the black box. +**** + [options="header"] [cols="1,2"] |=== @@ -28,8 +83,33 @@ This level shows how the application will work internally in generaly. The clien |Service external to the application from which the application questions will be obtained. Wikidata is a collaboratively edited multilingual knowledge graph hosted by the Wikimedia Foundation. |=== +[role="arc42help"] +**** +Here you can specify the inner structure of (some) building blocks from level 1 as white boxes. +You have to decide which building blocks of your system are important enough to justify such a detailed description. +Please prefer relevance over completeness. Specify important, surprising, risky, complex or volatile building blocks. +Leave out normal, simple, boring or standardized parts of your system +**** + +[role="arc42help"] +**** +...describes the internal structure of _building block 1_. +**** + === Level 2 +[role="arc42help"] +**** +Here you describe +according the the following black box template: +* Purpose/Responsibility +* Interface(s), when they are not extracted as separate paragraphs. This interfaces may include qualities and performance characteristics. +* (Optional) Quality-/Performance characteristics of the black box, e.g.availability, run time behavior, .... +* (Optional) directory/file location +* (Optional) Fulfilled requirements (if you need traceability to requirements). +* (Optional) Open issues/problems/risks +**** + [plantuml,"Level 2:general structure of a system",png] ---- :usuario: From a773e8f7d118833bdbfc4b1a07b229bfab3f52ff Mon Sep 17 00:00:00 2001 From: Marcos Barril Villaverde Date: Thu, 22 Feb 2024 17:12:39 +0100 Subject: [PATCH 48/71] Small fix to section 2 --- docs/src/02_architecture_constraints.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/src/02_architecture_constraints.adoc b/docs/src/02_architecture_constraints.adoc index fdf41026..37db8bdd 100644 --- a/docs/src/02_architecture_constraints.adoc +++ b/docs/src/02_architecture_constraints.adoc @@ -34,6 +34,7 @@ See https://docs.arc42.org/section-2/[Architecture Constraints] in the arc42 doc |*Usage of _REACT_* |The _REACT JS_ framework will be used to develop the front-end of the project. |*Docker* | The application will operate within a Docker environment. |*Version Control* |In order of the project to be graded adequately, it must use _GitHub_ as its version control software. The contributions of each team member and agreements reached must be easily traceable. +|*Wikidata* | To generate questions, WikiData would be used as a knowledge base. Wikidata is a free and open knowledge base that can be read and edited by both humans and machines. Wikidata acts as central storage for the structured data of its sister Wikimedia projects, including Wikipedia, Wikivoyage, Wiktionary, Wikisource and others. |*Continuous integration and delivery* |The development must progress through frequent integration of small changes into the main branch. New features must be automatically deployed with ease. (In our case, using _Docker_) |=== From 33dbb7a4df03f207a87a8bf8203dfef03562804f Mon Sep 17 00:00:00 2001 From: Marcos Barril Villaverde Date: Thu, 22 Feb 2024 17:13:52 +0100 Subject: [PATCH 49/71] Small fix to section 2 --- docs/src/02_architecture_constraints.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/02_architecture_constraints.adoc b/docs/src/02_architecture_constraints.adoc index 37db8bdd..3e7ebafa 100644 --- a/docs/src/02_architecture_constraints.adoc +++ b/docs/src/02_architecture_constraints.adoc @@ -33,7 +33,7 @@ See https://docs.arc42.org/section-2/[Architecture Constraints] in the arc42 doc |*OS/Browser Independence* |The project must be available to the maximum amount of users feasible. That includes support for mainstream OSs (_Windows_, _Linux_, _MacOS_) and browsers. (_Chrome_, _Safari_, _Firefox_, _Edge_) |*Usage of _REACT_* |The _REACT JS_ framework will be used to develop the front-end of the project. |*Docker* | The application will operate within a Docker environment. -|*Version Control* |In order of the project to be graded adequately, it must use _GitHub_ as its version control software. The contributions of each team member and agreements reached must be easily traceable. +|*Version Control* |In order of the project to be graded adequately, it must use _GitHub_ as its version control system. The contributions of each team member and agreements reached must be easily traceable. |*Wikidata* | To generate questions, WikiData would be used as a knowledge base. Wikidata is a free and open knowledge base that can be read and edited by both humans and machines. Wikidata acts as central storage for the structured data of its sister Wikimedia projects, including Wikipedia, Wikivoyage, Wiktionary, Wikisource and others. |*Continuous integration and delivery* |The development must progress through frequent integration of small changes into the main branch. New features must be automatically deployed with ease. (In our case, using _Docker_) |=== 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 50/71] 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 52/71] 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 53/71] 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 54/71] 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 2877b1b8cda35f046338fb3d80cd216ca1ba3f62 Mon Sep 17 00:00:00 2001 From: Marcos Barril Villaverde Date: Thu, 22 Feb 2024 18:00:23 +0100 Subject: [PATCH 55/71] This is a test --- docs/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index ab1646f2..148a4d21 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -220,9 +220,9 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", "dependencies": { "function-bind": "^1.1.2" }, From 02e6c8b74446d0291fa421bd728e85cfa68d7a9c Mon Sep 17 00:00:00 2001 From: Liliana Date: Thu, 22 Feb 2024 18:12:20 +0100 Subject: [PATCH 56/71] Modificacion requisitos --- docs/src/10_quality_requirements.adoc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/src/10_quality_requirements.adoc b/docs/src/10_quality_requirements.adoc index 9a45578d..5cac43cb 100644 --- a/docs/src/10_quality_requirements.adoc +++ b/docs/src/10_quality_requirements.adoc @@ -27,11 +27,6 @@ occurs. |Usage Scenarios |Priority -|Privacy -|In order to be able to play, the user must log in to the application. -|Only the user who created/owns the account will have access to it (unless he/she gives someone else his/her credentials). -|High - |Usability |The ease of interaction with the user should be enhanced through intuitive and simple interfaces to enhance the user experience. |Users will be able to understand how the game works thanks to the clarity of its rules and ease of navigation. @@ -45,10 +40,15 @@ occurs. |Integrity |The game must be played without errors. |The answer determined as correct for each question by the system shall be the one that is actually correct. -|High +|Medium |Interactivity |The user must answer a series of questions in which the user must select the correct answer in each case. |For each of the questions, the user must select the correct answer from those provided by the system. -|High +|Medium + +|Privacy +|In order to be able to play, the user must log in to the application. +|Only the user who created/owns the account will have access to it (unless he/she gives someone else his/her credentials). +|Low |=== \ No newline at end of file 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 57/71] 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 a5b5257a614edb900b94e790402bc5a4369d40dc Mon Sep 17 00:00:00 2001 From: Liliana Date: Thu, 22 Feb 2024 18:18:17 +0100 Subject: [PATCH 58/71] =?UTF-8?q?Modificaciones=20de=20decisiones=20arquit?= =?UTF-8?q?ect=C3=B3nicas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/src/09_architecture_decisions.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/src/09_architecture_decisions.adoc b/docs/src/09_architecture_decisions.adoc index 73da571c..ee0816e2 100644 --- a/docs/src/09_architecture_decisions.adoc +++ b/docs/src/09_architecture_decisions.adoc @@ -40,15 +40,15 @@ There you will find links and examples about ADR. |Advantages |Disagvantanges -|React +|Use of React |It is the most used javascript framework and there is a lot of documentation about it. |All of us in the team will have to learn how to use it because we have never worked with it. -|JavaScript +|Use of JavaScript |It is a language we have all used. |It is a complex language that can cause us problems while other simpler languages could make our work easier. -|MongoDB +|Use of MongoDB |Being a non-relational database, it is easier to use. In addition, it is used by large telecommunications companies. |Non-relational databases are the ones with which we have the least experience. |=== 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 59/71] 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 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 From 9416fa8b92b939f6af65b720e419c8389716168d Mon Sep 17 00:00:00 2001 From: Marco Quintana Date: Thu, 22 Feb 2024 18:25:12 +0100 Subject: [PATCH 60/71] hotfix --- docs/images/deployment.png | Bin 0 -> 62508 bytes docs/images/deployment.svg | 1 - docs/src/07_deployment_view.adoc | 7 ++----- 3 files changed, 2 insertions(+), 6 deletions(-) create mode 100644 docs/images/deployment.png delete mode 100644 docs/images/deployment.svg diff --git a/docs/images/deployment.png b/docs/images/deployment.png new file mode 100644 index 0000000000000000000000000000000000000000..cc2c20802012c812187ef209401f8c18d432d749 GIT binary patch literal 62508 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�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
2Zx{~Ek9ut-D<3=Q5tzb`D< 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 V{8(D7F0Q~oCHW(A8M1~R{|BVY9U%Y! literal 0 HcmV?d00001 diff --git a/docs/images/deployment.svg b/docs/images/deployment.svg deleted file mode 100644 index e7f67add..00000000 --- a/docs/images/deployment.svg +++ /dev/null @@ -1 +0,0 @@ -
Azure VM
Questions Generator API
WebApp
Questions History API
Questions History Database
Users Database
USER
WikiData
\ No newline at end of file diff --git a/docs/src/07_deployment_view.adoc b/docs/src/07_deployment_view.adoc index 47c397cb..239f6db9 100644 --- a/docs/src/07_deployment_view.adoc +++ b/docs/src/07_deployment_view.adoc @@ -55,11 +55,8 @@ Describe (usually in a combination of diagrams, tables, and text): For multiple environments or alternative deployments please copy and adapt this section of arc42 for all relevant environments. **** -=== Infrastructure Level 1 - -[role="arc42help"] +image::deployment.png["Deployment View"] -image::deployment.svg["Deployment View"] In addition to what is shown in the diagram, we will also use Graphana and Prometheus during the production stage as code monitoring systems. Motivation:: @@ -71,4 +68,4 @@ Final product will be deployed in http://wiq.sytes.net/ (if that does not work, Quality and/or Performance Features:: As for performance features, our current Azure MV has 2 GiB RAM and 1vCPU. If that was not enough, we can always switch to an Oracle VM, which has better resources for free. -MongoDB will be used in both Databases. \ No newline at end of file +Each microservice has its own container aswell as its own database in case of needing one. \ No newline at end of file From fac11d2d09b82701ff01c141e9a0fd4570298fca Mon Sep 17 00:00:00 2001 From: Jonni Date: Thu, 22 Feb 2024 18:34:28 +0100 Subject: [PATCH 61/71] 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 22ba576677511229c6770a10dbf473c9c775926d Mon Sep 17 00:00:00 2001 From: Marcos Barril Villaverde Date: Thu, 22 Feb 2024 18:57:01 +0100 Subject: [PATCH 62/71] Minor fix --- docs/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 148a4d21..e6b27e8b 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -220,9 +220,9 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "node_modules/hasown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", - "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", "dependencies": { "function-bind": "^1.1.2" }, From 4f17085aa17160869f739aa7329b1e7df3fbf3d9 Mon Sep 17 00:00:00 2001 From: Marcos Barril Villaverde Date: Thu, 22 Feb 2024 19:01:32 +0100 Subject: [PATCH 63/71] Minor fixes --- docs/src/05_building_block_view.adoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/src/05_building_block_view.adoc b/docs/src/05_building_block_view.adoc index 3e432e4a..adb00644 100644 --- a/docs/src/05_building_block_view.adoc +++ b/docs/src/05_building_block_view.adoc @@ -64,9 +64,11 @@ Insert your explanations of black boxes from level 1: If you use tabular form you will only describe your black boxes with name and responsibility according to the following schema: [cols="1,2" options="header"] +|=== | **Name** | **Responsibility** | __ | __ | __ | __ +|=== If you use a list of black box descriptions then you fill in a separate black box template for every important building block . Its headline is the name of the black box. **** @@ -133,7 +135,6 @@ package "WIQ App" { [options="header"] [cols="1,2"] -[options="header"] |=== |Name |Description |Web App From 088f93d11d66535c00c2830e1da8fe9c4f0b1117 Mon Sep 17 00:00:00 2001 From: MarcosBarrilVillaverde <114151873+MarcosBarrilVillaverde@users.noreply.github.com> Date: Thu, 22 Feb 2024 19:11:10 +0100 Subject: [PATCH 64/71] Update package-lock.json --- docs/package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index e6b27e8b..ab1646f2 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -222,7 +222,7 @@ "node_modules/hasown": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", "dependencies": { "function-bind": "^1.1.2" }, From 465dc50770bf85c73e067aeffce51dfcfe1f7e05 Mon Sep 17 00:00:00 2001 From: Jonni Date: Thu, 22 Feb 2024 19:51:23 +0100 Subject: [PATCH 65/71] 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 66/71] 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 67/71] 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 ``` From 45f041271e0ed318a08cc816cfb36429914c62dd Mon Sep 17 00:00:00 2001 From: Alex Date: Thu, 22 Feb 2024 20:35:38 +0100 Subject: [PATCH 68/71] hotfix: substituted the diagrams for images of them --- docs/images/05_level1Diagram.png | Bin 0 -> 5225 bytes docs/images/05_level2Diagram.png | Bin 0 -> 29778 bytes docs/src/05_building_block_view.adoc | 26 ++++++-------------------- 3 files changed, 6 insertions(+), 20 deletions(-) create mode 100644 docs/images/05_level1Diagram.png create mode 100644 docs/images/05_level2Diagram.png diff --git a/docs/images/05_level1Diagram.png b/docs/images/05_level1Diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..eb2fdd2956a3a168a645d9924894ed87af207f7c GIT binary patch literal 5225 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 literal 0 HcmV?d00001 diff --git a/docs/images/05_level2Diagram.png b/docs/images/05_level2Diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..6e4ddedbd985d62bbf8b0a6b5c73f5b48af94895 GIT binary patch literal 29778 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
&_AsOh`-8-H^;1 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 literal 0 HcmV?d00001 diff --git a/docs/src/05_building_block_view.adoc b/docs/src/05_building_block_view.adoc index 7594df68..a386e81f 100644 --- a/docs/src/05_building_block_view.adoc +++ b/docs/src/05_building_block_view.adoc @@ -45,11 +45,8 @@ In the best case you will get away with examples or simple signatures. === Level 1: Overall System's whitebox -[plantuml,"Level 1: Overall System's whitebox",png] ----- -:user: -> [WIQ App] : Interacts with -[WIQ App] <.> [WikiData] : Gets Data ----- +image::05_level1Diagram.png[Level 1 Diagram] + ==== Motivation @@ -112,20 +109,9 @@ according the the following black box template: * (Optional) Open issues/problems/risks **** -[plantuml,"Level 2:general structure of a system",png] ----- -:usuario: -package "WIQ App" { -:usuario: -> [WebApp] : interacts -[WebApp] <---> [Questions Service] : Get data -[WebApp] <---> [Game Service] : Plays -[WebApp] <--> [Question Historic Service] : Store/load data -[WebApp] <--> [User Statistics Service] : Store/load data -[WebApp] <-> [Authentification Service] : logs in / Register -} - -[Questions Service] <..> [WikiData] : Get data ----- + +image::05_level2Diagram.png[Level 2 Diagram] + ==== Motivation @@ -153,7 +139,7 @@ package "WIQ App" { === Level 3 -image::05_Level_3_Diagram.png[] +image::05_Level_3_Diagram.png[Level 3 Diagram] ==== Motivation From f208455100c2bebe20cc08b8437a797f57669dd1 Mon Sep 17 00:00:00 2001 From: Marco Quintana Date: Thu, 22 Feb 2024 21:43:06 +0100 Subject: [PATCH 69/71] Domain model done --- docs/images/08_domain_model.png | Bin 0 -> 24220 bytes docs/src/08_concepts.adoc | 17 ++--------------- 2 files changed, 2 insertions(+), 15 deletions(-) create mode 100644 docs/images/08_domain_model.png diff --git a/docs/images/08_domain_model.png b/docs/images/08_domain_model.png new file mode 100644 index 0000000000000000000000000000000000000000..1fcf2a76ad948c158185394c4f56202fd702fc42 GIT binary patch literal 24220 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 MtGrx(cVcn>3+DCr#{d8T literal 0 HcmV?d00001 diff --git a/docs/src/08_concepts.adoc b/docs/src/08_concepts.adoc index 591ccf1f..e12e3995 100644 --- a/docs/src/08_concepts.adoc +++ b/docs/src/08_concepts.adoc @@ -56,18 +56,5 @@ See https://docs.arc42.org/section-8/[Concepts] in the arc42 documentation. **** -=== __ - -__ - - - -=== __ - -__ - -... - -=== __ - -__ +=== Domain model +image::08_domain_model.png["Domain model"] \ No newline at end of file From fbbfd97618157615584ee6b7e1b1d3f67c6fc067 Mon Sep 17 00:00:00 2001 From: Abel <114153419+AbelMH1@users.noreply.github.com> Date: Fri, 23 Feb 2024 09:10:53 +0100 Subject: [PATCH 70/71] Delete .vscode directory HOTFIX: Deleted local directory from visual studio code --- .vscode/settings.json | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index ae1c8ac3..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "asciidoc.antora.enableAntoraSupport": true -} \ No newline at end of file From d1f965ed485150e577310d3f8074ef1456485d47 Mon Sep 17 00:00:00 2001 From: Abel <114153419+AbelMH1@users.noreply.github.com> Date: Fri, 23 Feb 2024 09:17:14 +0100 Subject: [PATCH 71/71] Delete docs/images/03-deployment-diagram-EN.png HOTFIX: Deleted unused image --- docs/images/03-deployment-diagram-EN.png | Bin 83762 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/images/03-deployment-diagram-EN.png diff --git a/docs/images/03-deployment-diagram-EN.png b/docs/images/03-deployment-diagram-EN.png deleted file mode 100644 index 372e2fb7c82c5d899194b85ade0d60d707bbe443..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83762 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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 42/71] 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 43/71] 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 df870787d1136a7a3026077c008cb05d15686d9d Mon Sep 17 00:00:00 2001 From: Marco Quintana Date: Thu, 22 Feb 2024 16:43:18 +0100 Subject: [PATCH 44/71] hotfix --- docs/src/07_deployment_view.adoc | 51 ++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/docs/src/07_deployment_view.adoc b/docs/src/07_deployment_view.adoc index 9186c2b0..47c397cb 100644 --- a/docs/src/07_deployment_view.adoc +++ b/docs/src/07_deployment_view.adoc @@ -4,6 +4,57 @@ ifndef::imagesdir[:imagesdir: ../images] == Deployment View +[role="arc42help"] +**** +.Content +The deployment view describes: + + 1. technical infrastructure used to execute your system, with infrastructure elements like geographical locations, environments, computers, processors, channels and net topologies as well as other infrastructure elements and + +2. mapping of (software) building blocks to that infrastructure elements. + +Often systems are executed in different environments, e.g. development environment, test environment, production environment. In such cases you should document all relevant environments. + +Especially document a deployment view if your software is executed as distributed system with more than one computer, processor, server or container or when you design and construct your own hardware processors and chips. + +From a software perspective it is sufficient to capture only those elements of an infrastructure that are needed to show a deployment of your building blocks. Hardware architects can go beyond that and describe an infrastructure to any level of detail they need to capture. + +.Motivation +Software does not run without hardware. +This underlying infrastructure can and will influence a system and/or some +cross-cutting concepts. Therefore, there is a need to know the infrastructure. + +.Form + +Maybe a highest level deployment diagram is already contained in section 3.2. as +technical context with your own infrastructure as ONE black box. In this section one can +zoom into this black box using additional deployment diagrams: + +* UML offers deployment diagrams to express that view. Use it, probably with nested diagrams, +when your infrastructure is more complex. +* When your (hardware) stakeholders prefer other kinds of diagrams rather than a deployment diagram, let them use any kind that is able to show nodes and channels of the infrastructure. + + +.Further Information + +See https://docs.arc42.org/section-7/[Deployment View] in the arc42 documentation. + +**** + +=== Infrastructure Level 1 + +[role="arc42help"] +**** +Describe (usually in a combination of diagrams, tables, and text): + +* distribution of a system to multiple locations, environments, computers, processors, .., as well as physical connections between them +* important justifications or motivations for this deployment structure +* quality and/or performance features of this infrastructure +* mapping of software artifacts to elements of this infrastructure + +For multiple environments or alternative deployments please copy and adapt this section of arc42 for all relevant environments. +**** + === Infrastructure Level 1 [role="arc42help"] From 3e52a6458dab71efce0775eddce23915d44989cd Mon Sep 17 00:00:00 2001 From: Marcos Barril Villaverde Date: Thu, 22 Feb 2024 16:50:38 +0100 Subject: [PATCH 45/71] Fixes on UML diagrams --- docs/images/51.png | Bin 5225 -> 0 bytes docs/images/52.png | Bin 29778 -> 0 bytes docs/src/05_building_block_view.adoc | 21 +++++++++++++++++++-- 3 files changed, 19 insertions(+), 2 deletions(-) delete mode 100644 docs/images/51.png delete mode 100644 docs/images/52.png diff --git a/docs/images/51.png b/docs/images/51.png deleted file mode 100644 index eb2fdd2956a3a168a645d9924894ed87af207f7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5225 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 diff --git a/docs/images/52.png b/docs/images/52.png deleted file mode 100644 index 3526a504875541a869884311a40d437160d3c980..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29778 zcmZs@by(D0_dPs{pdw*_A}K0LmxO?b(k0T3lyt)YN{R?b3DOb*(%mgXt8`0)ba(f= z2YsI3^S!S3FYg<(TH0_kFapJ=hc`Q-ij zTH;pKu73lo^cCKj=90?rLci(3a@{5;1JXYJ{p#OzR#!F5_dWA&1mHb+{zkd-WxO*t zZ?(v$h00n754Bp(Kkk7y*#k1Q`Lwz>S=)Nz^Z3OuC>IJoGAH17@JrHE^<%iyKd}nh zxbk+C#VAZ%#a(TrO40^bi`q{?RdD}Z;8pq*pP%+cSKK2X4+qH$&cupeFOC^WDAaj) z*9EtoMlO_SkSIjk^YZNk{n$(o);4nY&R<=O?^&W{q9j!qdTEOs=JS}xc;+T=rsJlf z_O^XAjjDA<-ImIKVY@dH`B`)Ge{59n&1w$vHLY(a)&Dd|+Ud0~Le6y}q5xxKb*?Aa;-N%9lO)q*dMmmT>O`i%AUe z-!cSoOvqdLOtnPK`PK;}LYq~kq#acf{7k_5wkvQg1r+#Fk!9E)0n^|;Ww6XcQT~X=Cd-}(U z^HD`f1t;g`V1+J|04;1Mf=CJrh5i?@^$v*%|7eMdDxv?^^TWUY{T-eCmCyA=bJ2Qd zX`sGd(1j1epgKs|tUQw2);L-63#)R>_qUs$$a%S+KK(kT4WG@$`TZrkwzig9)pn`> zv+JhFjNQucK(+?YAiJifrb{gP0<6jg<=i$ilAbuX;iFAT${q?Cik+j&V^y&^==)#M zikV-iIz48Z#y@C=-zFv|p2x&S&ULu`{q;K}m4x%*PV1LP2I}ghn&{A+(Z4Zo{5w+x zxf^AH^7iw4O_iluq@#Hq9~W1TN~6Lqse(#8ByK3Psl7cw;d4kxNGP3>gQMeYWAH