From 7de283a8e1fd8fc9e67e36e86afcb7fee4646130 Mon Sep 17 00:00:00 2001 From: Jeremy Brandenburger Date: Mon, 30 Mar 2026 14:11:58 +0200 Subject: [PATCH] docs: add README --- README.md | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..54f4530 --- /dev/null +++ b/README.md @@ -0,0 +1,58 @@ +# HELLDIVERS 2 – Stratagem Trainer + +Trainings- und Wettkampf-App für Helldivers 2 Stratagems. Erkennt Arrow-Key-Eingaben, bewertet Geschwindigkeit und Genauigkeit, ermöglicht 1v1-Matches in Echtzeit. + +## Features + +- **Practice Mode** – 97 Stratagems aus 15 Kategorien, 30s Timer, Streak-Multiplikator +- **1v1 Arena** – Echtzeit-Matches via WebSocket, Best-of-10 Runden (first to 5) +- **Dashboard** – eigene Stats, Tages-Challenge, Online-Status anderer Spieler +- **Leaderboard** – Top-20 nach Gesamtpunktzahl +- **Admin Panel** – User anlegen/löschen, Temp-Passwörter vergeben + +## Stack + +- Node.js / Express 5 +- SQLite (`better-sqlite3`, WAL-Modus) +- WebSocket (`ws`) +- Session-Auth (`express-session` + `bcryptjs`) +- Vanilla JS, kein Frontend-Framework + +## Setup + +```bash +npm install +node server.js +``` + +Beim ersten Start werden `admin` und `jeremy` mit zufälligen Temp-Passwörtern angelegt (Ausgabe in der Konsole). + +## Port + +`3012` — konfigurierbar via `PORT`-Umgebungsvariable + +## PM2 + +```bash +pm2 start ecosystem.config.js +``` + +## Datenbankschema + +Drei Tabellen in `data/helldivers.db`: + +| Tabelle | Inhalt | +|---|---| +| `users` | Username, Passwort-Hash, Rolle, mustChange-Flag | +| `practice_sessions` | Stratagem, Kategorie, Zeit, Score, Timestamp | +| `matches` | Gewinner, Verlierer, Rundenstand, Timestamp | + +## Scoring + +``` +score = round((100 + (30 - elapsedSecs) × 3) × (1 + streak × 0.1)) +``` + +- Basis: 100 Punkte +- Zeitbonus: bis zu 90 Punkte (bei < 1s) +- Streak-Multiplikator: +10 % pro korrektem Stratagem in Folge