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

Finished Documentation 08 - Cross-cutting Concepts #29

Merged
merged 1 commit into from
Feb 19, 2025
Merged
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
92 changes: 47 additions & 45 deletions docs/src/08_concepts.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,72 +3,74 @@ ifndef::imagesdir[:imagesdir: ../images]
[[section-concepts]]
== Cross-cutting Concepts

=== Domain Concepts

ifdef::arc42help[]
[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
The WIChat system is built around the concept of an interactive question-and-answer game where users receive hints to guess the correct answer. The system integrates data from WikiData and utilizes a Large Language Model (LLM) to generate dynamic hints.

* 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
Key domain concepts include:

Users: Participants interacting with WIChat.

.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.
Questions & Answers: Content dynamically generated from WikiData.

Some of these concepts cannot be assigned to individual building blocks, e.g. security or safety.
Hints: AI-generated assistance to guide users.

Ranking System: Scores and leaderboards to enhance engagement.

.Form
The form can be varied:
=== User Experience (UX) Concepts

* 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)
User experience is a fundamental aspect of WIChat, ensuring seamless interaction and intuitive design.

.Structure
A potential (but not mandatory) structure for this section could be:
Minimalist UI Design: A clean and distraction-free interface.

* Domain concepts
* User Experience concepts (UX)
* Safety and security concepts
* Architecture and design patterns
* "Under-the-hood"
* development concepts
* operational concepts
Real-time Feedback: Immediate responses to user input.

Note: it might be difficult to assign individual concepts to one specific topic
on this list.
Gamification Elements: Leaderboards and achievements to boost user engagement.

image::08-concepts-EN.drawio.png["Possible topics for crosscutting concepts"]
=== Security and Safety Concepts

Security is a critical component of WIChat, ensuring safe interactions and data integrity.

.Further Information
Authentication and Authorization: User authentication through secure protocols.

See https://docs.arc42.org/section-8/[Concepts] in the arc42 documentation.
****
endif::arc42help[]
Input Validation: Preventing injection attacks and ensuring data integrity.

=== _<Concept 1>_

_<explanation>_
=== Architecture and Design Patterns

WIChat follows established software design principles to ensure scalability and maintainability.

Microservices Architecture: Decoupled services to improve scalability.

=== _<Concept 2>_
MVC Pattern: Structuring the web application using Model-View-Controller.

_<explanation>_

...
=== "Under-the-hood" - Technical Implementation

Backend: Implemented using Node.js with Express.

Frontend: Built with React for a dynamic user experience.

Database: MongoDB as the primary data store.

LLM Integration: Empathy AI used for hint generation.

External Data Source: WikiData for retrieving question-related information.

=== Development Concepts

Version Control: Git and GitHub for source code management.

Continuous Integration/Deployment (CI/CD): Automated testing and deployment pipelines.

Code Reviews: Peer reviews to maintain code quality.


=== Operational Concepts

Logging & Monitoring: Centralized logging and performance monitoring tools.

Error Handling: Graceful degradation strategies for unexpected failures.


=== _<Concept n>_

_<explanation>_