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

129 corregir diagramas #159

Merged
merged 7 commits into from
Apr 28, 2024
Merged
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
Binary file added docs/images/05-Level1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 0 additions & 4 deletions docs/images/05-Level1.svg

This file was deleted.

Binary file added docs/images/06-friends.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 0 additions & 4 deletions docs/images/06-friends.svg

This file was deleted.

Binary file added docs/images/06-groups.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 0 additions & 4 deletions docs/images/06-groups.svg

This file was deleted.

Binary file added docs/images/06-history.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 0 additions & 4 deletions docs/images/06-history.svg

This file was deleted.

Binary file added docs/images/06-ranking.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 0 additions & 4 deletions docs/images/06-ranking.svg

This file was deleted.

Binary file added docs/images/06-stats.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 0 additions & 4 deletions docs/images/06-stats.svg

This file was deleted.

Binary file added docs/images/06-users.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 0 additions & 4 deletions docs/images/06-users.svg

This file was deleted.

Binary file added docs/images/12-activeusers.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 added docs/images/12-responsenumbers.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 added docs/images/12-responsespersecond.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 added docs/images/12-responsetime.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 added docs/images/WIQ-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 1 addition & 15 deletions docs/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
// configure EN settings for asciidoc
include::src/config.adoc[]

= image:arc42-logo.png[arc42] WIQ! Documentation
= image:WIQ-logo.png[WIQ] Documentation
:revnumber: 8.2 EN
:revdate: January 2023
:revremark: (based upon AsciiDoc version)
Expand All @@ -28,23 +28,9 @@ ifdef::backend-html5[]
++++
endif::backend-html5[]


include::src/about-arc42.adoc[]

// horizontal line
***

[role="arc42help"]
****
[NOTE]
====
This version of the template contains some help and explanations.
It is used for familiarization with arc42 and the understanding of the concepts.
For documentation of your own system you use better the _plain_ version.
====
****


// numbering from here on
:numbered:

Expand Down
10 changes: 4 additions & 6 deletions docs/src/01_introduction_and_goals.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,22 @@ ifndef::imagesdir[:imagesdir: ../images]
[[section-introduction-and-goals]]
== Introduction and Goals

WIQ! is a project developed for the subject "Software Architecture" of the Computer Engineering degree of the School of Computer Engineering of the University of Oviedo. This project is based on the wiq project, made available to the students by the teachers of the subject.
WIQ! has been commissioned to the company HappySw by RTVE, with the aim of recreating its famous quiz show Saber y ganar in a web version accessible to everyone. This project will be carried out by the development team is formed by:
WIQ is a project developed for the subject "Software Architecture" of the Computer Engineering degree of the School of Computer Engineering of the University of Oviedo. This project is based on the wiq project, made available to the students by the teachers of the subject.
WIQ! has been commissioned to the company HappySw by RTVE, with the aim of recreating its famous quiz show Saber y ganar in a web version accessible to everyone. This project will be carried out by the development team, which is formed by:

* Martín Cancio Barrera, mailto:[email protected][_UO287561_].

* Iyán Fernández Riol, mailto:[email protected][_UO288231_].

* Rodrigo García Iglesias, mailto:[email protected][_UO276396_].

* Alfredo Jirout Cid, mailto:[email protected][_UO288443_].

WIQ! is a software by means of which users can emulate being the participants of the quiz show Saber y ganar, which has numerous functionalities:

* Play several of the game modes seen on the show.

* Register to be able to keep track of their statistics in the game

* Play with friends
* Have friends, join groups and see the statistics of the other users.

* Adjust the themes of the questions, the answer time, the number of questions...
***
Expand Down Expand Up @@ -61,7 +59,7 @@ WIQ! is a software by means of which users can emulate being the participants of
|Role/Name|Contact|Expectations

| *_Students (HappySw)_*
| Martín Cancio Barrera, Iyán Fernández Riol, Rodrigo García Iglesias and Alfredo Jirout Cid
| Martín Cancio Barrera, Iyán Fernández Riol and Rodrigo García Iglesias
| The students are the developers of the application. They are in charge of the complete development, which will improve their programming and teamwork skills.

| *_Users_*
Expand Down
2 changes: 0 additions & 2 deletions docs/src/02_architecture_constraints.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ ifndef::imagesdir[:imagesdir: ../images]

| *_Implementation Platform_* | The application must be implemented on a web hosting platform that meets RTVE's performance, security and scalability requirements.

| *_Privacy Compliance_* | The architecture must ensure compliance with data privacy regulations, such as GDPR, to protect users' information.

| *_Code Maintainability_* | Software development practices that promote clean and well-documented code should be followed to facilitate future upgrades and maintenance.

| *_Development Time_* | The application must be developed within a specific time frame, which may influence architectural decisions and technology selection.
Expand Down
6 changes: 5 additions & 1 deletion docs/src/04_solution_strategy.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,16 @@ We developed an application in which users can register to play, where in each g
A ranking with the maximum score of the user and can be compared with other users, it will also have a section that indicates their correct guess and in which category they get the most questions right.

