From b238632532f165b9eabc0d653e9ad0a28ab37c77 Mon Sep 17 00:00:00 2001 From: jamulix Date: Mon, 27 Oct 2025 15:46:11 +0100 Subject: [PATCH] =?UTF-8?q?Neue=20Claude=20=C3=84nderungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + HILFE.md | 450 +++++++++++++++++++++++++++++++++++++++---- app.py | 25 +++ templates/index.html | 10 +- 4 files changed, 448 insertions(+), 39 deletions(-) diff --git a/.gitignore b/.gitignore index 262ef58..bcba0fd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ .aider* +.claude/ + # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] diff --git a/HILFE.md b/HILFE.md index 08d3003..cd3c118 100644 --- a/HILFE.md +++ b/HILFE.md @@ -1,43 +1,425 @@ -# Typewriter Trainer - Hilfe +# 📖 Typewriter Trainer - Online-Hilfe -## Was ist das? -Der Typewriter Trainer ist ein webbasierter Tipptrainer, der Ihnen hilft, das Zehnfingerschreiben zu erlernen und Ihre Tippgeschwindigkeit zu verbessern. +Willkommen beim Typewriter Trainer! Diese Hilfe erklärt alle Funktionen und gibt Tipps für effektives Tipptraining. -## Bedienung +--- -### Grundfunktionen -- **Tippen**: Tippen Sie den angezeigten Text direkt im Vorlagenfeld -- **Cursor**: Der blaue/cyanfarbene Unterstrich zeigt Ihre aktuelle Position -- **Farben**: - - Grün: Korrekt getippte Zeichen - - Rot: Falsche Zeichen (mit orangefarbener Überlagerung des falsch eingegebenen Zeichens) +## 🎯 Was ist Typewriter Trainer? -### Steuerung -- **Pfeiltasten**: Bewegen den Cursor nach links/rechts -- **Backspace**: Löscht Zeichen an der Cursor-Position -- **Enter**: Wird automatisch erkannt, wenn im Vorlagentext vorhanden +Typewriter Trainer ist ein webbasierter Tipptrainer, der Ihnen hilft: +- Das **Zehnfingersystem** zu erlernen +- Ihre **Tippgeschwindigkeit** zu verbessern +- Ihre **Genauigkeit** zu steigern +- Ihren **Fortschritt** zu verfolgen -### Symbole in der Kopfzeile -- **Lautsprecher**: Metronom ein/aus (standardmäßig aktiv) -- **Schloss**: ErrorLock - bei geschlossenem Schloss müssen Fehler korrigiert werden, bevor weitergeschrieben werden kann -- **Play/Pause**: Tippen pausieren/fortsetzen -- **Mond/Sonne**: Dunkel/Hell-Modus wechseln +**Besonderheit**: Intelligentes adaptives Metronom, das sich automatisch an Ihre Geschwindigkeit anpasst! -### Buttons -- **Weiter**: Nächste Lektion laden -- **Leistung**: Detaillierte Statistiken ein-/ausblenden -- **Statistik**: Zur Statistik-Seite mit Diagrammen navigieren -- **Beenden**: Sitzung beenden +--- -### Statistiken -- **ZPM**: Zeichen pro Minute -- **WPM**: Wörter pro Minute (1 Wort = 5 Zeichen) -- **Fehlerrate**: Prozentualer Anteil der Fehler +## 🚀 Schnellstart -## Tipps für bessere Ergebnisse -1. Üben Sie regelmäßig -2. Konzentrieren Sie sich auf Genauigkeit vor Geschwindigkeit -3. Nutzen Sie das Metronom für einen gleichmäßigen Rhythmus -4. Korrigieren Sie Fehler sofort mit Backspace +1. **Beginnen Sie zu tippen** - Der Cursor zeigt Ihre Position +2. **Tippen Sie den Text ab** - Grün = richtig, Rot = falsch +3. **Beobachten Sie Ihre Statistiken** - ZPM, WPM, Fehlerrate +4. **Arbeiten Sie sich durch die Lektionen** - 43 aufbauende Übungen -Viel Erfolg beim Training! +--- + +## ⌨️ Grundlegende Bedienung + +### Wie tippe ich? + +**Direkt im Vorlagenfenster tippen:** +- Es gibt KEIN separates Eingabefeld +- Der Text erscheint direkt in der Vorlage +- Der **blinkende Unterstrich** zeigt Ihre aktuelle Position + +### Farbcodes verstehen + +| Farbe | Bedeutung | +|-------|-----------| +| 🟢 **Grün** | Korrekt getipptes Zeichen | +| 🔴 **Rot** | Falsches Zeichen | +| 🟠 **Orange** | Das falsch eingegebene Zeichen (erscheint über dem roten) | +| ⚪ **Standard** | Noch nicht getippt | + +### Sonderzeichen im Text + +| Symbol | Bedeutung | +|--------|-----------| +| `·` | Leerzeichen | +| `→` | Tabulator | +| `↵` | Zeilenumbruch (Enter) | + +--- + +## 🎮 Steuerung + +### Tastatur-Befehle + +| Taste | Funktion | +|-------|----------| +| **Zeichen** | Zeichen eingeben | +| **Backspace** | Löscht das Zeichen an der Cursor-Position | +| **←** (Links) | Cursor nach links bewegen | +| **→** (Rechts) | Cursor nach rechts bewegen | +| **Enter** | Zeilenumbruch (wenn im Text vorhanden) | + +### Was NICHT funktioniert + +- ❌ **Copy & Paste** - Ist deaktiviert (Anti-Cheat) +- ❌ **Strg+C / Strg+V** - Wird blockiert +- ❌ **Rechtsklick** - Kontextmenü ist deaktiviert +- ❌ **Maus-Auswahl** - Text kann nicht mit der Maus ausgewählt werden + +--- + +## 🎛️ Symbole in der Kopfzeile + +Von links nach rechts: + +### 🔊 Lautsprecher-Symbol +- **Ein** (🔊): Metronom spielt Klick-Geräusche +- **Aus** (🔇): Metronom stumm (visuelles Feedback bleibt) +- **Tipp**: Hilfreich für rhythmisches Tippen + +### 🔒 Schloss-Symbol (ErrorLock) +- **Offen** (🔓): Sie können über Fehler hinweg tippen +- **Geschlossen** (🔒): Fehler müssen erst korrigiert werden +- **Empfehlung**: Geschlossen für Anfänger, offen für Fortgeschrittene + +### ⏯️ Play/Pause +- **Pause** (⏸️): Zeitnahme läuft +- **Play** (▶️): Sitzung ist pausiert +- **Nutzen**: Pause bei Unterbrechungen + +### 🌙 Theme-Toggle +- **Sonne** (☀️): Heller Modus aktiv +- **Mond** (🌙): Dunkler Modus aktiv +- **Automatisch**: Einstellung wird gespeichert + +### ⚙️ Einstellungen +- Öffnet die Einstellungsseite +- Metronom konfigurieren +- Anzeige-Optionen + +### ❓ Hilfe +- Öffnet diese Hilfe +- Jederzeit verfügbar + +--- + +## 🎼 Das adaptive Metronom + +### Was ist das? + +Ein **intelligentes Metronom**, das sich automatisch Ihrer Geschwindigkeit anpasst: +- ✅ Hohe Genauigkeit → Tempo erhöht sich +- ⚠️ Niedrige Genauigkeit → Tempo verlangsamt sich +- 🎯 Zielgenauigkeit: 96% + +### Modi + +**Automatisch** (Standard): +- Metronom passt sich Ihrer Leistung an +- Empfohlen für die meisten Benutzer + +**Manuell**: +- Feste Geschwindigkeit (in Einstellungen) +- Für fortgeschrittene Benutzer + +### Anpassungsregeln + +Das Metronom reagiert so: +1. **15+ korrekte Zeichen hintereinander** → +3% schneller +2. **Genauigkeit > 95%** → +2% schneller +3. **Genauigkeit < 85%** → -8% langsamer +4. **Genauigkeit 85-91%** → -3% langsamer +5. **Genauigkeit 91-95%** → +1% schneller + +### Grenzen +- **Minimum**: 40 BPM (Beats pro Minute) +- **Maximum**: 200 BPM + +--- + +## 📊 Statistiken verstehen + +### Echtzeit-Statistiken (während des Tippens) + +| Metrik | Bedeutung | Berechnung | +|--------|-----------|------------| +| **Korrekte Zeichen** | Richtig getippte Zeichen | Zähler | +| **Falsche Zeichen** | Fehler und Korrekturen | Zähler | +| **Tastaturanschläge** | Alle Tasten inkl. Backspace | Gesamt | +| **ZPM** | Zeichen pro Minute | (Korrekte Zeichen / Zeit) × 60 | +| **Fehler in %** | Fehlerrate | (Falsche / Gesamt) × 100 | +| **WPM** | Wörter pro Minute | (Korrekte / 5) / (Zeit / 60) | + +### Historische Statistiken + +Auf der **Statistik-Seite** finden Sie: +- 📈 **Verlaufs-Diagramme** - Ihre Entwicklung über Zeit +- 📊 **Leistungs-Vergleich** - Pro Lektion +- 🎯 **Best Scores** - Ihre persönlichen Rekorde + +--- + +## 📂 Buttons und Navigation + +### Haupt-Buttons (unten) + +| Button | Funktion | Shortcut | +|--------|----------|----------| +| **Weiter** (🟢) | Nächste Lektion laden | - | +| **Leistung** | Statistik ein-/ausblenden | - | +| **Statistik** | Zur Statistik-Seite | - | +| **Beenden** (🔴) | Sitzung beenden | - | + +### Lektionsauswahl + +- **Zahlen** (1.1, 1.2, ...): Klicken zum Wechseln +- **Fett + Rot**: Aktuelle Lektion +- **Standard**: Verfügbare Lektionen +- **Fortschrittsbalken**: Zeigt Gesamtfortschritt + +--- + +## 🎓 Lektions-System + +### Aufbau + +**43 Lektionen** in aufsteigendem Schwierigkeitsgrad: + +1. **Lektion 1.x**: Grundstellung (f, j, d, k, s, l, a, ö) +2. **Lektion 2.x**: Erweiterung (e, i) +3. **Lektion 3.x**: Umschalter (Großbuchstaben) +4. **Lektion 4.x**: Weitere Tasten (g, h) +5. **Lektion 5.x**: Satzzeichen (, ; c) +6. **Lektion 6.x**: Zahlenreihe (r, u) +7. **Lektion 7.x**: Außenbereich (v, m) +8. **Lektion 8.x**: Vollständig (t, z) + +### Fortschritt + +- ✅ **Lektion abgeschlossen**: Wenn alle Zeichen korrekt oder falsch eingegeben wurden +- 💾 **Automatisches Speichern**: Ihr Fortschritt wird kontinuierlich gespeichert +- 🔄 **Wiederholbar**: Jede Lektion kann beliebig oft wiederholt werden + +--- + +## 📜 Scroll-Verhalten (NEU!) + +### Intelligentes Scrollen + +Der Text scrollt **automatisch**, sodass: +- 📍 Der Cursor **immer in der ersten Zeile** bleibt +- 👁️ Sie **nie nach unten schauen** müssen +- 🎯 Optimale **Leseposition** garantiert ist + +### Manuelles Scrollen + +- ✋ Sie können **jederzeit manuell scrollen** +- ⌨️ Bei der **nächsten Tasteneingabe** springt die Ansicht zurück zum Cursor +- 📏 Genug Platz oben für **Fehler-Anzeige** (orangefarbene Zeichen) + +--- + +## 💡 Tipps für bessere Ergebnisse + +### Für Anfänger + +1. ✅ **Genauigkeit vor Geschwindigkeit** + - Konzentrieren Sie sich zuerst auf korrektes Tippen + - Die Geschwindigkeit kommt automatisch + +2. 🔒 **ErrorLock aktivieren** + - Schließen Sie das Schloss + - So müssen Sie Fehler sofort korrigieren + +3. 🎼 **Nutzen Sie das Metronom** + - Der Rhythmus hilft beim gleichmäßigen Tippen + - Lassen Sie es auf "Automatisch" + +4. 📅 **Üben Sie regelmäßig** + - 15-30 Minuten täglich sind besser als 2 Stunden einmal pro Woche + +5. 👀 **Schauen Sie auf den Bildschirm, nicht auf die Tastatur** + - Dies ist der Schlüssel zum Zehnfingersystem + +### Für Fortgeschrittene + +1. ⚡ **Höhere Geschwindigkeiten** + - Lassen Sie das Metronom beschleunigen + - Behalten Sie 95%+ Genauigkeit + +2. 🔓 **ErrorLock deaktivieren** + - Trainiert flüssiges Tippen + - Lernen Sie, Fehler "durchzutippen" + +3. 🎯 **Fokus auf schwierige Zeichen** + - Wiederholen Sie Lektionen mit Problemzeichen + - Nutzen Sie die Statistik zur Identifikation + +4. 🔁 **Variieren Sie die Übungen** + - Wechseln Sie zwischen Lektionen + - Halten Sie das Training interessant + +--- + +## ❓ Häufig gestellte Fragen (FAQ) + +### Warum kann ich nicht in ein Eingabefeld tippen? + +**Antwort**: Es gibt kein separates Eingabefeld! Tippen Sie direkt, und der Text erscheint in der Vorlage. + +### Warum wird mein Fortschritt nicht gespeichert? + +**Antwort**: Der Fortschritt wird automatisch gespeichert. Stellen Sie sicher, dass: +- ✅ Cookies aktiviert sind +- ✅ Die Datenbank läuft (bei lokaler Installation) + +### Wie kann ich Copy & Paste verwenden? + +**Antwort**: Das ist **absichtlich deaktiviert**! Der Tipptrainer soll das manuelle Tippen trainieren, nicht das Kopieren. + +### Das Metronom ist zu schnell/langsam! + +**Antwort**: +- **Automatisch-Modus**: Passt sich Ihrer Genauigkeit an - üben Sie für bessere Anpassung +- **Manuell-Modus**: Gehen Sie zu Einstellungen → Feste Geschwindigkeit einstellen + +### Kann ich meine eigenen Lektionen erstellen? + +**Antwort**: Aktuell nicht über die Benutzeroberfläche. Technisch versierte Benutzer können `data/lessons.json` bearbeiten. + +### Werden meine Daten synchronisiert? + +**Antwort**: Bei lokaler Installation bleiben die Daten lokal. Bei Server-Installation hängt es von der Konfiguration ab. + +### Ich sehe keine Statistiken! + +**Antwort**: Klicken Sie auf den Button **"Leistung"** unterhalb der Vorlage, um die Echtzeit-Statistiken einzublenden. + +### Funktioniert das offline? + +**Antwort**: Ja, bei lokaler Installation! Nach dem ersten Laden läuft alles ohne Internet. + +--- + +## ⚙️ Einstellungen + +Über das **Zahnrad-Symbol** (⚙️) erreichen Sie: + +### Metronom-Einstellungen +- **Modus**: Automatisch / Manuell +- **Geschwindigkeit**: BPM-Wert (bei Manuell) +- **Sound**: Beep / Klick +- **Ziel-Fehlerrate**: Anpassungsschwelle + +### Anzeige-Einstellungen +- **Geschwindigkeits-Anzeige**: ZPM / WPM +- **Theme**: Hell / Dunkel (auch über 🌙-Symbol) + +--- + +## 🆘 Probleme & Lösungen + +### Text erscheint nicht beim Tippen + +**Lösung**: +1. Klicken Sie irgendwo ins Browserfenster +2. Stellen Sie sicher, dass kein Eingabefeld aktiv ist +3. Aktualisieren Sie die Seite (F5) + +### Cursor springt beim Scrollen + +**Normal!** Das ist gewollt - bei der nächsten Taste springt er zurück zur richtigen Position. + +### Metronom hört nicht auf + +**Lösung**: Klicken Sie auf das 🔊-Symbol zum Stummschalten oder ⏸️ zum Pausieren. + +### Statistiken zeigen seltsame Werte + +**Mögliche Ursachen**: +- Zeit läuft noch (keine Pause gemacht) +- Viele Korrekturen (erhöhen Tastaturanschläge) +- **Normal**: Bei wenigen Zeichen sind die Werte schwankend + +### Seite lädt nicht / Fehler + +**Lösung**: +1. Browser-Cache leeren (Strg+F5) +2. Cookies aktivieren +3. JavaScript aktivieren (erforderlich) +4. Anderen Browser testen + +--- + +## 📱 Tastatur-Layout + +### Deutsche QWERTZ-Tastatur (Standard) + +``` +` 1 2 3 4 5 6 7 8 9 0 ß ´ + Q W E R T Z U I O P Ü + + A S D F G H J K L Ö Ä # + Y X C V B N M , . - +``` + +**Finger-Zuordnung**: +- **Kleine Finger**: Q, A, Y, Ö, P, Ü, -, Ä +- **Ringfinger**: W, S, X, L, O, . +- **Mittelfinger**: E, D, C, K, I, , +- **Zeigefinger**: R, F, V, G, T, B, U, J, M, H, Z, N + +**Grundstellung**: A S D F (links) - J K L Ö (rechts) + +--- + +## 🎖️ Erfolgs-Tipps + +### 🥉 Anfänger (< 100 ZPM) +- Fokus auf Genauigkeit (95%+) +- ErrorLock aktiviert +- Langsames Metronom +- 15 Minuten täglich + +### 🥈 Fortgeschritten (100-200 ZPM) +- Balance zwischen Geschwindigkeit und Genauigkeit +- ErrorLock nach Bedarf +- Adaptives Metronom +- Schwierige Lektionen wiederholen + +### 🥇 Experte (> 200 ZPM) +- Geschwindigkeit maximieren bei 95%+ Genauigkeit +- ErrorLock aus +- Schnelles Metronom +- Eigene Texte üben + +--- + +## 📞 Weitere Hilfe + +- 📖 **Projekt-Dokumentation**: Siehe README.md +- 🐛 **Bug melden**: GitHub Issues +- 💡 **Feature-Vorschlag**: GitHub Discussions +- 📧 **Support**: Siehe README für Kontakt + +--- + +## 🎓 Abschließende Worte + +**Zehnfingerschreiben ist eine Investition!** + +- ⏱️ **Zeit sparen**: Dauert 2-4 Wochen zu lernen +- 💪 **Lifetime Skill**: Nutzen Sie es Jahrzehnte lang +- 🚀 **Produktivität**: Bis zu 3x schneller tippen +- 🧠 **Weniger Ermüdung**: Ergonomischer für Ihre Hände + +**Viel Erfolg beim Training!** 💪 + +--- + +*Typewriter Trainer v1.2 - Mit ❤️ entwickelt für effektives Tipptraining* diff --git a/app.py b/app.py index f0f20cc..4c20675 100644 --- a/app.py +++ b/app.py @@ -838,6 +838,31 @@ def export_statistics_json() -> Response: logger.error(f"Fehler beim JSON-Export: {e}", exc_info=True) return jsonify({'error': 'Fehler beim Export'}), 500 +@app.route('/hilfe') +def hilfe(): + """Online-Hilfe anzeigen""" + try: + import markdown + + with open('HILFE.md', 'r', encoding='utf-8') as f: + hilfe_content = f.read() + + # Konvertiere Markdown zu HTML + hilfe_html = markdown.markdown( + hilfe_content, + extensions=['tables', 'fenced_code', 'nl2br'] + ) + + return render_template('hilfe.html', hilfe_html=hilfe_html) + except ImportError: + logger.warning("Markdown-Modul nicht installiert, verwende Plain-Text-Anzeige") + with open('HILFE.md', 'r', encoding='utf-8') as f: + hilfe_content = f.read() + return render_template('hilfe.html', hilfe_html=f"
{hilfe_content}
") + except Exception as e: + logger.error(f"Fehler beim Laden der Hilfe: {e}") + return render_template('hilfe.html', hilfe_html="

Hilfe konnte nicht geladen werden.

") + @app.route('/settings') def settings(): """Einstellungsseite""" diff --git a/templates/index.html b/templates/index.html index 7b83c1d..1500155 100644 --- a/templates/index.html +++ b/templates/index.html @@ -45,12 +45,12 @@ - +