From 41dba78e9f1d7fba95a35f2c6e83e2829dc75447 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?adri=C3=A1n?= Date: Sat, 17 Feb 2024 20:09:04 +0100 Subject: [PATCH 1/3] 04_solution_strategy --- docs/src/04_solution_strategy.adoc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/src/04_solution_strategy.adoc b/docs/src/04_solution_strategy.adoc index 7bf03f7..d0c35f4 100644 --- a/docs/src/04_solution_strategy.adoc +++ b/docs/src/04_solution_strategy.adoc @@ -2,7 +2,17 @@ ifndef::imagesdir[:imagesdir: ../images] [[section-solution-strategy]] == Solution Strategy +The system will follow *MERN Stack* as they key technologies for its development. MERN Stack is composed of four technologies: MongoDB, Express, +React and Node. +* *MongoDB:* chosen technology for the persistance of the system, that provides a non-relational database approach. +* *Express and Node:* they make up the middle tier of the application, providing a powerful server platform. +* *React:* front-end framework that will solve the client interfaces of the application. + +Regarding the deployment of the application, the strategy chosen is a cloud-based system. This decision was motivated because of the nature of +the project, since a web application need to be live and accesible at any moment. +The server will be an ARM Linux virtual machine on Oracle, where some containers for different charasteristics of the system will be deployed with +Docker (MongoDB database for example) [role="arc42help"] **** From 8b9d3ee33bd686950c7d9746aa9445afd3699443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?adri=C3=A1n?= Date: Sat, 17 Feb 2024 20:58:26 +0100 Subject: [PATCH 2/3] solution strategy --- docs/src/04_solution_strategy.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/src/04_solution_strategy.adoc b/docs/src/04_solution_strategy.adoc index d0c35f4..68a269e 100644 --- a/docs/src/04_solution_strategy.adoc +++ b/docs/src/04_solution_strategy.adoc @@ -9,10 +9,10 @@ React and Node. * *Express and Node:* they make up the middle tier of the application, providing a powerful server platform. * *React:* front-end framework that will solve the client interfaces of the application. -Regarding the deployment of the application, the strategy chosen is a cloud-based system. This decision was motivated because of the nature of -the project, since a web application need to be live and accesible at any moment. -The server will be an ARM Linux virtual machine on Oracle, where some containers for different charasteristics of the system will be deployed with -Docker (MongoDB database for example) +Regarding the deployment of the application, the strategy chosen is a *cloud-based* system. This decision was motivated because of the nature of +the project, since a web application needs to be live and accesible at any moment. +The server will be an ARM *Linux VM on Oracle*, where some *containers* for different charasteristics of the system will be *deployed with +Docker* (MongoDB database for example) [role="arc42help"] **** From 9bb91722ed169c9b33a6a555838f42649eb6dd8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?adri=C3=A1n?= Date: Sun, 18 Feb 2024 22:39:24 +0100 Subject: [PATCH 3/3] 6. Runtime view --- docs/src/06_runtime_view.adoc | 40 +++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/docs/src/06_runtime_view.adoc b/docs/src/06_runtime_view.adoc index e10f375..4c0850f 100644 --- a/docs/src/06_runtime_view.adoc +++ b/docs/src/06_runtime_view.adoc @@ -2,8 +2,48 @@ ifndef::imagesdir[:imagesdir: ../images] [[section-runtime-view]] == Runtime View +=== User authentication +* Users will log in through the web interface of the application. +* The system stores in database (MongoDB) the users of the application. Any data relative to them is accessed via the database of the system and displayed to them on the web interface. +=== Access to user data via API +* Clients access the users data through an API +[plantuml,"Sequence diagram",png] +---- +entity Client +database API as "Users API" +Client -> API: Data querying request +API --> Client: Retrieved data +---- + +=== Access to questions data via API +* Clients access the questions data through an API + +[plantuml,"Sequence diagram",png] +---- +entity Client +database API as "Questions API" +Client -> API: Data querying request +API --> Client: Retrieved data +---- + +=== Game +* Users can play a Q&A game + +[plantuml,"Sequence diagram",png] +---- +actor User +entity App +database QAPI as "Questions API" +database UAPI as "Users API" +User -> App: Start Game +App -> QAPI: Get Questions +QAPI --> App: Send Questions +App -> User: Show Question +User --> App: Answer Question +App -> UAPI: Update User Data +---- [role="arc42help"] **** .Contents