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

Generación de preguntas v2 #2 #29

Closed
wants to merge 70 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
d6af041
Update README.md
UO288443 Feb 6, 2024
e139e19
Prueba
UO288443 Feb 6, 2024
b472174
Varios generadores añadidos
CANCI0 Feb 6, 2024
2522a45
Más generadores de preguntas
CANCI0 Feb 6, 2024
7662479
Añadido automatizador de generación de preguntas
CANCI0 Feb 6, 2024
6a53c8d
Nombres más intuitivos en los parámetros
CANCI0 Feb 6, 2024
fd674a1
Update 09_architecture_decisions.adoc
UO288443 Feb 8, 2024
ad91ca2
Avance en la documentación
CANCI0 Feb 8, 2024
b32149e
Update 09_architecture_decisions.adoc
UO288443 Feb 8, 2024
948d8e8
Merge pull request #21 from Arquisoft/UO288443-patch-1
UO288443 Feb 8, 2024
68f1441
Se ha optimizado el sistema de generación de preguntas
CANCI0 Feb 10, 2024
f00c5ee
Parece haberse solucionado la repetición de respuestas
CANCI0 Feb 10, 2024
25482a8
Más correciones
CANCI0 Feb 10, 2024
756cb9e
Ya no se repiten respuestas
CANCI0 Feb 10, 2024
de7f327
Se ha cambiado el sistema de generación de preguntas
CANCI0 Feb 11, 2024
954b694
Diagramas hechos
CANCI0 Feb 11, 2024
3eb2463
Cambios en los diagramas
CANCI0 Feb 11, 2024
b13911a
Se ha ampliado el nuevo algoritmo
CANCI0 Feb 11, 2024
96ffe70
Funciona
CANCI0 Feb 11, 2024
13b8f75
Se evita que las respuestas tengan el nombre de la entidad de Wikidata
CANCI0 Feb 11, 2024
4ad1271
Añadida pregunta de esperanza de vida media
CANCI0 Feb 11, 2024
a5130d8
No sabía que existía el includes()
CANCI0 Feb 11, 2024
c9d2ff0
Añadida pregunta de forma de gobierno
CANCI0 Feb 11, 2024
5ece36f
Cambios menores
CANCI0 Feb 11, 2024
ae426e1
Más cambios menores
CANCI0 Feb 11, 2024
7dc2624
Update 11_technical_risks.adoc
UO288443 Feb 12, 2024
11c66e6
Done parts 10 and 11 from the documentation.
iyanfdezz Feb 12, 2024
aa1ef4f
Markdown errors fixed.
iyanfdezz Feb 12, 2024
43785af
Update 08_concepts.adoc
UO288443 Feb 12, 2024
b77b52d
Done part 12 of the documentation.
iyanfdezz Feb 12, 2024
009acf3
Merge branch 'doc' of https://github.com/Arquisoft/wiq_es1a into doc
iyanfdezz Feb 12, 2024
7a06b3c
Traducido al inglés
CANCI0 Feb 12, 2024
ca18a26
Merge branch 'doc' of https://github.com/Arquisoft/wiq_es1a into doc
CANCI0 Feb 12, 2024
57f81b4
Fixes in documentation
iyanfdezz Feb 12, 2024
dbe391f
More fixes
iyanfdezz Feb 12, 2024
bc38116
More little fixes in format
iyanfdezz Feb 12, 2024
88dae24
Merge branch 'doc' of https://github.com/Arquisoft/wiq_es1a
Rodrox11 Feb 12, 2024
7bfa286
Modificacion del doc04 solution_straegy
Rodrox11 Feb 12, 2024
e9ed74e
Implementado generador genérico
CANCI0 Feb 12, 2024
0db082a
Se ha implementado una api básica
CANCI0 Feb 12, 2024
26b655b
Servicio añadido a la API
CANCI0 Feb 12, 2024
fce6620
Bug fix
CANCI0 Feb 12, 2024
477ad17
Incio Pto 7
UO288443 Feb 13, 2024
b2a0061
Foto
UO288443 Feb 13, 2024
982d3e5
Update 07_deployment_view.adoc
UO288443 Feb 13, 2024
9f3f834
Update 07_deployment_view.adoc
UO288443 Feb 13, 2024
6e15796
Update 07_deployment_view.adoc
UO288443 Feb 13, 2024
fe1420d
Update 07_deployment_view.adoc
UO288443 Feb 13, 2024
09decfc
Pequeño error
CANCI0 Feb 13, 2024
7a138f2
Update 07_deployment_view.adoc
UO288443 Feb 13, 2024
dee6e7e
Añadida categoría famosos
CANCI0 Feb 13, 2024
49ff87c
Merge branch 'GeneraciónPreguntas-#2' of https://github.com/Arquisoft…
CANCI0 Feb 13, 2024
383c70d
Hotfix
CANCI0 Feb 13, 2024
8962531
Update release.yml
CANCI0 Feb 13, 2024
d749311
.
CANCI0 Feb 13, 2024
eca107a
Merge remote-tracking branch 'origin/master' into GeneraciónPreguntas-#2
CANCI0 Feb 13, 2024
46d5a46
Se ha añadido caché para las preguntas
CANCI0 Feb 18, 2024
c40363f
Añadido límite de preguntas por petición
CANCI0 Feb 18, 2024
f5b615e
Error corregido
CANCI0 Feb 18, 2024
4dd6a6a
Funciona
CANCI0 Feb 18, 2024
e245788
El get de famosos no funciona
CANCI0 Feb 18, 2024
e80d75d
Refactorización del código
CANCI0 Feb 18, 2024
4cb5f18
Añadidos más temáticas (not working)
CANCI0 Feb 18, 2024
f59be46
Error de acceso a propiedades
CANCI0 Feb 18, 2024
b0897ae
Añadida temática programación
CANCI0 Feb 18, 2024
8cd48fe
Ya no salen "Q8945..." en respuesta correcta
CANCI0 Feb 18, 2024
8f01659
Ahora se pueden obtener preguntas aleatorias de varias temáticas
CANCI0 Feb 19, 2024
39a0540
Añadidos formateadores de fecha y número
CANCI0 Feb 19, 2024
6a08a27
Cambios menores
CANCI0 Feb 19, 2024
054c082
Cambios menores
CANCI0 Feb 20, 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
3 changes: 2 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ name: Deploy on release
on:
release:
types: [published]