.Technologies used to carry out:

* JavaScript: JavaScript is a very flexible programming language widely used in software development. It incorporates many features that makes this development easy and effective, such as asynchronous functions, libraries, etc. This is the language that will be used to create front-end and back-end on our application.
* Node.js: Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. It's used to create server-side applications, and it's the runtime that will be used to create the back-end of our application.
* MongoDB: MongoDB is an open-source NoSQL database that uses a document-based data model for information storage and retrieval.
* React JS: It's a framework created by Facebook that's widely used to create user interface components. Chosen for the large volume of documentation and the fact that it is the framework used during the previous courses.
* Chakra UI: It's a simple, modular and accessible component library that gives us the ability to create a responsive and accessible design.
* WikiData: It's a free knowledge base modified by humans as well as machines, and it's where we'll get our questions from.
* Microsoft Azure: A cloud computing platform that provides infrastructure, platform, and software-as-a-service services to host, manage, and scale online applications and services.
* GitHub: It's a platform that provides hosting for software development and version control using Git. It's where we'll host our code and collaborate with the team.
* Github Actions: It's a CI/CD tool that automates the process of building, testing, and deploying code. It's where we'll automate the process of testing and deploying our application in Azure Cloud.
* Asciidoc: It's a text document format for writing notes, documentation, articles, books, ebooks, slideshows, web pages. We'll use it to document our project.

=== Design
The designed website is composed of a frontend in React, a backend in Node.js and is documented using Asciidoc. Each user will have their own account where their information will be saved. Design-related decisions are detailed in point 9.
Expand Down
7 changes: 1 addition & 6 deletions docs/src/05_building_block_view.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,7 @@ The system is divided into nine components, each of which is responsible for a s

=== Level 2

image::diagrama5.2.png["Hierarchy of building blocks"]

.Motivation

In this diagram we can see the decided microservices that will provide all the operations necessary for the
application to work properly.
In this level, the components are divided into smaller components, which are responsible for specific tasks. We'll take a closer look to some of the most important components, which are question service, and webapp.

==== Question Service

Expand Down
12 changes: 6 additions & 6 deletions docs/src/06_runtime_view.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -27,34 +27,34 @@ image::06-play.svg[]

User can see his stats by pressing stats button. It shows things such as games played, average score, total score, total correct questions, total incorrect questions, correct answer ratio or average time per question.

image::06-stats.svg[]
image::06-stats.png[]

=== User looks his game history

User can see his game history by pressing history button. It shows a list of games played, with answered questions.

image::06-history.svg[]
image::06-history.png[]

=== User looks at ranking

User can see the ranking of the users. This ranking can be filtered by average points, total points, correct answer ratio or average time.

image::06-ranking.svg[]
image::06-ranking.png[]

=== User checks his friends

User can see his friends. He can also get into their profile to see their stats.

image::06-friends.svg[]
image::06-friends.png[]

=== User looks for users to be friends

User can see a list of non-friends users. He can send a friend request to them.

image::06-users.svg[]
image::06-users.png[]

=== User looks for available groups to join

User can see a list of available groups to join. He can send a request to join them.

image::06-groups.svg[]
image::06-groups.png[]
1 change: 1 addition & 0 deletions docs/src/10_quality_requirements.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ These are:
| Performance |User |While playing, a user selects a response to a question.|User Interface|Normal gameplay conditions.|The system updates its interface very fast and the user knows if they responded correctly, so they can keep playing.|Interface update time is less than 0.5 seconds.
| Usability |User|A new user starts playing the game.|User Interface|Initial game setup.|The user interface displays available options and provides clear instructions on how to play, including a 'Help' button.|User can navigate through the interface without guidance.
| Performance |User|A user finishes playing a game and wants to start a new one.|System and User Interface|Post-game completion.|The system ends the current game, displays the user's score, resets all game elements, and offers the option to start a new game.|Score is saved accurately, and game restarts without errors.
| Performance |User|A user finishes playing a game and wants to see his stats.|System, User Interface, Stats Service |Stats retrieving.|The user presses the Stats button, and his stats are shown in the screen, giving him the option to switch between gamemodes.|Stats are shown correctly, including last game.
|===


Expand Down
8 changes: 8 additions & 0 deletions docs/src/12_testing.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,14 @@ Using this script we inject 2 users per second during 60 seconds in total, and e

image::12-loadtests.png[]

image::12-activeusers.png[]

image::12-responsetime.png[]

image::12-responsenumbers.png[]

image::12-responsespersecond.png[]

image::12-grafana-loadtests.png[]

As we can see in Gatling's report, the application was able to handle a load of 9990 requests. In particular, 97% of the requests were successful in less than 800 milliseconds and 3% were unsuccessful.
Expand Down