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

Updating doc #80

Merged
merged 6 commits into from
Apr 7, 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 removed docs/images/08-Domain-Model.png
Binary file not shown.
Binary file removed docs/images/Deployed-Infrastructure.png
Binary file not shown.
18 changes: 4 additions & 14 deletions docs/src/07_deployment_view.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,9 @@ Describe (usually in a combination of diagrams, tables, and text):
For multiple environments or alternative deployments please copy and adapt this section of arc42 for all relevant environments.
****

image::Deployed-Infrastructure.png["Deployed Infrastructure"]

****
[plantuml, infrastructure.png, png]
----
component User as "User"
cloud "WIQ" {
rectangle "Azure - Ubuntu - Docker"{
Expand Down Expand Up @@ -108,17 +108,7 @@ records -[#red]-> Records
questions -[#red]-> Questions
qg -[#red]-> Questions
qg -[dotted]-> Wikidata
****
This diagram shows the infrastructure of our application when deployed.

*TBD*

=== Infrastructure Level 2
----

[role="arc42help"]
****
Here you can include the internal structure of (some) infrastructure elements from level 1.

Please copy the structure from level 1 for each selected element.
****

This diagram shows the infrastructure of our application when deployed.
84 changes: 70 additions & 14 deletions docs/src/08_concepts.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -58,13 +58,64 @@ See https://docs.arc42.org/section-8/[Concepts] in the arc42 documentation.
=== Domain concepts
==== Domain model

image::08-Domain-Model.png["model-diagram"]

[plantuml, domain-model.png, png]
----
rectangle "Domain model"{
class User {
username : String
email : String
password : String
}

class Game {
questions : List<Question>
}

class Question {
question : String
answers : List<Answer>
correctAnswer : Answer
language : String
number : int
questionType : QuestionType
}

enum QuestionType {
POPULATION
CAPITAL
SIZE
LANGUAGE
}

class Answer {
text : String
language : String
}

class UserData {
answeredQuestion : Question
chosenAnswer : String
}

class GameOptions {
language : String
}

User "1" -[#red]-> "n" Game : plays
User "1" -[#red]-> "1" GameOptions : defines
GameOptions "1" -[#red]-> "1" Game : uses
Game "1" -[#red]-* "n" Question : has many
Question -[#red]-> QuestionType : is
Question "1" -[#red]-* "n" Answer : has many
Game "1" -[#red]-> "1" UserData : stores
User "1" -[#red]-> "1" UserData : stores
}
----

=== User experience concepts

==== Consistency
Design elements should be consistent throuhgout the design so that the user does not get confused.
Design elements should be consistent throuhgout the design, so that the user does not get confused.

==== Progress indicators
Provide the users with some sort of progress indicator within the quiz. This helps users understand their current position in the quiz.
Expand All @@ -73,7 +124,7 @@ Provide the users with some sort of progress indicator within the quiz. This hel
Provide immediate feedback to users after they answer each question, indicating whether their response was correct or incorrect.

==== Internationalization
Provide other language options other than english.
Provide language options other than english.


=== Security and Safety concepts
Expand All @@ -82,29 +133,34 @@ Provide other language options other than english.
Make sure to never store the user passwords in plain text, to secure the users data.

==== Data encryption
Utilize encryption techniques to secure data in any transmission between actors of owr application.
Utilize encryption techniques to secure data in any transmission between actors of our application.


=== Architecture and design patterns concepts

==== Microservices
The microservices pattern combines design patterns to create multiple services that work interdependently to create a larger application. Because each application is small, it's easier to update them when needed. We will be using this pattern during development.


=== Under-the-hood concepts
TBD

=== Developement concepts
==== Question and User Databases
To enhance consistency and reduce reliance on Wikidata, our project employs two distinct databases. The first database serves as a repository for questions generated via Wikidata's API, which are then utilized within the application. The second database stores various other datasets, including user information.

==== Testing
TBD

==== Deployment
TBD
=== Developement concepts

==== Continous Integration
The developement will intent for the maximum possible code coverage, and to be deployed in an Azure Virtual Machine using Continous Integration.

==== Task branching
We should create 1 branch per task and merge them as soon as possible.
We should create 1 branch per issue and merge them as soon as possible.

==== Error handling
In case of an exception/error, the system will pressent user-friendly messages informing of the error. This messages will only be delivered in the worst case, when all other attempts to resolve the issue have been exhausted.


=== Operational concepts
TBD

_<All concepts are subject to change>_
==== User history
The application will maintain a record of user game history, encompassing details such as game timestamps, earned points, questions posed, correct response and selected response.
Loading