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

Merge with documentation #38

Merged
merged 91 commits into from
Feb 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
ff5fadb
Update sonar-project.properties
ExarcaFidalgo Jan 22, 2024
3a7d874
Update README.md
ExarcaFidalgo Jan 22, 2024
09590d8
0 por es6b
ExarcaFidalgo Jan 23, 2024
dc74163
Revert "Merge branch 'master' into master"
ExarcaFidalgo Jan 26, 2024
a50371b
Merge branch 'master' into master
ExarcaFidalgo Jan 26, 2024
e049274
Revert "Merge branch 'master' of https://github.com/Arquisoft/wiq_0"
ExarcaFidalgo Jan 26, 2024
e9278f2
Expiando mis pecados
ExarcaFidalgo Jan 26, 2024
b400036
Introduction and Goals first documentation
AbelMH1 Feb 10, 2024
b21a440
Added to the documentacion the first version of cahpter 2 and 4 (Arch…
MarcosBarrilVillaverde Feb 10, 2024
1f0cbfb
Minor fixes to tear-down the container
augustocristian Feb 12, 2024
f4f8efb
Merge pull request #6 from Arquisoft/ft_solveproblemcompose
labra Feb 12, 2024
57f16f4
first part documentation
uo288574 Feb 12, 2024
249417d
doc part 1
uo288574 Feb 12, 2024
c8debbe
doc 1
uo288574 Feb 12, 2024
fa75598
documentation 09
uo288574 Feb 12, 2024
dfdfc8f
quality tree
uo288574 Feb 12, 2024
99993f9
quality tree
uo288574 Feb 12, 2024
b9ac894
tree
uo288574 Feb 12, 2024
0aa46a5
tree de una vez
uo288574 Feb 12, 2024
52a2067
modified glossary and quality requirements
uo288574 Feb 13, 2024
8236c20
added technical risks
uo288574 Feb 13, 2024
06ff4a4
Architecture constraints doc. almost finished.
uo283642 Feb 14, 2024
13845e2
Slight formatting changes to 02.
uo283642 Feb 14, 2024
d931dcf
Added an example of sequence diagram for the wikidata questions requests
AbelMH1 Feb 15, 2024
b95d986
Added deployment diagram for 03-Technical context
uo283642 Feb 15, 2024
befc964
Completed 03-System Scope and Context
uo283642 Feb 16, 2024
ddcb201
03-Updated version of the deployment diagram.
uo283642 Feb 16, 2024
7111516
Minor fixes
MarcosBarrilVillaverde Feb 16, 2024
64dc143
Merge pull request #20 from Arquisoft/documentation_marcos
MarcosBarrilVillaverde Feb 16, 2024
aed4335
Merge pull request #18 from Arquisoft/documentation_abel
uo288574 Feb 16, 2024
b51ae3a
Merge pull request #17 from Arquisoft/documentation_alejandro_liliana
AbelMH1 Feb 16, 2024
3062a57
Merge branch 'develop' into documentation_jonathan
uo283642 Feb 16, 2024
872d378
Merge pull request #19 from Arquisoft/documentation_jonathan
alegarman2002 Feb 16, 2024
1959294
HOTFIX: Añadidos de nuevo los ark42help
AbelMH1 Feb 16, 2024
ec0df48
Add the image of the diagram
alegarman2002 Feb 16, 2024
22818ed
Added part of section 5 of the documentation
MarcosBarrilVillaverde Feb 18, 2024
418b445
Minor changes to section 5, and a couple of fixes at section 2
MarcosBarrilVillaverde Feb 18, 2024
c25e587
Add the diagram with plantuml
alegarman2002 Feb 19, 2024
a87ca81
Add the new diagram
alegarman2002 Feb 19, 2024
5682135
Add the new diagram
alegarman2002 Feb 19, 2024
6863cc9
Merge branch 'develop' into documentation_alejandro_liliana
alegarman2002 Feb 19, 2024
9b7d9d0
Fixed problems with the diagram
alegarman2002 Feb 19, 2024
00fac83
deleted unused image
alegarman2002 Feb 19, 2024
cc2508f
Merge pull request #26 from Arquisoft/documentation_alejandro_liliana
AbelMH1 Feb 19, 2024
88b6114
Added corrected business context diagram
uo283642 Feb 20, 2024
601f920
Updated 03. Added diagrams + minor fixes
uo283642 Feb 20, 2024
16cbd6b
06 mostly finished.
uo283642 Feb 21, 2024
935f5f3
Merge remote-tracking branch 'origin/develop' into documentation_marcos
MarcosBarrilVillaverde Feb 21, 2024
cd60eec
Added info to doc
marco-qg Feb 21, 2024
3132846
Fixed
marco-qg Feb 21, 2024
2672af2
Uploaded 05-Level 3 diagram.
uo283642 Feb 21, 2024
5ad812a
05 Added third level diagram and explanation.
uo283642 Feb 21, 2024
3708d62
Merge branch 'Arquisoft:master' into documentation_jonathan
uo283642 Feb 21, 2024
b5c91c0
Merge remote-tracking branch 'origin/develop' into documentation_jona…
uo283642 Feb 21, 2024
5e43b4b
12 Added some terms refering to question generation.
uo283642 Feb 21, 2024
df87078
hotfix
marco-qg Feb 22, 2024
3e52a64
Fixes on UML diagrams
MarcosBarrilVillaverde Feb 22, 2024
f63474d
Update 05_building_block_view.adoc
uo283642 Feb 22, 2024
1446bfc
Minor changes to section 5
MarcosBarrilVillaverde Feb 22, 2024
a773e8f
Small fix to section 2
MarcosBarrilVillaverde Feb 22, 2024
33dbb7a
Small fix to section 2
MarcosBarrilVillaverde Feb 22, 2024
eb940c4
Update 03_system_scope_and_context.adoc
uo283642 Feb 22, 2024
6aaebbe
Removed styling
uo283642 Feb 22, 2024
6edeaf3
Uploaded 03 technical context diagram.
uo283642 Feb 22, 2024
6433881
03 Technical context diagram changed for img.
uo283642 Feb 22, 2024
3b46b75
Updated 05_building_block_view (Third level)
uo283642 Feb 22, 2024
2877b1b
This is a test
MarcosBarrilVillaverde Feb 22, 2024
02e6c8b
Modificacion requisitos
uo288574 Feb 22, 2024
370639d
Merge branch 'documentation_alejandro_liliana' of https://github.com/…
uo288574 Feb 22, 2024
4fb45f1
Added modified version of 05: Level 3 diagram
uo283642 Feb 22, 2024
a5b5257
Modificaciones de decisiones arquitectónicas
uo288574 Feb 22, 2024
0674ee5
03_Technical context diagram correction
uo283642 Feb 22, 2024
9416fa8
hotfix
marco-qg Feb 22, 2024
fac11d2
Changed diagram labels for 06.
uo283642 Feb 22, 2024
f763419
Merge branch 'documentation_jonathan' of https://github.com/Arquisoft…
uo283642 Feb 22, 2024
77db72e
Merge pull request #28 from Arquisoft/documentation_alejandro_liliana
AbelMH1 Feb 22, 2024
3c93343
Merge pull request #29 from Arquisoft/documentation_marco
AbelMH1 Feb 22, 2024
22ba576
Minor fix
MarcosBarrilVillaverde Feb 22, 2024
4f17085
Minor fixes
MarcosBarrilVillaverde Feb 22, 2024
088f93d
Update package-lock.json
MarcosBarrilVillaverde Feb 22, 2024
65e5765
Merge pull request #27 from Arquisoft/documentation_marcos
AbelMH1 Feb 22, 2024
72fd11e
Merge branch 'develop' into documentation_jonathan
uo283642 Feb 22, 2024
465dc50
Atoning for my sins
uo283642 Feb 22, 2024
54c0ed6
Minor changes correction
uo283642 Feb 22, 2024
eddd2c7
Minor change on readme
uo283642 Feb 22, 2024
aa3c22d
Merge pull request #30 from Arquisoft/documentation_jonathan
AbelMH1 Feb 22, 2024
45f0412
hotfix: substituted the diagrams for images of them
alegarman2002 Feb 22, 2024
f208455
Domain model done
marco-qg Feb 22, 2024
dbe51bb
Merge pull request #35 from Arquisoft/documentation_marco
AbelMH1 Feb 22, 2024
fbbfd97
Delete .vscode directory
AbelMH1 Feb 23, 2024
d1f965e
Delete docs/images/03-deployment-diagram-EN.png
AbelMH1 Feb 23, 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
Binary file added docs/images/03_Business_Context_Diagram.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/03_Technical_Context.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/05_Level_3_Diagram.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/05_level1Diagram.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/05_level2Diagram.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/08_domain_model.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/QualityTree.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/deployment.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 28 additions & 2 deletions docs/src/01_introduction_and_goals.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,17 @@ See https://docs.arc42.org/section-1/[Introduction and Goals] in the arc42 docum

****

The WIQ web application allows users to play a game similar to the one of Saber y Ganar quiz show. This game consists on answering a number of questions with different types and subjects obtaining a prize for each question well answered. Game´s questions are automatically generated from data available in Wikidata (https://www.wikidata.org/).

* The system will have at least a web front-end which will be available and accessible through the web.
* Users will be able to register to the system and obtain the historical data from their participation: number of games, questions passed and failed, times, etc ..
* Questions will be automatically generated from data available in Wikidata.
* Questions have to be answered before some specific time.
* Each question will have one right answer and several incorrect ones or distractors. Both the right answer and the distractors should be automatically generated.
* The system will give access to the information about the users through an API.
* The system will give access to information about the generated questions through an API.


=== Quality Goals

[role="arc42help"]
Expand All @@ -62,6 +73,17 @@ If you as an architect do not know how the quality of your work will be judged..
.Form
A table with quality goals and concrete scenarios, ordered by priorities
****
.Quality goals ordered by priority (from most to least important)
[options="header",cols="1,3"]
|===
|Quality Goal|Description
| _Satisfaction_ | _Users will not get repeated questions in at least a hundred questions._
| _Modularity_ | _The application will be divided in modules so that a change on one component has minimal impact on other components._
| _Testability_ | _The application should be able to go through different test and complete them successfully._
| _Learnability_ | _Any user must be able to use the app with ease. The interface must remind the user to the one in Saber y Ganar quiz show._
| _Time behaviour_ | _Users will not have to wait more than 500ms to get a new question._
|===


=== Stakeholders

Expand All @@ -88,6 +110,10 @@ Table with role names, person names, and their expectations with respect to the
[options="header",cols="1,2,2"]
|===
|Role/Name|Contact|Expectations
| _<Role-1>_ | _<Contact-1>_ | _<Expectation-1>_
| _<Role-2>_ | _<Contact-2>_ | _<Expectation-2>_
| _Professors_ | _ASW module professors_ | _Get a great project which can be evaluated and shown in their github._
| _Developers_ | _wiq_es6c team_ | _Carrying out a full real project using all the knowledge obtained in the degree._
| _Responsible company_ | _HappySw_ | _Development of an experimental version of the Saber y Ganar quiz show._
| _Client_ | _RTVE_ | _Getting a Web App to promote its famous Saber y Ganar quiz show by letting their viewers enjoy a similar experience._
| _Main beneficiaries_ | _Public users_ | _Having a great time playing an interesting and easy to use quiz game._
| _Side beneficiaries_ | _Wikidata_ | _Obtain free promotion of their application and its ease to use in multiple projects._
|===
41 changes: 40 additions & 1 deletion docs/src/02_architecture_constraints.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ ifndef::imagesdir[:imagesdir: ../images]
[[section-architecture-constraints]]
== Architecture Constraints


[role="arc42help"]
****
.Contents
Expand All @@ -25,3 +24,43 @@ conventions (e.g. programming or versioning guidelines, documentation or naming
See https://docs.arc42.org/section-2/[Architecture Constraints] in the arc42 documentation.

****

=== Technical constraints

[cols="2,4" options="header"]
|===
|Constraint |Explanation
|*OS/Browser Independence* |The project must be available to the maximum amount of users feasible. That includes support for mainstream OSs (_Windows_, _Linux_, _MacOS_) and browsers. (_Chrome_, _Safari_, _Firefox_, _Edge_)
|*Usage of _REACT_* |The _REACT JS_ framework will be used to develop the front-end of the project.
|*Docker* | The application will operate within a Docker environment.
|*Version Control* |In order of the project to be graded adequately, it must use _GitHub_ as its version control system. The contributions of each team member and agreements reached must be easily traceable.
|*Wikidata* | To generate questions, WikiData would be used as a knowledge base. Wikidata is a free and open knowledge base that can be read and edited by both humans and machines. Wikidata acts as central storage for the structured data of its sister Wikimedia projects, including Wikipedia, Wikivoyage, Wiktionary, Wikisource and others.
|*Continuous integration and delivery* |The development must progress through frequent integration of small changes into the main branch. New features must be automatically deployed with ease. (In our case, using _Docker_)
|===

=== Organizational constraints

[cols="2,7" options="header"]
|===
|Constraint |Explanation
|*Time* |The team has to complete the project during the semester.
|*Team size* |The development teams must be composed of 5-7 members. In our case, the final team is composed of 6 members.
|*Budget* |No budget is provided for the development, so any costs that may arise have to be covered by the development team.
|*Deliverables* |Along the development process, the team must prepare deliverables set for certain dates, consisting of documentation and/or application prototypes.
|*Team meetings* |In order to plan the development of the project, as well as to assign tasks and make design decisions, the team will participate in several meetings. These meetings can be done in and out of the classroom, as needed. A record must be created for every meeting, summarizing the progress made.
|*Project testing* |The development team must test acceptable coverage of the project using different methods (_unit testing_, _integration testing_, _acceptance testing_... etc.)
|*Knowledge* |There are many aspects of the development of this project that are foreign to some of us (usage of _REACT_, deployments, microsystems architecture... etc.) so some research is required to keep up.
|===

=== Conventions

[cols="2,4" options="header"]
|===
|Constraint |Explanation
|*Use of English* |The totality of the project must be written in English, as to facilitate its understanding internationally.
|*Programming Language conventions* | We ought to follow the conventions specific to the programming languages we're employing.
|*Documentation format* |The documentation must adhere to the Arc42 method, ensuring it is clear, simple, and effective.
|*Clean code* |In order to ease the understanding and maintenance of the project, all code written must be organized, descriptive and easy to read.
|*Accesibility* |The application should be user-friendly, allowing all individuals to navigate effortlessly, irrespective of any disabilities, ensuring inclusivity for all users.
|*Microservices* | The application will be divided into microservices to facilitate its development.
|===
18 changes: 8 additions & 10 deletions docs/src/03_system_scope_and_context.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ ifndef::imagesdir[:imagesdir: ../images]
[[section-system-scope-and-context]]
== System Scope and Context


[role="arc42help"]
****
.Contents
Expand All @@ -25,10 +24,8 @@ Various options:
.Further Information

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

****


=== Business Context

[role="arc42help"]
Expand All @@ -48,9 +45,13 @@ 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>**
[cols=3 options="header"]
|===
|Entity |Input |Output
|*User* | App usage and experience. | The user will introduce and send its credentials every time it creates a new account or logs into an existing one.
|*WebApp* | User data and input, as well as external API calls received. | Handled API calls, sent to their respective microservice in order to be processed and answered.
|*Wikidata* |Calls to Wikidata's REST API asking for certain data, which will be used to construct the questions. | Said data. Its format may vary, according to the necessities of the questions generator.
|===

=== Technical Context

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

****

**<Diagram or Table>**

**<optionally: Explanation of technical interfaces>**
image::03_Technical_Context.png[]

**<Mapping Input/Output to Channels>**
57 changes: 39 additions & 18 deletions docs/src/04_solution_strategy.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,51 @@ ifndef::imagesdir[:imagesdir: ../images]
[[section-solution-strategy]]
== Solution Strategy

=== Technology Decisions

[role="arc42help"]
****
.Contents
A short summary and explanation of the fundamental decisions and solution strategies, that shape system architecture. It includes
In order to develop the application and adhere to the constraints, we selected the following technologies:

* 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.
- ReactJS: JavaScript library that streamlines the development of graphical interfaces for web applications.
- TypeScript: Extension of JavaScript, bolstering it with type support for improved development.
- GitHub: Platform offering remote repository services for project development, task management, and version control.
- MongoDB: A non-linear database selected to oversee storage of diverse application contents, with each microservice possessing its dedicated database.
- NodeJS: Facilitates efficient management of asynchronous events, notably beneficial for scalable network applications and database administration.
- Docker: Employed for seamless deployment of the application environment.

.Motivation
These decisions form the cornerstones for your architecture. They are the foundation for many other detailed decisions or implementation rules.
=== Top-level Decomposition

.Form
Keep the explanations of such key decisions short.
==== Diagramming tools

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.
We will use PlantUML and UMLet for creating the documentation's diagrams.

=== Approaches to Achieve Top Quality Goals

.Further Information
[cols="1,2,3"]
|===
| Quality Goal | Scenario | Solution Approach

See https://docs.arc42.org/section-4/[Solution Strategy] in the arc42 documentation.
| Privacy
| Users seek reassurance in the safety and privacy of their data within our app.
| Ensuring user data security and privacy within the application.

****
| Usability
| Seamless execution of all application functions is crucial for user satisfaction.
| Optimizing usability through the utilization of React.

| Maintainability
| Application architecture must facilitate seamless addition or modification of functionalities with minimal code changes.
| Implementing design patterns and adhering to code conventions to ensure clean and maintainable code. Additionally, prioritizing testing during development for long-term maintainability.

| Scalability
| The application's design must accommodate changes effortlessly throughout its lifecycle.
| Employing a microservices approach to minimize code repetition and enhance understanding of application distribution, ensuring future scalability.

|===

=== Organizational Decisions

We've established the following organizational guidelines:

- *Language*: Adhering to international standards, the project, encompassing code and documentation, will be developed in English as the primary language.
- *Issues:* All deliberations will be documented as issues on GitHub.
- *GitHub Projects:* Employing this tool, we'll plan the application's development process, utilizing GitHub's integrated features for efficient project management in accordance with AGILE methodology.
Loading