diff --git a/docs/images/03_business_context.drawio.png b/docs/images/03_business_context.drawio.png index 08a88865..369c5d93 100644 Binary files a/docs/images/03_business_context.drawio.png and b/docs/images/03_business_context.drawio.png differ diff --git a/docs/images/03_technical_context.drawio.png b/docs/images/03_technical_context.drawio.png index f4135cbb..94f3f763 100644 Binary files a/docs/images/03_technical_context.drawio.png and b/docs/images/03_technical_context.drawio.png differ diff --git a/docs/images/05_level2.drawio.png b/docs/images/05_level2.drawio.png index 851e9ebb..33d9bcca 100644 Binary files a/docs/images/05_level2.drawio.png and b/docs/images/05_level2.drawio.png differ diff --git a/docs/images/05_level3.drawio.png b/docs/images/05_level3.drawio.png index ca9748a2..2c6526c3 100644 Binary files a/docs/images/05_level3.drawio.png and b/docs/images/05_level3.drawio.png differ diff --git a/docs/src/01_introduction_and_goals.adoc b/docs/src/01_introduction_and_goals.adoc index 95769a8c..8efcf465 100644 --- a/docs/src/01_introduction_and_goals.adoc +++ b/docs/src/01_introduction_and_goals.adoc @@ -43,10 +43,10 @@ The following table describes the project's quality goals in a descending order. | The application must be not only easy to learn and use but also fun because if a game has no joy in it, then it shall never be called for that name. | *_Maintainability_* -| Projects should always have enough quality to be able to be modified without making more changes than necessary. Not following this principle would make an information system fail in the long run. +| Projects should always have enough quality to be able to be modified without making more changes than necessary. Not following this principle would make an information system fail in late stages of his lifecycle. | *_Security_* -| Security is always key and therefore effort will be put into defending against unauthorised access of information, including the users' personal or sensitive data that the information system may contain. +| Security is always key and therefore effort will be put into fighting against unauthorised access of information, including the users' personal or sensitive data that the information system may contain. | *_Scalability_* | The application may or may not increase its demand given enough time so not pursuing this goal might lead to an unavoidable failure. diff --git a/docs/src/03_system_scope_and_context.adoc b/docs/src/03_system_scope_and_context.adoc index 77e8d55a..809f337f 100644 --- a/docs/src/03_system_scope_and_context.adoc +++ b/docs/src/03_system_scope_and_context.adoc @@ -37,12 +37,12 @@ image::03_business_context.drawio.png["Diagram of business context", align="cent | Response to the answers of the user | *_Users_* -| Questions and answers from the app +| Answers to questions from the app, provides autentification data | Interaction with the app interface to login and play | *_Wikidata_* -| Request for questions and answers -| Questions and answers +| Request an specific category's questions and their possible answers +| Game sources |=== @@ -55,28 +55,32 @@ image::03_technical_context.drawio.png["Technical Context diagram", align="cente |=== | Communication partners | Inputs | Outputs -| *_WIQ_* -| Questions and user outputs -| Response to the answers of the user and requests for data +| *_Jordi_* +| Question data-index +| Questions and answers + +| *_User service_* +| Login info +| User info (account page) + +| *_History service_* +| Session user info +| User's history | *_Users_* | Questions and posible answers -| Interaction to login and play +| Interaction to login and answer to questions | *_Wikidata_* -| Request for data -| Data +| Request for question data with category +| Question sources | *_Database_* -| User and question data and requests for it -| User and question data - -| *_Azure cloud_* -| Request for deployment -| The application deployed +| RAW data for questions and answers +| Structured data of questions and answers -| *_Web App_* +| *_Webapp_* | User inputs -| WIQ outputs +| Browser outputs |=== diff --git a/docs/src/04_solution_strategy.adoc b/docs/src/04_solution_strategy.adoc index 281db04e..5fc1d49b 100644 --- a/docs/src/04_solution_strategy.adoc +++ b/docs/src/04_solution_strategy.adoc @@ -6,12 +6,14 @@ ifndef::imagesdir[:imagesdir: ../images] === Technology Decisions In order to develop an application that meets the expected quality criteria, -we have decided to use the following technologies: +we have decided to use the following technologies, as they were the one given to us in the base project: * *_JavaScript_*: Main programming language. It is used in both back and front end. * *_React_*: JavaScript library used in the design of graphical user interfaces. * *_ExpressJS_*: Framework built on the top of _Node.js_ and used in the backend. * *_Github_*: Used for versioning the proyect and as a mean of communication for the dev team. +* *_Docker_*: Used for local deployment. +* *_Github actions_*: Used for testing purposes === Top-level Decomposition @@ -23,6 +25,8 @@ for different purpouses. For instance, we currently have the following microserv * *_Question Generation service_*. Service that generates random questions and gets the answers from WikiData. * *_Gateway service_*: Service exposed to the public and used as a proxy to the two previous ones. * *_Webapp service_*. Web application that uses the _gateway service_ to allow basic login and user features. +* *_Jordi service_*. Sevice to generate and return questions from the Wikidata API. +* *_Userhistory service_*. Service to generate the user's history and global ranking. === Decisions taken to achieve quality goals diff --git a/docs/src/07_deployment_view.adoc b/docs/src/07_deployment_view.adoc index b1c25875..a966771a 100644 --- a/docs/src/07_deployment_view.adoc +++ b/docs/src/07_deployment_view.adoc @@ -23,9 +23,9 @@ Quality and/or Performance Features:: - Portability: The app can be deployed in any environment that supports docker containers, which allows the system to be easily migrated to other cloud providers should it be necessary. -- Maintainability: The system can be updated by replacing the docker containers with new versions of the application, which allows the system to be maintained without remarkable issues. +- Maintainability: The system can be updated (each container can be maintained/updated individually) by replacing the docker containers with new versions of the application, which allows the system to be maintained without remarkable issues. -- Security: The system is hosted in a secure environment provided by the Azure cloud platform, which ensures its security and availability. +- Security: The system is hosted in a secure environment (each container is a isolated enviroment, so in the case of a security breach, it only affects one of them) provided by the Azure cloud platform, which ensures its security and availability. Mapping of Building Blocks to Infrastructure:: diff --git a/docs/src/11_technical_risks.adoc b/docs/src/11_technical_risks.adoc index 9f5fc556..bf01fd71 100644 --- a/docs/src/11_technical_risks.adoc +++ b/docs/src/11_technical_risks.adoc @@ -5,6 +5,8 @@ ifndef::imagesdir[:imagesdir: ../images] === Technical risks +==== Internal + [options="header",cols="1,3,3"] |=== | Description | Priority | Considerations @@ -31,6 +33,18 @@ ifndef::imagesdir[:imagesdir: ../images] |=== +==== External + +[options="header",cols="1,3,3"] +|=== +| Description | Priority | Considerations + +| API failure +| 3 +| Even though an API failure is possible, it's a low impact event because we have the questions stored in the database and the game would still work. + +|=== + === Technical debts [options="header",cols="1,3,3"]