Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: Arquisoft/wiq_es05b
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.0.8
Choose a base ref
...
head repository: Arquisoft/wiq_es05b
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref

Commits on May 1, 2024

  1. Copy the full SHA
    5f740b8 View commit details
  2. grafana proxy

    algarfer committed May 1, 2024
    Copy the full SHA
    b2f4951 View commit details
  3. 😎🤙

    algarfer committed May 1, 2024
    Copy the full SHA
    b705e03 View commit details
  4. Update sonar-project.properties

    Changed the sources bc they were wrong
    uo289321 authored May 1, 2024
    Copy the full SHA
    6e076f6 View commit details
  5. Update sonar-project.properties

    I messed it up, changed it to how it's supossed to be
    uo289321 authored May 1, 2024
    Copy the full SHA
    2085d5e View commit details
  6. Updated sonar properties

    algarfer committed May 1, 2024
    Copy the full SHA
    e2f394a View commit details
  7. new Game test

    UO276255 committed May 1, 2024
    Copy the full SHA
    5688e3b View commit details
  8. Copy the full SHA
    dbb3e13 View commit details
  9. Copy the full SHA
    4018267 View commit details
  10. Copy the full SHA
    7641805 View commit details
  11. Copy the full SHA
    a28cfc3 View commit details
  12. Modified build pipline

    Added an step to remove coverage report of the difunc dependencie Routes.js files in develop don't have coverage #167
    algarfer committed May 1, 2024
    Copy the full SHA
    4e794e1 View commit details
  13. Copy the full SHA
    5448b55 View commit details
  14. Increasing coverage

    Related to #167
    algarfer committed May 1, 2024
    Copy the full SHA
    f19e548 View commit details
  15. Forgotten file

    algarfer committed May 1, 2024
    Copy the full SHA
    df9729a View commit details
  16. Update 12_testing_report.adoc

    Fixed typo
    uo289321 authored May 1, 2024
    Copy the full SHA
    83aad1e View commit details
  17. Update 05_building_block_view.adoc

    Fixed incorrect info
    uo289321 authored May 1, 2024
    Copy the full SHA
    bdaf1dc View commit details
  18. Copy the full SHA
    ad83db8 View commit details
  19. Copy the full SHA
    b5f05d1 View commit details
  20. random commit

    donatomartin committed May 1, 2024
    Copy the full SHA
    ba9c27a View commit details
  21. Copy the full SHA
    cb36f8a View commit details
  22. Copy the full SHA
    6629539 View commit details
  23. Social tests

    algarfer committed May 1, 2024
    Copy the full SHA
    0405f63 View commit details
  24. Added python jordi script

    algarfer committed May 1, 2024
    Copy the full SHA
    f64e4ae View commit details
  25. Info snackbar test added

    DavidAlvrz committed May 1, 2024
    Copy the full SHA
    0c4ff42 View commit details
  26. Test

    algarfer committed May 1, 2024
    Copy the full SHA
    5f53bbe View commit details
  27. Merge pull request #224 from Arquisoft/pepito

    Pepito
    algarfer authored May 1, 2024
    Copy the full SHA
    e512aad View commit details
  28. Update README.md

    algarfer authored May 1, 2024
    Copy the full SHA
    55f25bc View commit details

Commits on Jan 7, 2025

  1. Copy the full SHA
    c41dea6 View commit details

Commits on Feb 7, 2025

  1. Update README.md

    donatomartin authored Feb 7, 2025
    Copy the full SHA
    5f9592c View commit details
  2. Copy the full SHA
    4f554b6 View commit details
