Skip to content

Commit

Permalink
Updates
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions[bot] committed Apr 25, 2024
1 parent 557b05d commit ecb6925
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 16 deletions.
Binary file modified images/03_technical_context.drawio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/05_level1.drawio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/05_level2.drawio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/05_level3.drawio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/07_overview.drawio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
55 changes: 39 additions & 16 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -760,8 +760,18 @@ <h3 id="_1_technical_constraints_2">2.2. 1. Technical Constraints</h3>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><em>Docker</em></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The app will be running in a Docker Host due to
its outstanding interoperability, robust security mechanisms, and its effectiveness in deploying applications</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><em>Wikidata</em></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">This project will be using wikidata to retrieve the source of the game questions</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">This project will be using Wikidata to retrieve the source of the game questions</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><em>Git/GitHub</em></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Our development process will leverage Git for version control and GitHub as a remote repository. This combination empowers us to:
collaborate effectively, maintain a clean codebase and assign tasks</p></td>
</tr>
</tbody>
</table>
Expand Down Expand Up @@ -962,7 +972,7 @@ <h3 id="_technical_context">3.2. Technical Context</h3>
<td class="tableblock halign-left valign-top"><p class="tableblock">Question sources</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><em>Database</em></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><em>Persistence</em></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">RAW data for questions and answers</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Structured data of questions and answers</p></td>
</tr>
Expand Down Expand Up @@ -1036,8 +1046,7 @@ <h3 id="_top_level_decomposition">4.2. Top-level Decomposition</h3>
<p><strong><em>Jordi service</em></strong>. Sevice to generate and return questions from the Wikidata API.</p>
</li>
<li>
<p><strong><em>Userhistory service</em></strong>. Service to generate the user&#8217;s history and global ranking.
TODO: Fill with the upcoming microservices</p>
<p><strong><em>Userhistory service</em></strong>. Service to generate the user&#8217;s history and global ranking.</p>
</li>
</ul>
</div>
Expand All @@ -1058,22 +1067,30 @@ <h3 id="_decisions_taken_to_achieve_quality_goals">4.3. Decisions taken to achie
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><em>Usability</em></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The user must be able to use the application without any doubt or trouble.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The user must be able to use the application without any doubt or trouble. For this purpouse,
we must use internationalice the app, so it can be used by people from different countries,
elect a good font and its size, and make the app responsive.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><em>Perfomance</em></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">To achieve a good performance we will try to make as few requests as possible to
WikiData in order to avoid overloading its services.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">To optimize performance and reduce the risk of system overload, we are strategically reducing our requests to WikiData.
This measure will help maintain stable service. Additionally, we are enhancing our infrastructure by upgrading from an
Azure B1s VM to a more capable Oracle Cloud VM.Standard.A1.Flex instance, which features 4 OCPU cores, 24 GB of RAM, and 50 GB of storage.</p>
<p class="tableblock">To further alleviate server stress, we have recalibrated our monitoring probes to gather data at 15-second intervals.
We are also implementing a reverse proxy in our application to serve as a load balancer.
This setup efficiently distributes traffic across various microservices and caches static content,
significantly reducing backend server load and improving user response times.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><em>Maintainability and Escalability</em></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The application must be well structured so the modifications or expansions that
will have to be made can be done in a simple way without having to modify the previous
code excessively. For it, along with a microservice structure we will make use of design patterns
and coding conventions to obtain a clean maintainable code.</p>
<p class="tableblock">To be more specific, the Gateway Pattern and the Single Responsibility Pattern define the architectural design principles that we will follow in our microservices implementation.
The Gateway Pattern will be used to provide a unified entry point for all external requests,
while the Single Responsibility Pattern will ensure that each microservice has a clear and specific responsibility.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The application must be well structured so that modifications or expansions can be made in a straightforward manner
without requiring excessive alterations to existing code. To achieve this, along with employing a microservices architecture,
we will utilize design patterns and coding conventions to maintain clean, maintainable code.</p>
<p class="tableblock">To be more specific, the Gateway Pattern and the Single Responsibility Pattern define the architectural design
principles that we will follow in our microservices implementation. The Gateway Pattern will be used to provide a unified
entry point for all external requests, while the Single Responsibility Pattern will ensure that each microservice has a clear and specific role.
Also we will integrate a reverse proxy to our application to serve as a load balancer, which will help us to scale our application horizontally.
Also simplifies the SSL configuration and the management of the certificates.</p></td>
</tr>
</tbody>
</table>
Expand Down Expand Up @@ -1292,7 +1309,13 @@ <h3 id="_question_flow">6.3. Question Flow</h3>
<h2 id="section-deployment-view">7. Deployment View</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The infrastructure of our system consists mainly on a single server, which is hosted in an Oracle Virtual Machine arm64 running Ubuntu 22.04 LTS. It contains a dockerized nodejs app based on microservices architecture which exposes port 443 and 80 to the internet as an entry point to de user interface of the system, aswell as the port 8000 which is provided for the API use. The server contains a MongoDB database used to store the application data and interacts with the Wikidata API in order to provide dynamic-generated content to the user based on the information retrieved.</p>
<p>The infrastructure of our system consists mainly on a single server, which is hosted in
an Oracle Virtual Machine arm64 running Ubuntu 22.04 LTS. It contains a dockerized
NodeJS app based on microservices architecture which exposes port 443 and 80 to
the internet as an entry point to the user interface of the system aswell as for the API.
The server contains a MongoDB database used to store the application data.
The system also interacts with the Wikidata API in order to provide
dynamic-generated content to the user based on the information retrieved.</p>
</div>
<div class="sect2">
<h3 id="_infrastructure_level_1">7.1. Infrastructure Level 1</h3>
Expand Down Expand Up @@ -1796,7 +1819,7 @@ <h2 id="_legend">13. Legend</h2>
<div id="footer">
<div id="footer-text">
Version 8.2 EN<br>
Last updated 2024-04-24 20:44:13 UTC
Last updated 2024-04-25 15:24:11 UTC
</div>
</div>
</body>
Expand Down

0 comments on commit ecb6925

Please sign in to comment.