From 896c32c82d207b51a42b5e39937931e97a8789f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81ngel=20Molt=C3=B3?= <144908056+UO287747@users.noreply.github.com> Date: Mon, 19 Feb 2024 10:14:29 +0100 Subject: [PATCH 1/7] Update 03_system_scope_and_context.adoc --- docs/src/03_system_scope_and_context.adoc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/src/03_system_scope_and_context.adoc b/docs/src/03_system_scope_and_context.adoc index 053fb8c6..72a9acab 100644 --- a/docs/src/03_system_scope_and_context.adoc +++ b/docs/src/03_system_scope_and_context.adoc @@ -76,13 +76,15 @@ wd --> [app]: Return keyword [plantuml, "deployment", png] ---- -node "Aplication Server" as app +@startuml +node "Application Server" as app node "DB Server" as db { -artifact "MongoDB Server" + artifact "MongoDB Server" } -node Wikidata as w -node Interface as i +node "Wikidata" as w +node "Interface" as i app - db app -- w app -- i +@enduml ---- From c5ab4bd814e5c4cb1107dc23612707966e4d7f1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81ngel=20Molt=C3=B3?= <144908056+UO287747@users.noreply.github.com> Date: Mon, 19 Feb 2024 10:15:17 +0100 Subject: [PATCH 2/7] Update 03_system_scope_and_context.adoc --- docs/src/03_system_scope_and_context.adoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/src/03_system_scope_and_context.adoc b/docs/src/03_system_scope_and_context.adoc index 72a9acab..507e9e93 100644 --- a/docs/src/03_system_scope_and_context.adoc +++ b/docs/src/03_system_scope_and_context.adoc @@ -48,6 +48,7 @@ Regarding the information exchanged with the application, it will require having [plantuml, "context", png] ---- +@startuml component "App" as app :User: -> [app]: Answer question [app] -> User: Return result @@ -57,6 +58,7 @@ DB -> [app]: Return question component "WikiData" as wd [app] --> wd: Ask for keyword wd --> [app]: Return keyword +@enduml ---- --- From 767ea4c64296365e7cb738129c880a1e37e249e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81ngel=20Molt=C3=B3?= <144908056+UO287747@users.noreply.github.com> Date: Mon, 19 Feb 2024 10:17:49 +0100 Subject: [PATCH 3/7] Update 03_system_scope_and_context.adoc --- docs/src/03_system_scope_and_context.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/03_system_scope_and_context.adoc b/docs/src/03_system_scope_and_context.adoc index 507e9e93..7b595c8a 100644 --- a/docs/src/03_system_scope_and_context.adoc +++ b/docs/src/03_system_scope_and_context.adoc @@ -51,7 +51,7 @@ Regarding the information exchanged with the application, it will require having @startuml component "App" as app :User: -> [app]: Answer question -[app] -> User: Return result +[app] -> :User: Return result database DB [app] -> DB: Ask for question DB -> [app]: Return question From 18eb3f10170f9a4fa8fa0b624a549a7223edf24a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Garc=C3=ADa=20Mart=C3=ADnez?= <124291125+uo289097@users.noreply.github.com> Date: Mon, 19 Feb 2024 10:20:11 +0100 Subject: [PATCH 4/7] Update 05_building_block_view.adoc --- docs/src/05_building_block_view.adoc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/src/05_building_block_view.adoc b/docs/src/05_building_block_view.adoc index 466e7dfc..b5a3044f 100644 --- a/docs/src/05_building_block_view.adoc +++ b/docs/src/05_building_block_view.adoc @@ -10,9 +10,10 @@ ifndef::imagesdir[:imagesdir: ../images] ---- @startuml -Actor User -Component WIQ -Component Wikidata +actor User +component WIQ +component Wikidata + User -right-> WIQ: interacts with WIQ -right-> Wikidata: receives data Wikidata -right..> WIQ From 2a28f8d256b758e696551825db6b7afff7ebfc2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Garc=C3=ADa=20Mart=C3=ADnez?= <124291125+uo289097@users.noreply.github.com> Date: Mon, 19 Feb 2024 10:27:35 +0100 Subject: [PATCH 5/7] Add files via upload --- docs/images/level1.png | Bin 0 -> 5229 bytes docs/images/level2.png | Bin 0 -> 14609 bytes docs/images/level3.png | Bin 0 -> 29852 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/level1.png create mode 100644 docs/images/level2.png create mode 100644 docs/images/level3.png diff --git a/docs/images/level1.png b/docs/images/level1.png new file mode 100644 index 0000000000000000000000000000000000000000..a4d4749d702763b7fad4e1959926a733dc893c9c GIT binary patch literal 5229 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 j4>k$m@BiQLq@9WwDC%~epGl(c2;3o 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 literal 0 HcmV?d00001 From d63547b6e8fbddf98b854d835cc84396803a23f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Garc=C3=ADa=20Mart=C3=ADnez?= <124291125+uo289097@users.noreply.github.com> Date: Mon, 19 Feb 2024 10:29:55 +0100 Subject: [PATCH 6/7] Update 05_building_block_view.adoc --- docs/src/05_building_block_view.adoc | 69 ++-------------------------- 1 file changed, 5 insertions(+), 64 deletions(-) diff --git a/docs/src/05_building_block_view.adoc b/docs/src/05_building_block_view.adoc index b5a3044f..10e58454 100644 --- a/docs/src/05_building_block_view.adoc +++ b/docs/src/05_building_block_view.adoc @@ -6,19 +6,7 @@ ifndef::imagesdir[:imagesdir: ../images] === Level 1: Whitebox of the Overall System -[plantuml, "level1", png] - ----- -@startuml -actor User -component WIQ -component Wikidata - -User -right-> WIQ: interacts with -WIQ -right-> Wikidata: receives data -Wikidata -right..> WIQ -@enduml ----- +image::level1.png["Level 1"] ==== Motivation @@ -43,22 +31,9 @@ Wikidata -right..> WIQ |=== === Level 2 -[plantuml, "level2", png] ----- -Actor User -Component WIQ { - Component ui as "User Interface" - Component ms as "MicroService" - Database db as "MongoDB" -} - -Component wd as "WikiData" - -User -> ui: Interacts -ui -> ms: Sends requests -ms <-> db: Reads -wd -> ms: Gives data ----- + +image::level2.png["Level 2"] + ==== Motivation Shows how the application will work internally. The user, through the user interface, will use microservices to access the different modules with the help of the database. @@ -82,40 +57,8 @@ Shows how the application will work internally. The user, through the user inter |=== === Level 3 -[plantuml, "level3", png] ----- -Component WIQ { - - Component ms as "MicroServices" { - Component users as "Users Service" - Component question as "Question Service" - Component game as "Game Service" - Component ranking as "ranking" - Component history as "History" - Database db as "MongoDB" - } - - Component ui as "User Interface" - +image::level3.png["Level 3"] - ui --> users - ui --> game - ui --> history - ui --> ranking - - - - users <-down-> db - game <-down-> db - ranking <-down-> db - history <-down-> db -} - -Component wd as "Wikidata" - -game --> question: generates question -question <-> wd: ask and answer the question ----- ==== Motivation Detailed structure of the system. Focused on the components of the _User Interface_ and _Data Access_. @@ -147,5 +90,3 @@ Detailed structure of the system. Focused on the components of the _User Interfa |=== - -[role="arc42help"] From 13f06525a7c40bbfe0d65bcde5c0bb9e9d75f9fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81ngel=20Molt=C3=B3?= <144908056+UO287747@users.noreply.github.com> Date: Mon, 19 Feb 2024 10:31:30 +0100 Subject: [PATCH 7/7] Update 03_system_scope_and_context.adoc --- docs/src/03_system_scope_and_context.adoc | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/src/03_system_scope_and_context.adoc b/docs/src/03_system_scope_and_context.adoc index 7b595c8a..b0ca01ea 100644 --- a/docs/src/03_system_scope_and_context.adoc +++ b/docs/src/03_system_scope_and_context.adoc @@ -3,8 +3,6 @@ ifndef::imagesdir[:imagesdir: ../images] [[section-system-scope-and-context]] == System Scope and Context - -[role="arc42help"] --- === Contents @@ -17,8 +15,6 @@ The main constraints are developing the game as a web app and using Wikidata to === Business Context -[role="arc42help"] - ==== Contents * *Users:* They interact directly with the application through the user interface provided by the frontend using React, HTML, CSS, and JavaScript.