diff --git a/docs/images/Deployed-Infrastructure.png b/docs/images/Deployed-Infrastructure.png new file mode 100644 index 00000000..12fec7fe Binary files /dev/null and b/docs/images/Deployed-Infrastructure.png differ diff --git a/docs/src/07_deployment_view.adoc b/docs/src/07_deployment_view.adoc index eaba8299..a161d91c 100644 --- a/docs/src/07_deployment_view.adoc +++ b/docs/src/07_deployment_view.adoc @@ -56,6 +56,61 @@ Describe (usually in a combination of diagrams, tables, and text): For multiple environments or alternative deployments please copy and adapt this section of arc42 for all relevant environments. **** +image::Deployed-Infrastructure.png["Deployed Infrastructure"] + +**** +component User as "User" +cloud "WIQ" { + rectangle "Azure - Ubuntu - Docker"{ + component webapp as "Webapp"{ + port 3000 + } + rectangle "Internal network"{ + database "MongoDB" { + folder "UsersDB" { + [Records] + [Users] + } + frame "QuestionsDB" { + [Questions] + } + } + component gs as "Gateway service"{ + port 8000 + } + component auths as "Authentication service"{ + port 8002 + } + component users as "User service"{ + port 8001 + } + component records as "Record service"{ + port 8004 + } + component questions as "Question service"{ + port 8003 + } + component qg as "Question generator" + } + } +} +cloud "Wikidata" + +User -[dotted,#green,thickness=3]-> 3000 +webapp -[#green,thickness=3]-> 8000 +gs -[#red]-> 8002 +gs -[#red]-> 8001 +gs -[#red]-> 8004 +gs -[#red]-> 8003 +auths -[#red]-> Users +users -[#red]-> Users +records -[#red]-> Records +questions -[#red]-> Questions +qg -[#red]-> Questions +qg -[dotted]-> Wikidata +**** +This diagram shows the infrastructure of our application when deployed. + *TBD* === Infrastructure Level 2 @@ -67,4 +122,3 @@ Here you can include the internal structure of (some) infrastructure elements fr Please copy the structure from level 1 for each selected element. **** -*TBD* \ No newline at end of file diff --git a/docs/src/09_architecture_decisions.adoc b/docs/src/09_architecture_decisions.adoc index d4c0636f..e87d7169 100644 --- a/docs/src/09_architecture_decisions.adoc +++ b/docs/src/09_architecture_decisions.adoc @@ -3,8 +3,23 @@ ifndef::imagesdir[:imagesdir: ../images] [[section-design-decisions]] == Architecture Decisions The application will be carried out following a Microservices architecture. + -The Rest API in charge of comunicating with WikiData will be coded using Java. + -_(More details to de added)_ + +The service in charge of comunicating with WikiData will be coded using Java. +As the generation of questions is a huge part of our application we will play it safe by using Java, a language where most of the team is "fluent" at. + + +The backend will we develop using a combination of SpringBoot, for the question generation, and Express. +The use of SpringBoot was a requirement in order to generate the questions in Java. + + +*10/03/24* + +We will apply a data share strategy where we will load the questions generated and access them when needed through the backend. +This is done to increase the efficiency, as questions are not generated when needed, and robustness of the application, as we can give service even if Wikidata is down. + + +*14/03/24* + +We have done a redisign of the architecture of the project where we will implement the whole backend using Express. +This was done to have a more homogeneus backend as we have de-coupled the question generation from the backend and we dont need all to be Java. + + [role="arc42help"] **** diff --git a/docs/src/11_technical_risks.adoc b/docs/src/11_technical_risks.adoc index 022fa93a..a0100905 100644 --- a/docs/src/11_technical_risks.adoc +++ b/docs/src/11_technical_risks.adoc @@ -27,12 +27,12 @@ In decision-making processes, we often face constraints. These constraints, know ### Risks -There is the table of risks the team is taking for development purposes ordered by priority. +There is the table of risks the team is taking for development purposes. [options="header",cols="^.^1,2,2"] |=== |Risk|Explanation|Solution -| *Insufficient knowledge of React* | None of our team members worked with React before. | The people who's going to work on React are going to learn it. +| *Insufficient knowledge of Tecnologies* | None of our team members worked with React nor Express nor MongoDB before. | The people who's going to work on these technologies are going to learn it which trades time for a better application as we use stronger technologies (React instead of HTML). | *Working with a team* | It might be difficult working with people on projects, as every person has their own way of doing things. | Have weekly meetings deciding on what's going to get solved, how and by whom, keeping bus factor in mind. | *Time* | It should be kept in mind that the team has deadlines with different requirements, demanding them to work regularly. | Have better time-management skills, keep track of and help each other to not waste any time on hard / complex parts of the project. |=== @@ -44,5 +44,5 @@ There is the table of technical debt shortcuts the team is taking sacrificing lo [options="header",cols="^.^1,3"] |=== |Technical debt|Explanation -| *Azure* | The team has experience with Microsoft Azure and decided to use it again. The full implementation is not planned yet. +| *CORS* | The team has fully enabled CORS through the backend this is a risk as external users can access endpoints like adduser |=== \ No newline at end of file diff --git a/docs/src/12_glossary.adoc b/docs/src/12_glossary.adoc index b5ba9d7a..ec89a6b1 100644 --- a/docs/src/12_glossary.adoc +++ b/docs/src/12_glossary.adoc @@ -48,4 +48,7 @@ See https://docs.arc42.org/section-12/[Glossary] in the arc42 documentation. |*Stakeholder* |Anyone involved in the development process of the system, or that is affected by it somehow. + +|*CORS* +|CORS (Cross-Origin Resource Sharing) is a mechanism that allows resources on a web page to be requested from another domain outside the domain from which the resource originated. |===