Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Finalizadas correcciones de la documentación #100

Merged
merged 2 commits into from
Apr 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 24 additions & 27 deletions docs/src/05_building_block_view.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,12 @@ package "WIQ App" {
:User: -> [WebApp] : " Interacts "
[WebApp] <-> [Gateway Service] : Redirects Requests
[Gateway Service] <--down-> [Game Service] : Plays
[Gateway Service] <-- [Question Historic Service] : Loads data
[Gateway Service] <-- [User Statistics Service] : Loads data
[Gateway Service] <-- [Store Question Service] : Loads data
[Gateway Service] <-- [User Stats Service] : Loads data
[Gateway Service] <-> [UserAuth Service] : Logs in / Registers
[Game Service] -> [User Statistics Service] : Stores data
[Game Service] -> [User Stats Service] : Stores data
[Game Service] <-left-> [Questions Service] : Gets questions
[Questions Service] -up-> [Question Historic Service] : Stores data
[Questions Service] -up-> [Store Question Service] : Stores data
}
[Questions Service] <.left.> [WikiData] : " Gets data "
----
Expand Down Expand Up @@ -87,54 +87,51 @@ package "WIQ App"{
component "WebApp"
component "Gateway Service" as GatewayS

package "Game Service" {
component "Game Controller"
component "Game Service"
package "Store Question Service" as QHS{
component "Store-Q Service" as QHController
database "storedquestion" as QhDB
}

package "User Statistics Service" as USS {
component "Statistics Controller"
database "Database" as USDB
}

package "Questions Historic Service" as QHS{
component "Question Historic Controller" as QHController
database "Database" as QhDB
}
package "Questions Service"{
component "Wikidata Extractor"
component "Questions Generator"
database "Database" as QSDB
package "User Stats Service" as USS {
component "User Stats Service"
database " statsdb " as USDB
}
package "UserAuth Service" {
component "Auth Service"
component "User Service"
database "Database" as UADB
database "userdb" as UADB
}

package "Questions Service"{
component "Wikidata Extractor"
component "Questions Generator Service"
database "questions" as QSDB
}
}

User -right-> WebApp : Uses
WebApp <-right-> GatewayS: Redirects requests

GatewayS <--up--> "UserAuth Service" : "Handles user\nlogin/registry"
GatewayS <-down-> "Game Service" : "Handles user current game\n"
GatewayS <-down-> "Game Service" : "Handles user current game"
GatewayS <--up-- "QHS" : "\nReceives generated\nquestions"
GatewayS <--- "USS" : "Receives\t\t\t\nuser statistics\t\t\t"

"Game Service" <---> "Questions Service" : "Receives question petitions,\nsends questions\n\n"
"Game Service" ---> "USS" : "Sends user\t\nstatistics\t\t"
"Questions Service" -up-> "QHS" : "Sends\ngenerated\nquestions"
"Questions Service" -up-> "QHS" : " Sends\n generated\n questions"

"Wikidata" .up.> "Wikidata Extractor" : "Returns data"
"Wikidata" <.up. "Wikidata Extractor" : "Queries"
"Wikidata Extractor" --> QSDB
"Questions Generator" <-- QSDB
"Questions Generator" --> QSDB
"Questions Generator Service" <-- QSDB
"Questions Generator Service" --> QSDB

"QHController" --> QhDB
"QHController" <-- QhDB

"Statistics Controller" --> USDB
"Statistics Controller" <-- USDB
"User Stats Service" --> USDB
"User Stats Service" <-- USDB

"Auth Service" --> UADB
"Auth Service" <-- UADB
Expand Down
43 changes: 24 additions & 19 deletions docs/src/07_deployment_view.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -19,23 +19,26 @@ cloud "Azure Cloud\n" {
node "Gateway Container"{
node "Gateway Service"
}
node " User Container "{
node "User Container"{
node "User Service"
}
node " Auth Container "{
node "Auth Container"{
node "Auth Service"
}
node "\tGame Container\t"{
node "Game Generator Service"
node "Game Container"{
node "Game Service"
}
node "Questions History Container"{
node "Questions History Service"
node "Store Question Container"{
node "Store Question Service"
}
node "User Stats Container\t"{
node "User Stats Service"
}
node "Questions Generator Container"{
node "Questions Generator Service"
node "Question Generator Container"{
node "Question Generator Service"
}
node "Wikidata Extractor Container"{
node "Wikidata Extractor Service"
}
}
}
Expand All @@ -49,28 +52,30 @@ actor "User"

"Web App" -- "Gateway Service" : "port: 8000"

"Gateway Service" -- "Questions History Service" : "port: 8004 "
"Gateway Service" -- "Store Question Service" : "port: 8004"
"Gateway Service" -- "User Stats Service" : "port: 8003"
"Gateway Service" -up- "Auth Service" : "port: 8002 "
"Gateway Service" -up- "User Service" : "port: 8001"
"Gateway Service" -right- "Game Generator Service" : " port: 8005 "
"Gateway Service" -right- "Game Service" : " port: 8005 "

"Game Service" -- "User Stats Service" : "port: 8003"
"Game Service" -- "Question Generator Service" : " port: 8007"

"Game Generator Service" -- "User Stats Service" : "port: 8003"
"Game Generator Service" -- "Questions Generator Service" : " port: 8006"
"Question Generator Service" -- "Store Question Service" : "port: 8004"
"Question Generator Service" -- "Wikidata Extractor Service" : "port: 8008"

"Questions Generator Service" -- "Questions History Service" : "port: 8004"
"Questions Generator Service" -- "Wikidata" : "HTTPS"
"Wikidata Extractor Service" -- "Wikidata" : "HTTPS"
----

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.
Despite our initial goal being to run the application with Docker in an Azure VM, as we were running out of Azure Credits, we decided to switch to an Oracle 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/).
Final product will be deployed in http://wiq.sytes.net/ (if that does not work, try http://158.179.212.42:3000/).

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.
Each microservice has its own container as well as its own database in case of needing one.
Previously, we had an Azure VM with 2 GiB RAM and 1vCPU. When we decided to change to the Oracle VM, we also improve our resources, as it was free.
Finally, our Oracle VM has 24 GiB RAM and 4vCPU.
Each microservice has its own container. There are also two databases, one for the Question Generator and Wikidata Extractor services, and another one for the rest of the containers which may need it.