branches:
- master
jobs:
unit-tests:
runs-on: ubuntu-latest
Expand Down
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
|Martín Cancio Barrera | UO287561 | [Mi github](https://github.com/CANCI0)
|Iyán Fernández Riol | UO288231 | [Mi github](https://github.com/iyanfdezz)
|Rodrigo García Iglesias | UO276396 | [Mi github](https://github.com/Rodrox11)
|Miguel Olamendi Alonso | UO285032 | [Mi github](https://github.com/uo285032)
|Alfredo Jirout Cid | UO288443 | [Mi github](https://github.com/uo288443)

## Introduction to our project
[![Deploy on release](https://github.com/Arquisoft/wiq_es1a/actions/workflows/release.yml/badge.svg)](https://github.com/Arquisoft/wiq_es1a/actions/workflows/release.yml)
Expand Down
Binary file added docs/images/UML.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/businesscontext.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/technicalcontext.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
387 changes: 386 additions & 1 deletion docs/package-lock.json

Large diffs are not rendered by default.

11 changes: 5 additions & 6 deletions docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,11 @@
"description": "Npm project just for the docs",
"main": "index.js",
"scripts": {
"build": "shx rm -rf build && asciidoctor -D build -a imagesdir=./images -r asciidoctor-diagram index.adoc && shx cp -R images build",
"deploy": "gh-pages -d build"
"build": "shx rm -rf build && asciidoctor -D build -a imagesdir=./images -r asciidoctor-diagram index.adoc && shx cp -R images build",
"deploy": "gh-pages -d build"
},
"dependencies": {
"gh-pages": "^3.2.3",
"shx": "^0.3.3"
"gh-pages": "^3.2.3",
"shx": "^0.3.3"
}
}

}
115 changes: 50 additions & 65 deletions docs/src/01_introduction_and_goals.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,91 +3,76 @@ ifndef::imagesdir[:imagesdir: ../images]
[[section-introduction-and-goals]]
== Introduction and Goals

[role="arc42help"]
****
Describes the relevant requirements and the driving forces that software architects and development team must consider.
These include

* underlying business goals,
* essential features,
* essential functional requirements,
* quality goals for the architecture and
* relevant stakeholders and their expectations
****
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:

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

[role="arc42help"]
****
.Contents
Short description of the functional requirements, driving forces, extract (or abstract)
of requirements. Link to (hopefully existing) requirements documents
(with version number and information where to find it).
* Iyán Fernández Riol, mailto:[email protected][_UO288231_].

.Motivation
From the point of view of the end users a system is created or modified to
improve support of a business activity and/or improve the quality.
* Rodrigo García Iglesias, mailto:[email protected][_UO276396_].

.Form
Short textual description, probably in tabular use-case format.
If requirements documents exist this overview should refer to these documents.
* Alfredo Jirout Cid, mailto:[email protected][_UO288443_].

Keep these excerpts as short as possible. Balance readability of this document with potential redundancy w.r.t to requirements documents.
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.

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

See https://docs.arc42.org/section-1/[Introduction and Goals] in the arc42 documentation.
* Play with friends

****
* Adjust the themes of the questions, the answer time, the number of questions...
***

=== Quality Goals
=== Requirements Overview

[role="arc42help"]
****
.Contents
The top three (max five) quality goals for the architecture whose fulfillment is of highest importance to the major stakeholders.
We really mean quality goals for the architecture. Don't confuse them with project goals.
They are not necessarily identical.
* The system will have at least one web frontend that will be deployed and accessed via the web.
* Users will be able to register in the system and consult the history of their participation in the system: number of games, number of correct/failed questions, times, etc.
* Questions will be automatically generated from Wikidata data.
* Questions must be answered within a given time limit.
* Each question will have one correct answer and several incorrect or distracting answers. Both correct and incorrect answers will be generated automatically.
* The system shall allow access to user information through an API.
* The system shall allow access to the information of the generated questions through an API.

Consider this overview of potential topics (based upon the ISO 25010 standard):
=== Quality Goals

image::01_2_iso-25010-topics-EN.drawio.png["Categories of Quality Requirements"]
[options="header"]
|===
| Priority | Quality Goal | Motivation

.Motivation
You should know the quality goals of your most important stakeholders, since they will influence fundamental architectural decisions.
Make sure to be very concrete about these qualities, avoid buzzwords.
If you as an architect do not know how the quality of your work will be judged...
| *1*
| *_Usability_*
| The application should be intuitive for users, making it easy for them to interact with the application regardless of their skills.

.Form
A table with quality goals and concrete scenarios, ordered by priorities
****
| *2*
| *_Mantainability_*
| The application must have a well-defined and structured design, so that it is easy to make modifications and/or extensions.

| *3*
| *_Privacy_*
| The application must guarantee the privacy of its users' information, with mechanisms in place to prevent intrusions into the system.
|===

=== Stakeholders

[role="arc42help"]
****
.Contents
Explicit overview of stakeholders of the system, i.e. all person, roles or organizations that
[options="header"]
|===
|Role/Name|Contact|Expectations

* should know the architecture
* have to be convinced of the architecture
* have to work with the architecture or with code
* need the documentation of the architecture for their work
* have to come up with decisions about the system or its development
| *_Students (HappySw)_*
| Martín Cancio Barrera, Iyán Fernández Riol, Rodrigo García Iglesias and Alfredo Jirout Cid
| The students are the developers of the application. They are in charge of the complete development, which will improve their programming and teamwork skills.

.Motivation
You should know all parties involved in development of the system or affected by the system.
Otherwise, you may get nasty surprises later in the development process.
These stakeholders determine the extent and the level of detail of your work and its results.
| *_Users_*
| Anyone who uses the application
| Users are the ones who will ultimately use the application, so it must be intuitive and easy to understand.

.Form
Table with role names, person names, and their expectations with respect to the architecture and its documentation.
****
| *_Teachers_*
| José Emilio Labra Gayo, Pablo González González, Jorge Álvarez Fidalgo and Cristian Augusto Alonso.
| They are the supervisors of the project, and will help the students toensure that the project comes to fruition.

[options="header",cols="1,2,2"]
|===
|Role/Name|Contact|Expectations
| _<Role-1>_ | _<Contact-1>_ | _<Expectation-1>_
| _<Role-2>_ | _<Contact-2>_ | _<Expectation-2>_
| *_RTVE_*
| RTVE
| They are the main stakeholders in the application, as they are the ones who commissioned it, so that their viewers can use it.
|===
28 changes: 13 additions & 15 deletions docs/src/02_architecture_constraints.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,23 @@ ifndef::imagesdir[:imagesdir: ../images]
[[section-architecture-constraints]]
== Architecture Constraints

|===
| *_Architecture constraint_* | *_Description_*

[role="arc42help"]
****
.Contents
Any requirement that constraints software architects in their freedom of design and implementation decisions or decision about the development process. These constraints sometimes go beyond individual systems and are valid for whole organizations and companies.
| *_Tecnología de Desarrollo_* | The application must be developed using web technologies compatible with RTVE's requirements and standards.

.Motivation
Architects should know exactly where they are free in their design decisions and where they must adhere to constraints.
Constraints must always be dealt with; they may be negotiable, though.
| *_Plataforma de Implementación_* | The application must be implemented on a web hosting platform that meets RTVE's performance, security and scalability requirements.

.Form
Simple tables of constraints with explanations.
If needed you can subdivide them into
technical constraints, organizational and political constraints and
conventions (e.g. programming or versioning guidelines, documentation or naming conventions)
| *_Cumplimiento de Normativas de Privacidad_* | The architecture must ensure compliance with data privacy regulations, such as GDPR, to protect users' information.

| *_Compatibilidad con Navegadores_* | The application should be compatible with a wide range of popular web browsers to ensure a consistent user experience.

.Further Information
| *_Seguridad de la Información_* | Strong security measures, such as user authentication, access control and data encryption, must be implemented to protect users' confidential information.

See https://docs.arc42.org/section-2/[Architecture Constraints] in the arc42 documentation.
| *_Escalabilidad_* | The architecture must be scalable to handle increased user traffic without compromising performance.

****
| *_Mantenibilidad del Código_* | Software development practices that promote clean and well-documented code should be followed to facilitate future upgrades and maintenance.

| *_Tiempo de Desarrollo_* | The application must be developed within a specific time frame, which may influence architectural decisions and technology selection.

|===
69 changes: 2 additions & 67 deletions docs/src/03_system_scope_and_context.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,73 +3,8 @@ ifndef::imagesdir[:imagesdir: ../images]
[[section-system-scope-and-context]]
== System Scope and Context


[role="arc42help"]
****
.Contents
System scope and context - as the name suggests - delimits your system (i.e. your scope) from all its communication partners
(neighboring systems and users, i.e. the context of your system). It thereby specifies the external interfaces.

If necessary, differentiate the business context (domain specific inputs and outputs) from the technical context (channels, protocols, hardware).

.Motivation
The domain interfaces and technical interfaces to communication partners are among your system's most critical aspects. Make sure that you completely understand them.

.Form
Various options:

* Context diagrams
* Lists of communication partners and their interfaces.


.Further Information

See https://docs.arc42.org/section-3/[Context and Scope] in the arc42 documentation.

****


=== Business Context

[role="arc42help"]
****
.Contents
Specification of *all* communication partners (users, IT-systems, ...) with explanations of domain specific inputs and outputs or interfaces.
Optionally you can add domain specific formats or communication protocols.

.Motivation
All stakeholders should understand which data are exchanged with the environment of the system.

.Form
All kinds of diagrams that show the system as a black box and specify the domain interfaces to communication partners.

Alternatively (or additionally) you can use a table.
The title of the table is the name of your system, the three columns contain the name of the communication partner, the inputs, and the outputs.

****

**<Diagram or Table>**

**<optionally: Explanation of external domain interfaces>**
image::businesscontext.png[Business context]

=== Technical Context

[role="arc42help"]
****
.Contents
Technical interfaces (channels and transmission media) linking your system to its environment. In addition a mapping of domain specific input/output to the channels, i.e. an explanation which I/O uses which channel.

.Motivation
Many stakeholders make architectural decision based on the technical interfaces between the system and its context. Especially infrastructure or hardware designers decide these technical interfaces.

.Form
E.g. UML deployment diagram describing channels to neighboring systems,
together with a mapping table showing the relationships between channels and input/output.

****

**<Diagram or Table>**

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

**<Mapping Input/Output to Channels>**
image::technicalcontext.png[Technical Context]
36 changes: 16 additions & 20 deletions docs/src/04_solution_strategy.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,26 @@ ifndef::imagesdir[:imagesdir: ../images]
[[section-solution-strategy]]
== Solution Strategy

Elaboramos una aplicacíon en la que los usuarios pueden registrarse para jugar, donde en cada juego tendran que responder varias preguntas, de distintas categorias, donde se guardará
un ranking con la máxima puntuación del usuario y se podrá comparar con otros usuarios, también tendra una sección que indique su promedio de aciertos y en que categoría acierta más preguntas.

[role="arc42help"]
****
.Contents
A short summary and explanation of the fundamental decisions and solution strategies, that shape system architecture. It includes
.Tecnologías usadas para llevar a cabo:

* technology decisions
* decisions about the top-level decomposition of the system, e.g. usage of an architectural pattern or design pattern
* decisions on how to achieve key quality goals
* relevant organizational decisions, e.g. selecting a development process or delegating certain tasks to third parties.
* MongoDB: MongoDB es una base de datos NoSQL de código abierto que utiliza un modelo de datos basado en documentos para el almacenamiento y recuperación de información.
* React JS: Es un framework creado por Facebook ampliamente utlizado para crear componentes de la interfaz de usuario. Escogido por el gran volumen de documentación y ser el framework utilizado durante los anteriores cursos.
* WikiData: Es una base de conocimientos gratuita modificada por seres humanos como por máquinas, y es de donde obtendremos nuestras preguntas.
* Microsoft Azure: plataforma de computación en la nube que proporciona servicios de infraestructura, plataforma y software como servicio para alojar, administrar y escalar aplicaciones y servicios en línea.

.Motivation
These decisions form the cornerstones for your architecture. They are the foundation for many other detailed decisions or implementation rules.
.Diseño
La página web diseñada está compuesta por un frontend en React, un backend en Node.js y está documentada usando Asciidoc. Cada usuario tendrá su propia cuenta donde se guardará su información. Las decisiones relacionadas con el diseño se detallan en el punto 9.

.Form
Keep the explanations of such key decisions short.
.Seguridad
Garantizamos la seguridad del usuario

Motivate what was decided and why it was decided that way,
based upon problem statement, quality goals and key constraints.
Refer to details in the following sections.
.Testabilidad
Se realizarán pruebas para cada parte individual de la aplicación, garantizando así el correcto funcionamiento de los diferentes modulos tanto individualmente como de forma conjunta.

.Interfaz
La interfaz gráfica será elegida entre todos los miembros del equipo, aportando cada uno algún boceto o idea, los cuales serán puestos en común y se decidirá cual se ajusta mejor a la apicación esperada y que elementos de dichos bocetos resultan más adecuados.
Para ello se tendrá en cuenta la usabilidad y las necesidades de los difentes tipos de usuarios.

.Further Information

See https://docs.arc42.org/section-4/[Solution Strategy] in the arc42 documentation.

****
9 changes: 6 additions & 3 deletions docs/src/07_deployment_view.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ See https://docs.arc42.org/section-7/[Deployment View] in the arc42 documentatio
****

=== Infrastructure Level 1
image::UML.png[UML]

[role="arc42help"]
****
Expand All @@ -60,14 +61,16 @@ _**<Overview Diagram>**_

Motivation::

_<explanation in text form>_
_<Simple structure of how the different parts of the application would work>_

Quality and/or Performance Features::

_<explanation in text form>_
_<We will have a link to wikidata that will be where we get the different questions, in addition a registration and persistence layer of user and registration data, finally they will be united in the link layer and this will be the one that is directly related to the application>_

Mapping of Building Blocks to Infrastructure::
_<description of the mapping>_
_<Quiestion Generator: give us the questions posible answers
User service: All the options that users needs
Register: create new acounts or login with one>_


=== Infrastructure Level 2
Expand Down
Loading