Showing with 14,441 additions and 48,956 deletions.
  1. +3 −0 .github/workflows/build.yml
  2. +8 −0 .github/workflows/deploy.yml
  3. +3 −4 README.md
  4. +149 −0 adminpanel/adminPanel.py
  5. +122 −0 adminpanel/groups.json
  6. +3 −0 {jordi → adminpanel}/groupsLoader.py
  7. +1 −2 docker-compose.yml
  8. BIN docs/images/10_quality_tree.drawio.png
  9. BIN docs/images/accessibility_game_desktop.png
  10. BIN docs/images/accessibility_game_mobile.png
  11. BIN docs/images/accessibility_menu_desktop.png
  12. BIN docs/images/accessibility_menu_mobile.png
  13. BIN docs/images/gatling_test_01.PNG
  14. BIN docs/images/gatling_test_01_graphics.PNG
  15. BIN docs/images/gatling_test_02.PNG
  16. +4 −1 docs/src/05_building_block_view.adoc
  17. +42 −4 docs/src/12_testing_report.adoc
  18. +3 −3 gatewayservice/gateway-service.js
  19. +1 −1 gatewayservice/package.json
  20. +1 −1 gatewayservice/routes/authRoutes.test.js
  21. 0 gatewayservice/routes/{authRoutes.js → gatewayAuthRoutes.js}
  22. 0 gatewayservice/routes/{historyRoutes.js → gatewayHistoryRoutes.js}
  23. 0 gatewayservice/routes/{usersRoutes.js → gatewayUsersRoutes.js}
  24. +1 −1 jordi/routes/jordi-think.js
  25. +1 −1 monitoring/grafana/grafana.ini
  26. +3 −1 proxy/default.conf
  27. +6 −2 sonar-project.properties
  28. +1 −1 userhistory/package.json
  29. +1 −1 users/authservice/auth-service.js
  30. +1 −1 users/authservice/package.json
  31. 0 users/authservice/repositories/{userRepository.js → authUserRepository.js}
  32. +1 −1 users/userservice/package.json
  33. +30 −57 webapp/loadTest/{results.GameResults → GameResult}/index.html
  34. +11 −0 webapp/loadTest/GameResult/js/all_sessions.js
  35. 0 webapp/loadTest/{results.GameResults → GameResult}/js/assertions.xml
  36. 0 webapp/loadTest/{results.GameResults → GameResult}/js/bootstrap.min.js
  37. 0 webapp/loadTest/{results.GameResults → GameResult}/js/ellipsis.js
  38. 0 webapp/loadTest/{results.GameResults → GameResult}/js/gatling.js
  39. +77 −0 webapp/loadTest/GameResult/js/global_stats.json
  40. 0 webapp/loadTest/{results.GameResults → GameResult}/js/highcharts-more.js
  41. 0 webapp/loadTest/{results.GameResults → GameResult}/js/highstock.js
  42. 0 webapp/loadTest/{results.GameResults → GameResult}/js/jquery-3.5.1.min.js
  43. 0 webapp/loadTest/{results.GameResults → GameResult}/js/menu.js
  44. +703 −0 webapp/loadTest/GameResult/js/stats.js
  45. +661 −0 webapp/loadTest/GameResult/js/stats.json
  46. 0 webapp/loadTest/{results.GameResults → GameResult}/js/theme.js
  47. 0 webapp/loadTest/{results.GameResults → GameResult}/js/unpack.js
  48. +12,403 −0 webapp/loadTest/GameResult/simulation.log
  49. 0 webapp/loadTest/{results.GameResults → GameResult}/style/bootstrap.min.css
  50. 0 webapp/loadTest/{results.GameResults → GameResult}/style/close.svg
  51. 0 webapp/loadTest/{results.GameResults → GameResult}/style/executions.svg
  52. 0 webapp/loadTest/{results.GameResults → GameResult}/style/expand.svg
  53. BIN webapp/loadTest/{results.GameResults → GameResult}/style/favicon.ico
  54. 0 webapp/loadTest/{results.GameResults → GameResult}/style/fullscreen.svg
  55. 0 webapp/loadTest/{results.GameResults → GameResult}/style/logo-dark.svg
  56. 0 webapp/loadTest/{results.GameResults → GameResult}/style/logo-enterprise-dark.svg
  57. 0 webapp/loadTest/{results.GameResults → GameResult}/style/logo-enterprise-light.svg
  58. 0 webapp/loadTest/{results.GameResults → GameResult}/style/logo-light.svg
  59. 0 webapp/loadTest/{results.GameResults → GameResult}/style/sort-down.svg
  60. 0 webapp/loadTest/{results.GameResults → GameResult}/style/sort-up.svg
  61. 0 webapp/loadTest/{results.GameResults → GameResult}/style/sort.svg
  62. 0 webapp/loadTest/{results.GameResults → GameResult}/style/style.css
  63. +30 −143 webapp/loadTest/PlayGame.scala
  64. +0 −11 webapp/loadTest/results.GameResults/js/all_sessions.js
  65. +0 −77 webapp/loadTest/results.GameResults/js/global_stats.json
  66. +0 −2,015 webapp/loadTest/results.GameResults/js/stats.js
  67. +0 −1,973 webapp/loadTest/results.GameResults/js/stats.json
  68. +0 −44,569 webapp/loadTest/results.GameResults/simulation.log
  69. +28 −0 webapp/src/__test__/components/InfoSnackBar.test.js
  70. +0 −24 webapp/src/__test__/scripts/WebVitals.test.js
  71. +32 −0 webapp/src/__test__/scripts/reportWebVitals.test.js
  72. +0 −61 webapp/src/__test__/views/AddUser.draft.js
  73. +89 −0 webapp/src/__test__/views/Social.test.js
  74. +22 −0 webapp/src/index.test.js
  75. +0 −1 wiki
