Jeremy Brandenburger 0d971745a6 feat: major redesign — ELO system, 4 practice modes, history view, mobile nav
- 4 practice modes: Timed (SVG ring), Endless (3 lives), Category Drill, Speed Run
- Practice settings modal (timer duration, difficulty) with localStorage persistence
- History view: paginated table, SVG score chart, best-times-per-stratagem
- ELO rating system with server-side K=32 calculation and rank tiers PRIVATE–GENERAL
- Post-match result modal with ELO delta and round history
- Challenge modal showing challenger name + ELO (replaces toast)
- Dashboard hero card with ELO rank icon and daily sequence preview
- Leaderboard tabs: Practice Score / ELO / Speed Run
- Mobile hamburger nav drawer with slide-in animation
- DB migration: elo column, mode column, stratagem_stats table
- WS lobby-update now sends {name, elo, rank} objects
- View fade transitions, danger vignette at ≤5s, streak fire glow, combo badge
- Esc/Enter keyboard shortcuts for modals and practice
2026-03-30 18:31:46 +02:00
2026-03-30 14:11:58 +02:00

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

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

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
S
Description
Helldivers 2 Stratagem Trainer
Readme 416 KiB
Languages
JavaScript 58%
CSS 27.4%
HTML 14.4%
Shell 0.2%