# Signální dispečer

Interaktivní hra na téma **Komunikace** pro Provozně ekonomickou fakultu ČZU a Noc vědy 2026.

Hra je rozdělená na dvě části:

- `client/` - lokální hra v prohlížeči. Běží i bez serveru a ukládá výsledky do `LocalStorage`.
- `server/` - PHP server s katalogem her, leaderboardem, API a jednoduchou moderací jmen.

## Rychlé spuštění

Varianta pro XAMPP/Laragon:

1. Zkopírujte složku `pef-komunikace-hra` do `htdocs` nebo `www`.
2. Otevřete `http://localhost/pef-komunikace-hra/server/install.php`.
3. Spusťte hru přes `http://localhost/pef-komunikace-hra/client/index.html`.
4. Serverový přehled je na `http://localhost/pef-komunikace-hra/server/index.php`.

Varianta bez serveru:

1. Otevřete `client/index.html` přímo v prohlížeči.
2. Hra funguje, ale serverový leaderboard a synchronizace se aktivují až po dostupnosti PHP serveru.

## Metadata klientské hry

- Název: `Signální dispečer`
- Identifikátor hry: `cz.czu.pef.nocvedy2026.komunikace.signalni-dispecer.v1`
- Krátké ID pro API: `pef-signalni-dispecer`
- Autor: `Tým 15, PEF ČZU`
- Popis: krátká hra o šumu, adresování zpráv a zpětné vazbě v organizaci.
- Pořadí: skóre `DESC`, při shodě čas `ASC`.

## API

Všechny endpointy jsou v jednom souboru:

```text
server/api.php?action=health
server/api.php?action=games
server/api.php?action=leaderboard&game_id=pef-signalni-dispecer&limit=10
server/api.php?action=submit_score
```

### Uložení skóre

Metoda: `POST`

```json
{
  "game_id": "pef-signalni-dispecer",
  "play_id": "play-1770000000000-abc",
  "player_name": "Honza",
  "score": 520,
  "time_ms": 90000,
  "correct_answers": 5,
  "wrong_answers": 2,
  "rounds_played": 7,
  "feedbacks_used": 1,
  "client_created_at": "2026-04-30T10:00:00.000Z",
  "payload": {
    "client": "browser-localstorage"
  }
}
```

### Leaderboard

Odpověď obsahuje položky se stavem `approved`. Jména, která automatický filtr vyhodnotí jako podezřelá, čekají na ruční moderaci a veřejně se nezobrazují.

## Moderace

Moderace je na:

```text
server/moderation.php?key=zmen-me-pred-prezentaci
```

Klíč změňte v `server/config.php`. Moderace umožňuje podezřelé jméno schválit s upravenou veřejnou podobou nebo záznam skrýt.

## Databáze

Server sám vytvoří tabulky:

- `pef_games`
- `pef_scores`

SQL je také v `server/schema.sql`. Připojení k databázi je v `server/config.php`.
