chronos/README.md

71 lines
2.4 KiB
Markdown
Raw Normal View History

2024-12-23 23:25:22 +01:00
# Chronos
**Chronos** je jednoduchá multiplayerová hra napsaná v Javě.
2024-12-23 23:25:22 +01:00
Hra je napsaná tak aby byla co nejvíce modulární. Více info o struktuře projektu [zde](docs/PROJECT_STRUCTURE.md).
2024-12-23 23:25:22 +01:00
---
2024-12-23 23:25:22 +01:00
## Jak spustit
2024-12-23 23:25:22 +01:00
### Backend
2024-12-23 23:25:22 +01:00
Backend je připraven k jednoduchému spuštění pomocí Docker Compose.
2024-12-23 23:25:22 +01:00
1. Ujistěte se, že máte nainstalovaný Docker a Docker Compose.
2. Ve složce `backend` spusťte následující příkaz:
2024-12-23 23:25:22 +01:00
```bash
docker-compose up
```
2024-12-23 23:25:22 +01:00
3. Backend server bude automaticky spuštěn na portu `8080` a propojen s MySQL databází.
2024-12-23 23:25:22 +01:00
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`