40 lines
1.8 KiB
Markdown
40 lines
1.8 KiB
Markdown
# Codex Instructions – helldivers
|
||
|
||
## Pflichtlektüre vor dem ersten Code-Zugriff
|
||
Lies **PROJECT_MAP.md** in diesem Verzeichnis – sie enthält alle Funktionen, API-Routen, WebSocket-Message-Types, State-Struktur und Datenbank-Details.
|
||
|
||
## Projekt-Überblick
|
||
- **Port:** 3012
|
||
- **Typ:** Authenticated Multiplayer App (WebSocket, SQLite, ELO-Rating)
|
||
- **Stack:** Node.js / Express, WebSocket (ws), SQLite (better-sqlite3), bcrypt, Helmet, rate-limit, Vanilla JS
|
||
- **Features:** Stratagem-Trainer (Timed/Endless/Drill/Speedrun), 1v1-Multiplayer-Matches, ELO-Rangliste, Tages-Challenge, Admin-Panel
|
||
|
||
## Struktur
|
||
```
|
||
helldivers/
|
||
├── server.js # Express + WebSocket + SQLite (~650 Zeilen)
|
||
├── public/app.js # Gesamte Client-Logik (~1840 Zeilen)
|
||
├── public/styles.css
|
||
├── public/index.html
|
||
├── scripts/ # DB-Migrations / Seed
|
||
└── data/helldivers.db # SQLite (Scores, Users, History, Sessions)
|
||
```
|
||
|
||
## Git-Workflow
|
||
1. Branch: immer `bugfixes-features` für Änderungen
|
||
2. Commit: `type: kurze Beschreibung` – **keine Co-Authored-By-Zeile**
|
||
3. Vor Commit: `CHANGELOG.md` aktualisieren
|
||
4. Vor Commit: `PROJECT_MAP.md` aktualisieren, falls Funktionen/Routen/WS-Types geändert wurden
|
||
5. `git add` nur einzelne Dateien – kein `git add -A`
|
||
6. Merge nach `main` nur auf explizite Anweisung
|
||
|
||
## Sicherheit
|
||
- Niemals `data/helldivers.db` committen
|
||
|
||
## Release-Automation
|
||
- **Version ist Single Source of Truth:** `package.json`
|
||
- **Cache-Busting nie manuell pflegen** – stattdessen `npm run release:sync`
|
||
- **Vor jedem Commit zusätzlich:** `npm run release:verify`
|
||
- Repo-Hook: `.githooks/pre-commit` führt `release:sync` und `release:verify` automatisch aus
|
||
- Für Versionssprünge: `npm run release:bump:patch`, `release:bump:minor` oder `release:bump:major`
|