diff --git a/docs/src/09_architecture_decisions.adoc b/docs/src/09_architecture_decisions.adoc index de8391d..d104a74 100644 --- a/docs/src/09_architecture_decisions.adoc +++ b/docs/src/09_architecture_decisions.adoc @@ -42,6 +42,27 @@ There you will find links and examples about ADR. | Decided | *Oracle Cloud* - All advantages +| Infrastructure design +| Oracle ARM VM with multiple containers inside - Running containers in this VM is free +| Decided +| Oracle ARM VM with multiple containers inside - It is free + +| What CI/CD pipeline should we use +| *Github Actions* - Already integrated in the project and fits perfectly our needs for deployment, developing and testing. + *Azure DevOps* - It is more integrated with Azure cloud, where we could have our infraestructure deployed with Terraform using IaC. +| Pending +| Azure Devops would be a better approach for deploying our infraestructure in Azure containers (serverless) using IaC with Terraform, but there is a lack of time for migrating and GitHub Actions is already integrated and working fine. + +| Local or cloud data base +| *Local* - There is no need to externalize things that should keep local. +| Decided +| Local database - Database is kept in local for security reasons and for not overdesigning the infraestructure + +| New microservice for Rankings +| Removing ranking logic from users microservice - It might be a better design as user logic and ranking logic is not exactly the same. +| Decided +| Keep rankings logic in users microservice - It would make sense to separate services if they scaled too much but in this project this would be overdesign. + | Which technologies are we going to use for developing the front end | React - It is a modern framework which is easy to learn and provides usefull predefined components that save time | Decided diff --git a/docs/src/11_technical_risks.adoc b/docs/src/11_technical_risks.adoc index 725b865..b49f3ca 100644 --- a/docs/src/11_technical_risks.adoc +++ b/docs/src/11_technical_risks.adoc @@ -33,4 +33,14 @@ See https://docs.arc42.org/section-11/[Risks and Technical Debt] in the arc42 do |Low - The difference is, a priori, merely functional, but retains the needed characteristics |Upgrade only if a newer version supports 'require' +|Lack of a security barrier for DDOS attacks +|Lack of knowledge and time for implementing it into the project +|A DDOS attack can make the application crash +|Integrate CloudFlare into the project + +|Questions types +|The design was optimized for image based questions and adding new categories easily. +|It would be difficult to add questions that do not rely on images. For example, text based questions. +|Refactoring questions microservice to include new types of questions. + |=== \ No newline at end of file diff --git a/docs/src/12_glossary.adoc b/docs/src/12_glossary.adoc index 9b0adb5..7d40790 100644 --- a/docs/src/12_glossary.adoc +++ b/docs/src/12_glossary.adoc @@ -37,6 +37,24 @@ See https://docs.arc42.org/section-12/[Glossary] in the arc42 documentation. |Microservice |Small and independent component that performs a specific business function +|CI/CD pipeline +|A series of steps that are carried out to obtain a new software product from its development phase to its deployment + +|ARM +|A type of processor architecture designed for power efficiency + +|MERN stack +|A group of web technologies for developing web applications: MongoDB, Express, React and Node + +|Docker containers +|Packets that include all the software needed for running a service + +|Oracle Cloud +|Cloud infraestructure provider (e.g Virtual Machines) + +|Gateway +|All the endpoints visible for the client, that will redirect to specific microservice API + |API |Set of endpoints exposed by the backend server whose purpose is interacting with the client-side |===