Maximum Trainer
Maximum Trainer Redux is a free, open-source indoor cycling training application with ERG mode, BLE sensor support, and structured interval workouts.
Jetzt wird gezockt!
Translation pending
Sports & fitnessGitHub @linuskatzenbachOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Eine winzige Website, auf der ihr Billard-Ergebnisse eintragt und die daraus automatisch eine Elo-Rangliste berechnet (gleiches System wie im Schach).
lib/players.ts) – Besucher
der Website können keine Spieler hinzufügen oder löschen./api/results) bereitstellt.Kosten: 0 €, solange ihr im kostenlosen Rahmen von Vercel und Neon bleibt (für eine private Freundesrunde bei Weitem ausreichend).
billard-elo). Kein README/gitignore beim
Erstellen mit anhaken, das bringen wir schon mit..gitignore) in das Repository hoch. Am einfachsten geht das über die
GitHub-Weboberfläche: Repository öffnen → "Add file" → "Upload files" →
alle Dateien/Ordner reinziehen → "Commit changes".
(Wenn du lieber mit Git auf der Kommandozeile arbeitest, geht das
natürlich auch mit git init, git add ., git commit, git push.)DATABASE_URL) selbst. Du musst hier
nichts weiter eintragen.RESULT_PASSWORDneunball2024.vercel.app-Adresse live.Fertig! Alle vier hinterlegten Spieler starten automatisch mit Elo 1500, sobald die Seite zum ersten Mal aufgerufen wird.
Nur du als Entwickler kannst das, über den Code:
lib/players.ts in deinem Repository (auf GitHub direkt mit dem
Stift-Symbol editierbar, oder lokal).PLAYERS-Liste hinzu, z.B.:
{ id: "julia", name: "Julia" },
id muss eindeutig sein und sollte keine Leerzeichen/Umlaute/Sonder-
zeichen enthalten. name ist der Anzeigename.Zum Entfernen eines Spielers einfach die Zeile löschen – seine bisherigen Ergebnisse bleiben in der Datenbank erhalten, er verschwindet aber aus der Rangliste und der Auswahl im Formular.
Settings → Environment Variables → RESULT_PASSWORD bearbeiten →
speichern → einmal redeployen (Deployments → Redeploy), damit die Änderung
wirksam wird.
Die "Empfindlichkeit" der Elo-Berechnung (wie stark ein einzelnes Spiel den
Wert verändert) steht in lib/elo.ts als K_FACTOR (Standard: 32). Höher
= größere Ausschläge pro Spiel, niedriger = stabilere, langsamere Werte.
Nur nötig, wenn du selbst am Code herumbasteln willst, bevor du pushst:
npm install
cp .env.local.example .env.local # dann DATABASE_URL/RESULT_PASSWORD eintragen
npm run dev
Für eine lokale DATABASE_URL kannst du entweder eine zweite (kostenlose)
Neon-Datenbank direkt auf neon.tech anlegen, oder mit
vercel env pull .env.local die Werte aus dem Vercel-Projekt lokal holen
(dafür vorher npm install -g vercel und vercel link).
Unten in der Leiste geht es rechts zu „Mein Bereich“. Dort loggt man sich ein.
Zurzeit gibt es nur das Admin-Profil: Benutzername admin (änderbar über
ADMIN_USERNAME), Passwort aus der Umgebungsvariable ADMIN_PASSWORD.
Als Admin kann man unter „Testspiel eintragen“ die komplette Sieges-Animation
ausprobieren, ohne dass etwas gespeichert wird.
Spieler melden sich mit ihrer Uni-Mail (…@law-school.de) an – per Link oder
6-stelligem Code aus der Mail, ohne Passwort. Eingetragen wird vom eigenen
Profil aus; das gemeinsame RESULT_PASSWORD wird nicht mehr gebraucht.
Spieler stehen jetzt in der Datenbank (Tabelle players), lib/players.ts
enthält nur noch die Startliste.
Umgebungsvariablen in Vercel:
| Name | Wofür |
|---|---|
GMAIL_USER | [email protected] – Absender der Mails |
GMAIL_APP_PASSWORD | App-Passwort des Gmail-Kontos (16 Zeichen) |
SESSION_SECRET | optional, Schlüssel für die Login-Cookies (sonst ADMIN_PASSWORD) |
ADMIN_PASSWORD | Notfall-Login für den Admin („Admin-Login“ unter Mein Bereich) |
ADMIN_MAIL | optional, Empfänger der Widerspruchs-Mails (Standard [email protected]) |
Lokal testen ohne Neon: LOCAL_PGLITE_DIR=./.localdb setzen (dafür ist
@electric-sql/pglite als Entwicklungs-Abhängigkeit dabei); ohne
Gmail-Variablen werden Mails nur ins Server-Log geschrieben.