Files
helldivers/README.md
T
Jeremy Brandenburger 7de283a8e1 docs: add README
2026-03-30 14:11:58 +02:00

59 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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