# Chronos **Chronos** je jednoduchá multiplayerová hra napsaná v Javě. Hra je napsaná tak aby byla co nejvíce modulární. Více info o struktuře projektu [zde](docs/PROJECT_STRUCTURE.md). --- ## Jak spustit ### Backend Backend je připraven k jednoduchému spuštění pomocí Docker Compose. 1. Ujistěte se, že máte nainstalovaný Docker a Docker Compose. 2. Ve složce `backend` spusťte následující příkaz: ```bash docker-compose up ``` 3. Backend server bude automaticky spuštěn na portu `8080` a propojen s MySQL databází. Není potřeba žádné další nastavení. Všechny potřebné služby a závislosti jsou definovány v souboru `docker-compose.yml`. ### Frontend Frontend je Maven projekt, který lze snadno spustit pomocí následujících kroků: 1. Ujistěte se, že máte nainstalovanou **Java 23** a **Maven**. 2. Ve složce `frontend` spusťte příkaz: ```bash mvn clean package ``` 3. Po úspěšném sestavení spusťte frontend příkazem: ```bash java -jar target/chronos-1.0-SNAPSHOT.jar ``` ## Technické specifikace ### Backend Backend je implementován jako HTTP server, který zpracovává všechny herní požadavky. Podporuje současný provoz více her a využívá SQL databázi k ukládání herních dat. #### Technologie: - **Jazyk:** Java - **Framework:** Spring - **Databáze:** Relační SQL databáze (např. MySQL) > **Poznámka:** Použití relační databáze nebylo ideální rozhodnutí. Já vím #### Environmentální proměnné Pro správnou funkci backendu je nutné nastavit následující environmentální proměnné pro připojení k databázi: - `DATASOURCE_URL`: JDBC URL databáze (např. `jdbc:mysql://localhost:3306/chronos`). - `DB_USERNAME`: Uživatelské jméno pro přístup k databázi (např. `root`). - `DB_PASSWORD`: Heslo pro přístup k databázi (např. `root`). > **Poznámka:** Tyto enviromentální proměnné jsou nastaveny automaticky pokud používáte Docker Compose pro spuštění backendu. ### Frontend Frontend je napsán ve Vanilla Javě a zajišťuje uživatelskou interakci. #### Configurační soubor Konfigurační soubor se automaticky ukládá do různých standardních lokací podle operačního systému: - **Unix-like systémy:** `~/.config/Chronos/config.json` - **Windows:** `C:\Users\\AppData\Chronos\config.json` - **MacOS:** `~/Library/Application Support/Chronos/config.json`