71 lines
2.4 KiB
Markdown
71 lines
2.4 KiB
Markdown
# 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\<username>\AppData\Chronos\config.json`
|
|
- **MacOS:** `~/Library/Application Support/Chronos/config.json`
|