Skip to content

Commit

Permalink
chore: Updated section 8
Browse files Browse the repository at this point in the history
Written first draft of the section 8 of the documentation, the domain model is temporal.
  • Loading branch information
UO283615 authored Feb 9, 2024
1 parent 06b1064 commit 9b20ea0
Showing 1 changed file with 53 additions and 63 deletions.
116 changes: 53 additions & 63 deletions docs/src/08_concepts.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,68 +6,58 @@ ifndef::imagesdir[:imagesdir: ../images]

[role="arc42help"]
****
.Content
This section describes overall, principal regulations and solution ideas that are relevant in multiple parts (= cross-cutting) of your system.
Such concepts are often related to multiple building blocks.
They can include many different topics, such as
* models, especially domain models
* architecture or design patterns
* rules for using specific technology
* principal, often technical decisions of an overarching (= cross-cutting) nature
* implementation rules
.Motivation
Concepts form the basis for _conceptual integrity_ (consistency, homogeneity) of the architecture.
Thus, they are an important contribution to achieve inner qualities of your system.
Some of these concepts cannot be assigned to individual building blocks, e.g. security or safety.
.Form
The form can be varied:
* concept papers with any kind of structure
* cross-cutting model excerpts or scenarios using notations of the architecture views
* sample implementations, especially for technical concepts
* reference to typical usage of standard frameworks (e.g. using Hibernate for object/relational mapping)
.Structure
A potential (but not mandatory) structure for this section could be:
* Domain concepts
* User Experience concepts (UX)
* Safety and security concepts
* Architecture and design patterns
* "Under-the-hood"
* development concepts
* operational concepts
Note: it might be difficult to assign individual concepts to one specific topic
on this list.
image::08-Crosscutting-Concepts-Structure-EN.png["Possible topics for crosscutting concepts"]
.Further Information
See https://docs.arc42.org/section-8/[Concepts] in the arc42 documentation.
****


=== _<Concept 1>_

_<explanation>_



=== _<Concept 2>_

_<explanation>_

...

=== _<Concept n>_

_<explanation>_
.Domain Model
These diagram is just a sketch, it should be replaced by a more accurate version upon discussion.
[plantuml,"ConceptsDomainModel1",png]
----
@startuml
enum Category {
HISTORY
GEOGRAPHY
MATHS
}
class Question{
id: int
content: String
category: Category
language: String
}
class User{
id: int
name: String
email: String
password: String
answered: List<Question>
}
class Score{
user: User
rightRate: float
timeAvg: float
answeredQuestions: int
}
User o--> Question
User --> Score
@enduml
----
|===
| Class | Explanation
| Question | The model of the questions
| User | The people using the application
| Score | A class that keeps tracks of each user scores
|===
.Architecture and design patterns
We decided to use a React based frontend with BootSpring for the backend, which will follow the model view controller pattern to make the code clear.
.User Experience
As this is a game, the focus must be in user experience so players can have an enjoyable experience, for achieving this, the response time should be as low as possible and the interfaces should be intuitive and beautiful.

0 comments on commit 9b20ea0

Please sign in to comment.