Skip to content

Commit

Permalink
Done the merge with topic 4 by hand
Browse files Browse the repository at this point in the history
  • Loading branch information
Mister-Mario committed Feb 17, 2024
1 parent a46ba1a commit 07f6605
Showing 1 changed file with 47 additions and 1 deletion.
48 changes: 47 additions & 1 deletion docs/src/04_solution_strategy.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,50 @@ Refer to details in the following sections.
See https://docs.arc42.org/section-4/[Solution Strategy] in the arc42 documentation.
****
****
=== Technology decisions

The technologies chosen for developing the WIQ web app are ::
* **ReactJS** : A JavaScript library that facilitates the creation of interactive grafical interfaces.
* **Sass** : A scripting language that is compiled into CSS. It extends CSS by providing several mechanisms such as variables, nested rules, mixins, functions, and inheritance.
* **TypeScript** : A superset of JavaScript that adds various features that can resolve code errors before running the actual code.
* **SpringBoot** : An extension of the Spring framework for creating Java applications. SpringBoot offers many preconfigurations that accelerate the code production process.
* **Wikidata Toolkit** : Wikidata Toolkit is a Java library for accessing Wikidata and other Wikibase installations. It can be used to create bots, to perform data extraction tasks (e.g., convert all data in Wikidata to a new format), and to do large-scale analyses that are too complex for using a simple SPARQL query service.
* **Docker** : Docker provides tools and a runtime environment to manage these containers efficiently, allowing developers to build, ship, and run applications consistently across different environments.
* **MySql** : MySQL is an open-source relational database management system that uses SQL for managing and manipulating data.
* **Mongo DB** : MongoDB is a popular open-source NoSQL database management system that stores data flexible, JSON-like documents with dynamic schemas.


=== Top-level Decomposition

To be updated along the development of the application where we will add the most important architectural and design patterns

==== Architectural Patterns

* **Microservices** : Selected as our main architecture. We will have various small independent services that interact between them to support all the fuctionalities of the web application

==== Design Patterns

* **Façade** : Pattern used to communicate between different parts of the whole application (APIs)

=== Decisions for achieving quality goals

|===
|Quality Goal|Decision
| _Usability_ | _We will try to make some rounds of usability tests with people outside of the development team_
| _Performance_ | _Our goal is to have a system that will response under 1 second to all petitions, however the consecuences of peak times are unknow_
| _Security_ | _Using HTTPS, applying input validation, encripting sensible information (As we face new security failures we will add measures)_
| _Robustness_ | _We will apply different mechanism to reduce the risks that could crash the application_
| _Accesibility_ | _Testing our User Interface with third party tools like Google's Lighthouse in order to correct them_
|===

Will be updated whenever we find a new quality goal or we change the approach to achieve it

=== Organizational Decisions

|===
|Third Party Product|Reason
| _Git_ | _Easy to use distributed version control application_
| _Github_ | _Web-based platform for hosting and managing Git repositories. It also provides different services like: a wiki, issues, github actions and many more_
| _Microsoft Azure_ | _Cloud service use for creating virtual machines in order to deploy the application_
|===

0 comments on commit 07f6605

Please sign in to comment.