docs: Added simple docs and dockerized backend
This commit is contained in:
50
docs/PROJECT_STRUCTURE.md
Normal file
50
docs/PROJECT_STRUCTURE.md
Normal file
@ -0,0 +1,50 @@
|
||||
# Struktura souborů a složek
|
||||
|
||||
Níže je uveden přehled důležitých souborů, včetně jejich funkcí:
|
||||
|
||||
## Backend
|
||||
|
||||
### `src/main/java/.../services/InitGameService.java`
|
||||
- Třída zodpovědná za inicializaci nové hry.
|
||||
- Obsahuje logiku pro nastavení výchozích parametrů hry.
|
||||
- Vytvoření všech místností, všech postav, všech dialogů a inicializace všech itemů ve hře.
|
||||
|
||||
### `src/main/java/.../interactions/InteractionService.java`
|
||||
- Třída zodpovědná za zpracování všech interakcí.
|
||||
|
||||
> **Poznámka**: Interakce je jakákoliv akce, která proběhne při hraní minihry. Na příklad odeslání odpovědi na otázku, pokus o uhodnutí čísla, a další. Tyto interakce jsou posílány přes endpoint `game/characters/interact`.
|
||||
|
||||
- Všechny interakce jsou třídy které implementují interface `.../interactions/InteractionPlayer`
|
||||
|
||||
- Data pro interakci jsou vždy posílány jako `String`
|
||||
|
||||
### `src/main/java/.../utils/annotations/UserCheckAspect.java`
|
||||
- Implementace anotace `@CheckUser`, která kontroluje zda je uživatel autorizovaný při vytváření požadavku na server.
|
||||
|
||||
## Frontend
|
||||
|
||||
### `src/main/java/.../api/ApiService.java`
|
||||
- Interface, který obsahuje všechny endpointy pro API.
|
||||
- Tato tříde je poté implementována knihovnou `retrofit2`
|
||||
|
||||
### `src/main/java/.../utils/Cli.java`
|
||||
- Tato třída obsahuje funkce pro vypisování textu do stdout a získavání dat z stdin.
|
||||
|
||||
### `src/main/java/.../utils/ConfigPathProvider.java`
|
||||
- Třída zodpovědná za zjištění operačního systému a vrácení správné lokace configuračního souboru.
|
||||
|
||||
### `src/main/java/.../game/CommandPalette.java`
|
||||
- Třída zodpovědná za vypisování palety příkazů.
|
||||
- Tato třída taky zjišťuje stav inventáře, jestli není plný. Pokud je, vypisuje varovnou hlášku.
|
||||
- Tato třída dává přístup do inventáře, chatu, profilu hráče a opuštění hry
|
||||
- Taky tato třída kontroluje jestli již hra není vyhrána. (Jestli jiný hráč nevložil poslední fragment klíče.)
|
||||
|
||||
### `src/main/java/.../game/Chronos.java`
|
||||
- Třída, která spravuje přihlášení do hry, nastavení adresy serveru a připojování do hry.
|
||||
|
||||
### `src/main/java/.../game/LocalData.java`
|
||||
- Třída zodpovědná za ukládání lokální konfigurace do konfiguračního souboru. Ukládá game key, user secret a adresu serveru.
|
||||
|
||||
### `src/main/java/.../game/interactions/Interactions.java`
|
||||
- Třída zodpovědná za hraní všech miniher.
|
||||
- Tato třída rozděluje interakce a spouští minihru podle typu interakce.
|
Reference in New Issue
Block a user