3 changes: 3 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -31,6 +31,9 @@ jobs:
- run: npm --prefix jordi test -- --coverage
- run: npm --prefix webapp test -- --coverage

- name: Remove some coverage files
run: rm -rf gatewayservice/node_modules/difunc/coverage

- name: Analyze with SonarCloud
uses: sonarsource/sonarcloud-github-action@master
env:
8 changes: 8 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -446,6 +446,14 @@ jobs:
rm -rf ./*
wget https://raw.githubusercontent.com/arquisoft/wiq_es05b/master/docker-compose.yml -O docker-compose.yml
wget https://raw.githubusercontent.com/arquisoft/wiq_es05b/master/.env -O .env
echo "GF_SECURITY_ADMIN_USER=${{ secrets.GF_SECURITY_ADMIN_USER }}" >> .env
echo "GF_SECURITY_ADMIN_PASSWORD=${{ secrets.GF_SECURITY_ADMIN_PASSWORD }}" >> .env
echo "GF_SERVER_SERVE_FROM_SUB_PATH=false" >> .env
echo "GF_SERVER_DOMAIN=cyt.is-cool.dev" >> .env
echo "GF_SERVER_PROTOCOL=http" >> .env
echo "ELASTIC_PASSWORD=${{ secrets.ELASTIC_PASSWORD }}" >> .env
echo "LOGSTASH_INTERNAL_PASSWORD=${{ secrets.LOGSTASH_INTERNAL_PASSWORD }}" >> .env
echo "KIBANA_SYSTEM_PASSWORD=${{ secrets.KIBANA_SYSTEM_PASSWORD }}" >> .env
docker logout ghcr.io
docker logout ghcr
docker image prune -f
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -29,8 +29,7 @@ This repo is a basic application composed of several components.
- **User service**. Express service that handles the insertion of new users in the system.
- **Auth service**. Express service that handles the authentication of users.
- **Webapp**. React web application that uses the gateway service to allow basic login and new user features.
- **Jordi Ask Service**. Express service that handles the wikidata-based questions generated.
- **Jordi Think Service**. Local service that generates questions periodically using the WikiData API.
- **Jordi**. Express service that generates Wikidata-based questions and serves them to the users.
- **Ranking Service**. Express service that handles the global scoring system of the app.

Both the user and auth service share a Mongo database that is accessed with mongoose.
@@ -150,7 +149,7 @@ Note that this action logs in the remote machine and downloads the docker-compos
| 📚 UOId | 🧑‍💻 Name | 📧 Email | 😺 GitHub |
| :---: | :---: | :---: | :---: |
| UO289295 | Álvaro García | [UO289295@uniovi.es](mailto:UO289295@uniovi.es) | [![GitHub](https://img.shields.io/badge/GitHub-algarfer-brightgreen)](https://github.com/algarfer) |
| UO288787 | Donato Martín | [UO288787@uniovi.es](mailto:UO288787@uniovi.es) | [![GitHub](https://img.shields.io/badge/GitHub-dononitram-brightgreen)](https://github.com/dononitram) |
| UO288787 | Donato Martín | [UO288787@uniovi.es](mailto:UO288787@uniovi.es) | [![GitHub](https://img.shields.io/badge/GitHub-donatomartin-brightgreen)](https://github.com/donatomartin) |
| UO288705 | David Álvarez | [UO288705@uniovi.es](mailto:UO288705@uniovi.es) | [![GitHub](https://img.shields.io/badge/GitHub-DavidAlvrz-brightgreen)](https://github.com/DavidAlvrz) |
| UO276255 | Rubén Rubio | [UO276255@uniovi.es](mailto:UO276255@uniovi.es) | [![GitHub](https://img.shields.io/badge/GitHub-UO276255-brightgreen)](https://github.com/UO2766255) |
| UO289321 | Luna Valdés | [UO289321@uniovi.es](mailto:UO289321@uniovi.es) | [![GitHub](https://img.shields.io/badge/GitHub-uo28931-brightgreen)](https://github.com/uo289321) |
@@ -173,7 +172,7 @@ We are grateful for their support and dedication in making this project a succes
- [Project](https://cyt.is-cool.dev/)
- [Docs](https://arquisoft.github.io/wiq_es05b/)
- [npm package](https://www.npmjs.com/package/cyt-utils?activeTab=versions)
- [OpenApi](https://cyt.is-cool.dev/api/doc)
- [OpenApi](https://cyt.is-cool.dev/api/doc) (For unknown reasons it is necessary to open the link and refresh the URL on the open page or [clear the browser cache](https://kinsta.com/knowledgebase/how-to-clear-browser-cache/#how-to-force-refresh-a-single-page). [#226](https://github.com/Arquisoft/wiq_es05b/issues/226))
- [Grafana](https://cyt.is-cool.dev/grafana)
- [Kibana](https://cyt.is-cool.dev/kibana)
149 changes: 149 additions & 0 deletions adminpanel/adminPanel.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
import tkinter as tk
from tkinter import scrolledtext, messagebox
import requests
import json

# Define the domain constant
DOMAIN = "http://158.179.216.208:8000"

# Global variable to store the auth token
auth_token = None

def format_json_display(json_text):
try:
parsed = json.loads(json_text)
formatted_json = json.dumps(parsed, indent=4)
return formatted_json
except json.JSONDecodeError:
return json_text # return original text if it's not JSON

def login():
global auth_token
try:
# Getting username and password from the GUI
username = username_entry.get()
password = password_entry.get()

# Sending POST request to login
response = requests.post(f"{DOMAIN}/login", json={"username": username, "password": password})
if response.status_code == 200:
auth_token = response.json().get('token')
response_display.config(state=tk.NORMAL)
response_display.delete('1.0', tk.END)
response_display.insert(tk.END, "Login Successful!\n")
response_display.config(state=tk.DISABLED)
else:
raise Exception("Login failed with status code: " + str(response.status_code))
except Exception as e:
messagebox.showerror("Login Error", str(e))

def send_post_request():
global auth_token
try:
# Extracting and preparing JSON data from the text field
json_data = json_input.get("1.0", tk.END)
json_payload = json.loads(json_data)

# Sending POST request
headers = {"Authorization": f"Bearer {auth_token}"}
response = requests.post(f"{DOMAIN}/admin/addGroups", json=json_payload, headers=headers)
response_display.config(state=tk.NORMAL)
response_display.delete('1.0', tk.END)
response_display.insert(tk.END, f"POST Response:\n{format_json_display(response.text)}\n")
response_display.config(state=tk.DISABLED)
except Exception as e:
messagebox.showerror("Request Error", str(e))

def send_get_groups_request():
global auth_token
try:
# Sending GET request
headers = {"Authorization": f"Bearer {auth_token}"}
response = requests.get(f"{DOMAIN}/admin/groups", headers=headers)
response_display.config(state=tk.NORMAL)
response_display.delete('1.0', tk.END)
response_display.insert(tk.END, f"Groups Data:\n{format_json_display(response.text)}\n")
response_display.config(state=tk.DISABLED)
except Exception as e:
messagebox.showerror("Request Error", str(e))

def send_remove_group_request():
global auth_token
try:
group_id = group_id_entry.get()
url = f"{DOMAIN}/admin/removeGroup/{group_id}"

# Sending GET request
headers = {"Authorization": f"Bearer {auth_token}"}
response = requests.get(url, headers=headers)
response_display.config(state=tk.NORMAL)
response_display.delete('1.0', tk.END)
response_display.insert(tk.END, f"Remove Group Response:\n{format_json_display(response.text)}\n")
response_display.config(state=tk.DISABLED)
except Exception as e:
messagebox.showerror("Request Error", str(e))

def send_gen_request():
global auth_token
try:
# Sending GET request
headers = {"Authorization": f"Bearer {auth_token}"}
response = requests.get(f"{DOMAIN}/admin/gen", headers=headers)
response_display.config(state=tk.NORMAL)
response_display.delete('1.0', tk.END)
response_display.insert(tk.END, f"Gen Response:\n{format_json_display(response.text)}\n")
response_display.config(state=tk.DISABLED)
except Exception as e:
messagebox.showerror("Request Error", str(e))

def main():
global json_input, response_display, group_id_entry, username_entry, password_entry

# Setting up the main window
root = tk.Tk()
root.title("jordiPanel Admin")
root.geometry("600x700") # Set the window size

# Login Frame
login_frame = tk.Frame(root, padx=10, pady=10)
login_frame.pack(pady=(10, 0))
tk.Label(login_frame, text="Username:").pack(side=tk.LEFT)
username_entry = tk.Entry(login_frame)
username_entry.pack(side=tk.LEFT, padx=(0, 10))
tk.Label(login_frame, text="Password:").pack(side=tk.LEFT)
password_entry = tk.Entry(login_frame, show="*")
password_entry.pack(side=tk.LEFT, padx=(0, 10))
login_button = tk.Button(login_frame, text="Login", command=login)
login_button.pack(side=tk.LEFT)


# Data Input Frame
data_frame = tk.Frame(root, padx=10, pady=10)
data_frame.pack(pady=(10, 0))
tk.Label(data_frame, text="JSON Data:").pack()
json_input = scrolledtext.ScrolledText(data_frame, height=10, width=70)
json_input.pack()

# Operations Frame
operations_frame = tk.Frame(root, padx=10, pady=10)
operations_frame.pack(pady=(10, 0))
post_button = tk.Button(operations_frame, text="Add Groups", command=send_post_request)
post_button.pack(side=tk.LEFT, padx=5)
get_groups_button = tk.Button(operations_frame, text="Get Groups", command=send_get_groups_request)
get_groups_button.pack(side=tk.LEFT, padx=5)
group_id_entry = tk.Entry(operations_frame, width=20)
group_id_entry.pack(side=tk.LEFT, padx=5)
remove_group_button = tk.Button(operations_frame, text="Remove Group", command=send_remove_group_request)
remove_group_button.pack(side=tk.LEFT, padx=5)
gen_button = tk.Button(operations_frame, text="Generate", command=send_gen_request)
gen_button.pack(side=tk.LEFT, padx=5)

# Response Display Area
response_display = scrolledtext.ScrolledText(root, height=20, width=70, bg="light grey")
response_display.pack(pady=(10, 0))
response_display.config(state=tk.DISABLED)

root.mainloop()

if __name__ == "__main__":
main()
122 changes: 122 additions & 0 deletions adminpanel/groups.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
[
{
"groupId": "capitals",
"questionItem": "Q6256",
"answer": "P36",
"statements": [
"The capital of <QuestionItem> is...",
"What is the capital of <QuestionItem>?",
"Select the capital of <QuestionItem>"
],
"categories": [
"capitals",
"geography"
]
},
{
"groupId": "continent",
"questionItem": "Q6256",
"answer": "P30",
"statements": [
"The continent of <QuestionItem> is...",
"What is the continent of <QuestionItem>?",
"Select the continent of <QuestionItem>"
],
"categories": [
"continent",
"geography"
]
},
{
"groupId": "languages",
"questionItem": "Q6256",
"answer": "P37",
"statements": [
"The language spoken in <QuestionItem> is...",
"What is the language spoken in <QuestionItem>?",
"Select the language spoken in <QuestionItem>"
],
"categories": [
"languages",
"geography"
]
},
{
"groupId": "population",
"questionItem": "Q6256",
"answer": "P1082",
"statements": [
"The population of <QuestionItem> is...",
"What is the population of <QuestionItem>",
"Select the population of <QuestionItem>"
],
"categories": [
"population",
"geography"
],
"plainText": true,
"filter": "FILTER(LANG(?question) = 'en')"
},
{
"groupId": "area",
"questionItem": "Q6256",
"answer": "P2046",
"statements": [
"The area of <QuestionItem> is...",
"What is the area of <QuestionItem>",
"Select the area of <QuestionItem>"
],
"categories": [
"area",
"geography"
],
"plainText": true,
"filter": "FILTER(LANG(?question) = 'en')"
},
{
"groupId": "gdp",
"questionItem": "Q6256",
"answer": "P2131",
"statements": [
"The GDP of <QuestionItem> is...",
"What is the GDP of <QuestionItem>",
"Select the GDP of <QuestionItem>"
],
"categories": [
"gdp",
"geography"
],
"plainText": true,
"filter": "FILTER(LANG(?question) = 'en')"
},
{
"groupId": "currency",
"questionItem": "Q6256",
"answer": "P38",
"statements": [
"The currency of <QuestionItem> is...",
"What is the currency of <QuestionItem>",
"Select the currency of <QuestionItem>"
],
"categories": [
"currency",
"geography",
"economy"
]
},
{
"groupId": "president",
"questionItem": "Q6256",
"answer": "P35",
"statements": [
"The president of <QuestionItem> is...",
"Who is the president of <QuestionItem>",
"Select the president of <QuestionItem>"
],
"categories": [
"president",
"geography",
"politics"
]
}
]
3 changes: 3 additions & 0 deletions jordi/groupsLoader.py → adminpanel/groupsLoader.py
Original file line number Diff line number Diff line change
@@ -14,6 +14,8 @@
"""



def main():
data = None
with open('groups.json') as f:
@@ -23,6 +25,7 @@ def main():
print(response.text)

requests.get('http://localhost:8003/gen')
pass

if __name__ == "__main__":
main()
3 changes: 1 addition & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -229,8 +229,7 @@ services:
- GF_SECURITY_ADMIN_PASSWORD=${GF_SECURITY_ADMIN_PASSWORD:-changeme}
- GF_SERVER_SERVE_FROM_SUB_PATH=${GF_SERVER_SERVE_FROM_SUB_PATH:-true}
- GF_SERVER_DOMAIN=${GF_SERVER_DOMAIN:-}
- GF_SERVER_HTTP_PORT=${GF_SERVER_HTTP_PORT:-}
- GF_SERVER_PROTOCOL=${GF_PROTOCOL:-}
- GF_SERVER_PROTOCOL=${GF_SERVER_PROTOCOL:-}
ports:
- "9091:9091"
depends_on:
Binary file modified docs/images/10_quality_tree.drawio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/accessibility_game_desktop.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/accessibility_game_mobile.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/accessibility_menu_desktop.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/accessibility_menu_mobile.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/gatling_test_01.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/gatling_test_01_graphics.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/gatling_test_02.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 4 additions & 1 deletion docs/src/05_building_block_view.adoc
Original file line number Diff line number Diff line change
@@ -63,11 +63,14 @@ Contained Building Blocks::
|Service which will handle the user authentication process when a new user logs in

|Users
|Service containing all user related information such as scores or history of games played.
|Service containing all user related information.

|Questions
|Service that bears the responsibility of interacting with te Wikidata API and generating the questions to be presented to the user.

|History
|Service that stores the user's game history.

|===

=== Level 3:
Loading