59 lines
1.5 KiB
Markdown
59 lines
1.5 KiB
Markdown
# 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
|