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

Entregable 1 #51

Merged
merged 22 commits into from
Feb 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
89879e7
primera versión de technical_risks y glossary
uo288061 Feb 10, 2024
e261b26
Ejemplo de algunas restricciones de la arquitectura, versión preliminar
uo288061 Feb 10, 2024
e8b3ba7
Cambios en el 01_introduction_and_goals
DanielAB95 Feb 10, 2024
4e7040f
Merge branch 'develop' of https://github.com/Arquisoft/wiq_es04b into…
DanielAB95 Feb 10, 2024
48ff15a
Segundo commit arreglando algunos errores en
DanielAB95 Feb 10, 2024
a6f05d7
Sections-3-and-4-of-the-documentation
uo287545 Feb 11, 2024
198ac5e
Sections-3-and-4-of-the-documentation
uo287545 Feb 11, 2024
193732d
Sections-3-and-4-of-the-documentation
uo287545 Feb 11, 2024
3e4e416
Finished docs-5-6 (#26)
RicardoDiNu Feb 12, 2024
fba1866
Finish docs 7-8 first version (#28)
Pelayori Feb 12, 2024
348269f
Documentación 9-10 (#38)
uo287568 Feb 14, 2024
18d6213
Translate Doc 5 and 6 (#39)
RicardoDiNu Feb 18, 2024
57d6c32
Docs 1 2 translation (#37)
DanielAB95 Feb 18, 2024
6b0cacf
Corrección de tipografía (pasar de minúsculas a mayúscula en los punt…
uo288061 Feb 18, 2024
48a2fb0
Corrección de tipografía
uo288061 Feb 18, 2024
df32fe2
Deploy gh pages action (#42)
Pelayori Feb 18, 2024
c307ddf
Merge pull request #43 from Arquisoft/docs-11-12
uo287545 Feb 18, 2024
7d38b26
Italics on tables fixed (#45)
uo287545 Feb 18, 2024
fa76f13
Translate docs 9, 10 (#46)
Pelayori Feb 18, 2024
eff0c82
Correct missing markup and cut text
Pelayori Feb 18, 2024
c6af5e3
Update 05_building_block_view.adoc (#47)
RicardoDiNu Feb 19, 2024
967809e
Sections-3-and-4-of-the-documentation (#50)
uo287545 Feb 19, 2024
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
42 changes: 42 additions & 0 deletions .github/workflows/deploy-pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Deploy Pages
on:
push:
branches: [ master, develop, deploy-gh-pages ]

jobs:
build-and-deploy:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'

- name: Install Asciidoctor and Asciidoctor-diagram
run: gem install asciidoctor asciidoctor-diagram

- name: Install Graphviz
run: sudo apt-get install graphviz

- name: Set up Node.js
uses: actions/setup-node@v1
with:
node-version: '14.x'

- name: Install npm dependencies in docs
run: cd docs && npm install

- name: Build project
run: cd docs && npm run build

- name: Deploy to GitHub Pages
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
cd docs
npx gh-pages -d build -r https://x-access-token:${GITHUB_TOKEN}@github.com/Arquisoft/wiq_es04b.git
1,904 changes: 1,904 additions & 0 deletions docs/index.html

Large diffs are not rendered by default.

387 changes: 386 additions & 1 deletion docs/package-lock.json

Large diffs are not rendered by default.

42 changes: 35 additions & 7 deletions docs/src/01_introduction_and_goals.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ ifndef::imagesdir[:imagesdir: ../images]

[[section-introduction-and-goals]]
== Introduction and Goals (wiq_es04b)

[role="arc42help"]
****
Describes the relevant requirements and the driving forces that software architects and development team must consider.
Expand All @@ -14,9 +13,14 @@ These include
* quality goals for the architecture and
* relevant stakeholders and their expectations
****
WIQ is a game developed by HappySw for:

=== Requirements Overview
* Challenging "Saber y ganar" fans
* Learning to perform teamwork
* Passing the "Software Architecture" subject
* Improving as software engineers

=== Requirements Overview
[role="arc42help"]
****
.Contents
Expand All @@ -37,10 +41,24 @@ Keep these excerpts as short as possible. Balance readability of this document w

.Further Information

See https://docs.arc42.org/section-1/[Introduction and Goals] in the arc42 documentation.
See https://docs.arc42.org/section-1/[Introducdction and Goals] in the arc42 documentation.

****

This web application, inspired by the famous Spanish TV show "Saber y ganar," consists of a mini-game of questions and answers.
In this game, the player is asked a question and presented with four possible answers, of which only one is correct.

* The player must register with a name.
* The player must answer the question within a time limit.
* If the player does not answer, it will be counted as an incorrect response.
* Each correct answer earns points.
* Optionally, the score can be saved in a ranking.

For all those "Saber y ganar" viewers who wanted to participate in the show, this application is ideal for testing their knowledge.

The application automatically generates questions with the help of Wikidata (the page that supports Wikipedia and many other wikis)
to constantly update the questions instead of storing them in a database.

=== Quality Goals

[role="arc42help"]
Expand All @@ -63,6 +81,14 @@ If you as an architect do not know how the quality of your work will be judged..
A table with quality goals and concrete scenarios, ordered by priorities
****

[options="header",cols="1,2,2"]
|===
|Nº|Atributo|Motivacion
| 1 | Efficiency | Access, creation of questions, and navigation between them should be fast to ensure user satisfaction.
| 2 | Usability | The application should be appealing to all fans of the original program while also offering a wide variety of questions.
| 3 | Manteinence | The application should ensure easy expansion and modification to provide users with new features.
|===

=== Stakeholders

[role="arc42help"]
Expand All @@ -85,9 +111,11 @@ These stakeholders determine the extent and the level of detail of your work and
Table with role names, person names, and their expectations with respect to the architecture and its documentation.
****

[options="header",cols="1,2,2"]
[options="header",cols="1,2"]
|===
|Role/Name|Contact|Expectations
| _<Role-1>_ | _<Contact-1>_ | _<Expectation-1>_
| _<Role-2>_ | _<Contact-2>_ | _<Expectation-2>_
|Role/Name|Expectations
| HappySw | A company developing the application aiming to earn money through its development and recognition at the Spanish level.
| RTVE | A Spanish television network that hired the development to promote its program.
| Uniovi students | The application developers who want to pass the subject.
| ArquiSoft teachers | The evaluators of the program development and final version who want their students to pass.
|===
16 changes: 16 additions & 0 deletions docs/src/02_architecture_constraints.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,19 @@ conventions (e.g. programming or versioning guidelines, documentation or naming
See https://docs.arc42.org/section-2/[Architecture Constraints] in the arc42 documentation.

****


- *Programming Language Restriction:*
The system must be implemented using Java as the primary programming language.

- *Mandatory Usage of WikiData API:*
The WikiData API must be utilized as an integral part of the system, and interactions with WikiData are obligatory for data retrieval and integration.

- *Web Frontend Requirement:*
The system must include at least one web frontend, and it is mandatory for deployment.

- *Freedom in Database Selection:*
There are no imposed restrictions on the choice of the database. Teams have the freedom to select a suitable database technology based on project requirements.

- *No Company Policy Constraints:*
There are no specific constraints or restrictions related to company policies. Teams have the flexibility to make decisions aligned with project goals.
79 changes: 71 additions & 8 deletions docs/src/03_system_scope_and_context.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ See https://docs.arc42.org/section-3/[Context and Scope] in the arc42 documentat

=== Business Context


[role="arc42help"]
****
.Contents
Expand All @@ -48,9 +49,25 @@ The title of the table is the name of your system, the three columns contain the

****

**<Diagram or Table>**

**<optionally: Explanation of external domain interfaces>**
[plantuml,"Deployment diagram",png]
----
actor user
component System[
<<System>>
QuestionGame
]
component WikiData
database Database

user --> System
System --> Database
System --> WikiData
----

* **User:** Represents users who interact with the application to play games or view their history.
* **System (QuestionGame):** The main system that hosts the game logic and manages user interactions.
* **WikiData:** Component used to retrieve data from Wikidata and automatically generate questions.
* **Database:** Stores system information, such as user data, generated questions, game history, etc.

=== Technical Context

Expand All @@ -68,8 +85,54 @@ together with a mapping table showing the relationships between channels and inp

****

**<Diagram or Table>**

**<optionally: Explanation of technical interfaces>**

**<Mapping Input/Output to Channels>**
[plantuml,"Technical Context Diagram",png]
----

actor user
actor developer
database Database

node "Question Generation"{
[WikiData]
}

node "User Agent" {
[Web / Mobile]
}

node "QuestionGame server" {
[Frontend]
[QuestionGame]
[User's API]
[Question's API]
}

user --> [Web / Mobile]
[Web / Mobile] --> (Frontend): HTTPS
[Frontend] --> (QuestionGame): To decide
[QuestionGame] --> Database: Specific driver
[QuestionGame] --> WikiData: HTTP
[QuestionGame] <-- (User's API): To decide
[QuestionGame] <-- (Question's API): To decide
developer --> (User's API) : HTTPS
developer --> (Question's API) : HTTPS
----

* **User Agent:** Represents the web or mobile interface used by users.
* **QuestionGame server:** The server-side components, including the Frontend, QuestionGame logic, User's API, and Question's API.
* **HTTPS:** Represents the communication channels, with HTTPS being the protocol used for secure communication.
* **Question Generation:** Represents the means used for question and answers generation.
* **Database:** Represents whichever system used for data persistence.
* **To be decided:** Indicates that specific details about the channels and protocols are yet to be determined.

==== Input/Output Mapping Table

[options="header",cols="1,2,2"]
|===
|Component|Input/Output|Channel/Protocol
| User's API| User registration, game history| HTTPS
| Question's API| Question data retrieval| HTTPS
| Frontend| User interactions, game display| HTTPS
| Database| User data, game history, questions| Specific database driver
| WikiData| Data for question generation| HTTP
|===
17 changes: 17 additions & 0 deletions docs/src/04_solution_strategy.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,20 @@ Refer to details in the following sections.
See https://docs.arc42.org/section-4/[Solution Strategy] in the arc42 documentation.

****

There are some placeholders for the decisions yet to be taken.

=== Technological Decisions
* Programming Language: Java will be used for system development because all team members are familiar with it, and we believe we can perform better using this language.
* Frontend Framework: SpringBoot will be adopted for frontend development because it allows us to deploy a web application using Java and provides numerous functionalities that greatly facilitate the implementation of project requirements, such as user authentication.
* Database: [Database] was selected as the storage engine due to [reasons].

=== System Decomposition
The [pattern] architecture pattern will be followed for structuring the system, dividing it into modules/classes responsible for [responsibilities].

=== Quality Goals
* Performance: A quick system response will be sought, especially during question generation and gameplay.
* Security: Security measures will be implemented to protect user information and ensure the integrity of generated questions.

=== Organizational Decisions
Development Methodology: GitFlow will be adopted for project management, facilitating collaboration and iterative delivery.
38 changes: 35 additions & 3 deletions docs/src/05_building_block_view.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -63,19 +63,51 @@ In the best case you will get away with examples or simple signatures.

****

_**<Overview Diagram>**_
[plantuml,"Whitebox Overall System",png]
----
actor User as User
rectangle "WIQ" {
User --> WIQ : Interacts with
}

rectangle "Wikidata" {
WIQ --> Wikidata : Requests data to generate questions
}
----


Motivation::

_<text explanation>_
The purpose of this whitebox is to provide a clear, simple overview without delving into details of how the WIQ system interacts
with the external Wikidata service to obtain the necessary data for question generation. By presenting this interaction clearly,
stakeholders can easily understand how the WIQ system integrates with external data sources and how that information is used to
fulfill system requirements related to the automatic generation of questions.


Contained Building Blocks::
_<Description of contained building block (black boxes)>_
[cols="1,2" options="header"]
|===
| Name | Description

| User
| It represents the user interacting with the WIQ application.

| WIQ
| It represents the main WIQ application.

| Wikidata
| External service used by WIQ to obtain data and generate questions.
|===


In progress...::
We have yet to decide the precise composition of our system so we can´t fill the rest of this section yet.


Important Interfaces::
_<Description of important interfaces>_


[role="arc42help"]
****
Insert your explanations of black boxes from level 1:
Expand Down
Loading
Loading