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

docs #145

Merged
merged 1 commit into from
Apr 28, 2024
Merged

docs #145

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
21 changes: 21 additions & 0 deletions docs/src/09_architecture_decisions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
10 changes: 10 additions & 0 deletions docs/src/11_technical_risks.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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.

|===
18 changes: 18 additions & 0 deletions docs/src/12_glossary.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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
|===