Psychologická webová hra. Pravidlo je jedno — nedělej nic.
Dokumentace v repozitáři: docs/README.md — rejstřík + docs/PROJECT_OVERVIEW.md (aktuální stav engine a levelů).
- Node.js 18+
- PostgreSQL 14+
- npm
cd server && npm install
cd ../client && npm installcd server
cp ../.env.example .envUprav .env: DATABASE_URL, SESSION_SECRET (min. 32 znaků), případně LEVEL_SECRET pro podpis levelů v produkci.
cd server
npx prisma migrate dev --name initcd server && npm run devcd client && npm run devAplikace: http://localhost:5173 (Vite proxy na API dle client/vite.config.ts).
nedelejnic/
├── client/ # React + Vite + TypeScript
│ ├── public/assets/ # statické audio (voices/music/sounds) → /assets/...
│ └── src/
│ ├── engine/
│ │ ├── core/ # EngineHost (LevelRunner + InputManager)
│ │ ├── newEngine/ # LevelRunner, TimelineScheduler, ActionDispatcher, …
│ │ └── input/ # InputManager
│ ├── pages/ # GamePage, AuthPage, AdminDashboard, …
│ ├── services/ # api, adminApi, httpClient
│ └── ...
├── server/ # Express + Prisma
│ └── src/
│ ├── levels.ts # načítání JSON z ../../levels
│ └── controllers/
├── levels/ # Zdroj levelů (JSON na disku)
│ ├── tests/ # priorita při kolizi id — vývojové testovací levely
│ └── templates/
└── docs/ # viz docs/README.md
| Role | Popis |
|---|---|
| PLAYER | Běžná hra, postup podle user.level, po levelu odpočet k odhlášení |
| DEV | Ladění: pauza, inspektor, skok mezi levely API, výsledek neposouvá level v DB |
| ADMIN | Admin dashboard + chování jako DEV ve hře |
Změna rolí přes admin rozhraní.
| Oblast | Cesty |
|---|---|
| Auth | /auth/register, /auth/login, /auth/me |
| Hra | GET /level/:id, POST /result |
| Admin | /admin/* — viz docs/ADMIN_API_CONTRACT.md |
- Definují se jako JSON v adresáři
levels/(vizdocs/LEVEL_FORMAT.md). - Server nepřiděluje úrovně procedurálním generátorem v kódu — obsah je soubory v repozitáři (nebo budoucí build pipeline).
- Klient po načtení levelu neposílá požadavky na server během hraní; po skončení jedno
POST /results podpisem.
Starší dokumentace o „procedurálních“ vyšších úrovních neplatí — aktuální pravda je v docs/PROJECT_OVERVIEW.md.
NODE_ENV=production, silnéSESSION_SECRET/LEVEL_SECRETCLIENT_URL= veřejná URL frontendu (CORS)npm run buildvclient/aserver/, server přesnpm start