Jeremy Brandenburger 2d27d9fe4d feat: stratagem icons, session summary, queue preview, UX polish
- Download 65 SVG icons from community repo (scripts/download-icons.js)
- Gold CSS filter on all icons to match game theme
- Session summary modal with score/accuracy/top stratagems
- Queue preview strip (next 3 stratagems with icons)
- Score popup animation, icon shake on wrong input
- Icons in history, leaderboard, and best-per-stratagem tables
- server.js: icon fields on all stratagems, ELO in lobby-update WS events
2026-03-31 08:48:56 +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%