# Space Theme (Repository layout) ## Ziel Alles, was später auf den Webserver gehört, lebt unter `web/`. Die anderen Ordner dokumentieren Planung und Infos, die nicht direkt ausgeliefert werden. ## Struktur - `web/desktop/`: Desktop-geeigneter Build mit eigenem `public/` (Entry-Point) und `src/partials/`. - `web/mobile/`: Mobile-Version (aktuell ein Spiegel des Desktop-Builds; anpassbar für responsive Varianten). - `docs/`: Projektdokumentation; siehe `docs/README.md` für Details zur Anwendung. - `docs/game_rulebook_v1_2.md`: **SSOT** für Regeln, Generator, Blueprints und Permissions. - `planning/`: Freifläche für Skizzen, Notizen oder Quelltext, der nicht ins Webroot gehört. - `server/`: Slim-Backend (PSR-4/7/15/11), API-Endpunkte und Tests. - `config/`: JSON-Konfigurationen (Planetklassen, Rassen, Gebäude-Blueprints). ## Entwicklung Schnellstart (Testumgebung, Worktree-Sandbox): 1. `bash scripts/test-env-up.sh` Manueller Ablauf: 1. `cp .env.example .env` 2. `docker compose up -d` 3. `psql -h 127.0.0.1 -U -c \"CREATE DATABASE \"` (nur einmalig) 4. `cd server && composer install` 5. `php db/migrate.php` 6. `php db/seed.php` 7. `vendor/bin/phpunit` 8. `php -S localhost:8000 -t web/desktop/public` 9. Öffne `http://localhost:8000/index.php?s=overview&p=dashboard` (für mobile Tests `-t web/mobile/public`). 10. Beim Start wird `/api/state` geladen; die Ressourcen in der Leiste aktualisieren sich automatisch. ## Konfiguration (.env) Die Datei `.env.example` enthält **Platzhalter** (`change-me`). Diese Werte **müssen** vor einem Produktivbetrieb ersetzt werden. Auch Default-Credentials im Seed (z.B. User `dev` mit Passwort `change-me`) sind **nur Platzhalter** und müssen vor Prod geändert werden. Benötigte Variablen: - `APP_ENV` - `DEV_MODE` - `DEV_USER_ID` - `DB_HOST` - `DB_PORT` - `DB_NAME` - `DB_TEST_NAME` - `DB_USER` - `DB_PASS` ## Repo-Hygiene Vor dem Commit prüfen: **keine Secrets im Diff**. ## Weitere Infos - Die ausführliche Demo-Beschreibung und Abläufe stehen in `docs/README.md`. - Trage Planungsnotizen und zusätzliche Quellen in `planning/` ein, damit sie nicht mit in `web/` landen. - Die Partial-Templates (`main-nav.php`, `planet-switcher.php`, `alert-banner.php`, `footer-links.php`, `ressourcen.php`, `site.php`) liegen jeweils unter `web/desktop/src/partials/` und `web/mobile/src/partials/`.