Implement vocab course and grammar exercise features in backend and frontend

- Added new course management functionalities in VocabController, including creating, updating, and deleting courses and lessons.
- Implemented enrollment and progress tracking for courses, along with grammar exercise creation and management.
- Updated database schema to include tables for courses, lessons, enrollments, and grammar exercises.
- Enhanced frontend with new routes and views for course listing and details, including internationalization support for course-related texts.
- Improved user experience by adding navigation to courses from the main vocab trainer view.
This commit is contained in:
Torsten Schulz (local)
2026-01-19 10:58:53 +01:00
parent 9553cc811a
commit b6a4607e60
28 changed files with 3629 additions and 0 deletions

View File

@@ -0,0 +1,306 @@
# Bisaya (Cebuano) 4-Wochen-Kurs - Vollständige Struktur
## Kurs-Übersicht
**Titel:** Bisaya für Familien - Schnellstart in 4 Wochen
**Ziel:** In 4 Wochen alltagstauglich Bisaya sprechen können
**Zeitaufwand:** ~30-40 Minuten pro Tag
**Schwierigkeit:** Anfänger (Level 1)
## Lernziele & System
### Zeitvorgaben pro Lektionstyp:
- **Vokabeln:** 20-25 Minuten pro Tag
- **Konversation:** 15-20 Minuten pro Tag
- **Grammatik:** 20-25 Minuten pro Tag
- **Wiederholung:** 30 Minuten pro Tag
- **Tests:** 15-20 Minuten
### Zielpunktzahlen:
- **Vokabeln:** 85% zum Abschluss (sonst Wiederholung erforderlich)
- **Konversation:** 80% zum Abschluss
- **Grammatik:** 75% zum Abschluss
- **Tests:** 80% zum Abschluss
### Wiederholungslogik:
- Lektionen mit `requiresReview: true` müssen wiederholt werden, wenn das Ziel nicht erreicht wird
- Vokabel-Lektionen haben standardmäßig Wiederholung aktiviert
- Konversations-Lektionen können ohne Wiederholung abgeschlossen werden
## Woche 1: Grundlagen & Aussprache
### Tag 1 (35 Min)
1. **Begrüßungen & Höflichkeit** (15 Min, 80%, conversation)
- Kumusta? Wie geht's?
- Maayo Gut
- Salamat Danke
- Palihug Bitte
- Kulturell: Philippiner schätzen Höflichkeit sehr. Lächeln ist wichtig!
2. **Überlebenssätze - Teil 1** (20 Min, 85%, vocab, Wiederholung)
- Die 10 wichtigsten Sätze für den Alltag
- Wala ko kasabot Ich verstehe nicht
- Hinay-hinay lang Bitte langsam
- Asa ang …? Wo ist …?
### Tag 2 (35 Min)
3. **Familienwörter** (20 Min, 85%, vocab, Wiederholung)
- Mama / Nanay Mutter
- Papa / Tatay Vater
- Kuya älterer Bruder
- Ate ältere Schwester
- Lola / Lolo Oma / Opa
- Kulturell: Kuya und Ate werden auch für Nicht-Verwandte verwendet!
4. **Familien-Gespräche** (15 Min, 80%, conversation)
- Einfache Gespräche mit Familienmitgliedern
- Kumusta mo? Wie geht es dir?
### Tag 3 (35 Min)
5. **Gefühle & Zuneigung** (15 Min, 80%, conversation)
- Mingaw ko nimo Ich vermisse dich
- Nalipay ko nga makita ka Ich freue mich, dich zu sehen
- Ganahan ko nimo Ich mag dich
- Palangga taka Ich hab dich lieb ❤️
- Kulturell: Palangga taka ist wärmer als "I love you"!
6. **Überlebenssätze - Teil 2** (20 Min, 85%, vocab, Wiederholung)
- Weitere wichtige Alltagssätze
- Unsa ni? Was ist das?
- Oo / Dili Ja / Nein
### Tag 4 (35 Min)
7. **Essen & Fürsorge** (15 Min, 80%, conversation)
- Nikaon ka? Hast du schon gegessen?
- Kaon ta Lass uns essen
- Lami Lecker
- Kulturell: Essen = Liebe! "Nikaon na ka?" ist sehr fürsorglich.
8. **Essen & Trinken** (20 Min, 85%, vocab, Wiederholung)
- Wichtige Wörter rund ums Essen
### Tag 5 (45 Min)
9. **Woche 1 - Wiederholung** (30 Min, 80%, review)
- Wiederhole alle Inhalte der ersten Woche
10. **Woche 1 - Vokabeltest** (15 Min, 80%, vocab, Wiederholung)
- Teste dein Wissen aus Woche 1
## Woche 2: Alltag & Familie
### Tag 6 (35 Min)
11. **Alltagsgespräche - Teil 1** (15 Min, 80%, conversation)
- Kumusta ang imong adlaw? Wie war dein Tag?
- Unsa imong ginabuhat? Was machst du?
12. **Haus & Familie** (20 Min, 85%, vocab, Wiederholung)
- Balay Haus
- Kwarto Zimmer
- Kusina Küche
- Pamilya Familie
### Tag 7 (35 Min)
13. **Alltagsgespräche - Teil 2** (15 Min, 80%, conversation)
- Asa ka padulong? Wohin gehst du?
- Unsa imong plano? Was ist dein Plan?
14. **Ort & Richtung** (20 Min, 85%, vocab, Wiederholung)
- Asa Wo
- dinhi hier
- didto dort
- padulong gehen zu
### Tag 8 (45 Min)
15. **Zeitformen - Grundlagen** (25 Min, 75%, grammar, Wiederholung)
- Ni-kaon ko → Ich habe gegessen
- Mo-kaon ko → Ich werde essen
- Kulturell: Cebuano hat keine komplexen Zeiten wie Deutsch!
16. **Zeit & Datum** (20 Min, 85%, vocab, Wiederholung)
- Karon jetzt
- ugma morgen
- gahapon gestern
- karon adlaw heute
### Tag 9 (40 Min)
17. **Einkaufen & Preise** (15 Min, 80%, conversation)
- Tagpila ni? Wie viel kostet das?
- Pwede barato? Kann es billiger sein?
- Kulturell: Handeln ist in den Philippinen üblich!
18. **Zahlen & Preise** (25 Min, 85%, vocab, Wiederholung)
- Zahlen 1-100
- Preise und Mengen
### Tag 10 (45 Min)
19. **Woche 2 - Wiederholung** (30 Min, 80%, review)
- Wiederhole alle Inhalte der zweiten Woche
20. **Woche 2 - Vokabeltest** (15 Min, 80%, vocab, Wiederholung)
- Teste dein Wissen aus Woche 2
## Woche 3: Vertiefung
### Tag 11 (35 Min)
21. **Gefühle & Emotionen** (15 Min, 80%, conversation)
- Nalipay glücklich
- nasubo traurig
- nahadlok ängstlich
22. **Gefühle & Emotionen** (20 Min, 85%, vocab, Wiederholung)
- Wörter für verschiedene Gefühle
### Tag 12 (35 Min)
23. **Gesundheit & Wohlbefinden** (15 Min, 80%, conversation)
- Sakit Schmerz/Krankheit
- maayo gut
- tambal Medizin
- doktor Arzt
24. **Körper & Gesundheit** (20 Min, 85%, vocab, Wiederholung)
- Wörter rund um den Körper
### Tag 13 (35 Min)
25. **Höflichkeitsformen** (20 Min, 75%, grammar, Wiederholung)
- Palihug Bitte
- Pwede Kann ich?
- Tabang Hilfe
- Kulturell: Höflichkeit ist extrem wichtig!
26. **Bitten & Fragen** (15 Min, 80%, conversation)
- Wie man höflich fragt und bittet
### Tag 14 (35 Min)
27. **Kinder & Familie** (15 Min, 80%, conversation)
- Gespräche mit und über Kinder
- Kulturell: Kinder sind sehr wichtig!
28. **Kinder & Spiel** (20 Min, 85%, vocab, Wiederholung)
- Wörter für Kinder und Spielsachen
### Tag 15 (45 Min)
29. **Woche 3 - Wiederholung** (30 Min, 80%, review)
- Wiederhole alle Inhalte der dritten Woche
30. **Woche 3 - Vokabeltest** (15 Min, 80%, vocab, Wiederholung)
- Teste dein Wissen aus Woche 3
## Woche 4: Freies Sprechen
### Tag 16 (45 Min)
31. **Freies Gespräch - Thema 1** (20 Min, 75%, conversation)
- Übe freies Sprechen zu verschiedenen Themen
- Kulturell: Fehler sind okay! Philippiner schätzen das Bemühen.
32. **Wiederholung - Woche 1 & 2** (25 Min, 85%, vocab, Wiederholung)
- Wiederhole wichtige Vokabeln
### Tag 17 (45 Min)
33. **Freies Gespräch - Thema 2** (20 Min, 75%, conversation)
- Weitere Übung im freien Sprechen
34. **Wiederholung - Woche 3** (25 Min, 85%, vocab, Wiederholung)
- Wiederhole wichtige Vokabeln aus Woche 3
### Tag 18 (55 Min)
35. **Komplexere Gespräche** (25 Min, 75%, conversation)
- Längere Gespräche zu verschiedenen Themen
- Kulturell: Je mehr du sprichst, desto besser wirst du!
36. **Gesamtwiederholung** (30 Min, 80%, review)
- Wiederhole alle wichtigen Inhalte
### Tag 19 (45 Min)
37. **Praktische Übung** (25 Min, 75%, conversation)
- Simuliere echte Gesprächssituationen
38. **Abschlusstest - Vokabeln** (20 Min, 80%, vocab, Wiederholung)
- Finaler Vokabeltest über den gesamten Kurs
### Tag 20 (45 Min)
39. **Abschlussprüfung** (30 Min, 80%, review)
- Finale Prüfung über alle Kursinhalte
- Kulturell: Gratulation zum Abschluss!
40. **Kulturelle Tipps & Tricks** (15 Min, 0%, culture)
- Wichtige kulturelle Hinweise für den Alltag
- Kulturelles Verständnis ist genauso wichtig wie die Sprache!
## Kurs-Statistik
- **Gesamte Lektionen:** 40
- **Vokabel-Lektionen:** 15 (mit Wiederholung)
- **Konversations-Lektionen:** 15
- **Grammatik-Lektionen:** 2
- **Wiederholungs-Lektionen:** 6
- **Kultur-Lektionen:** 1
- **Test-Lektionen:** 1
- **Durchschnittliche Zeit pro Tag:** ~38 Minuten
- **Gesamtzeit:** ~15 Stunden über 4 Wochen
## Verwendung des Scripts
```bash
# 1. Erstelle zuerst die Sprache "Cebuano" oder "Bisaya" im System
# 2. Notiere dir die languageId und deine ownerHashedId
# 3. Führe das Script aus:
node backend/scripts/create-bisaya-course.js <languageId> <ownerHashedId>
# Beispiel:
node backend/scripts/create-bisaya-course.js 1 abc123def456
```
Das Script erstellt automatisch:
- Den Kurs mit allen 40 Lektionen
- Wochen- und Tagesstruktur
- Zeitvorgaben und Zielpunktzahlen
- Wiederholungslogik
- Kulturelle Notizen
## Nächste Schritte nach Kurs-Erstellung
1. **Vokabeln hinzufügen:**
- Erstelle Kapitel für jede Vokabel-Lektion
- Füge die entsprechenden Vokabeln hinzu
- Verknüpfe die Kapitel mit den Lektionen
2. **Grammatik-Übungen erstellen:**
- Erstelle Grammatik-Übungen für Lektion 15 und 25
- Nutze verschiedene Übungstypen (transformation, multiple_choice)
3. **Audio hinzufügen:**
- Füge Audio-URLs zu Konversations-Lektionen hinzu
- Verlinke zu YouTube-Videos oder eigenen Audio-Dateien
4. **Kurs teilen:**
- Nutze den Share-Code, um den Kurs mit anderen zu teilen
- Oder mache den Kurs öffentlich
## Lernstrategie
### Täglich:
1. **Vokabeln lernen** (20-25 Min)
- Nutze die Vokabeltrainer-Funktion
- Wiederhole bis 85% erreicht sind
2. **Konversation üben** (15-20 Min)
- Höre Audio
- Sprich laut nach
- Übe mit Muttersprachlern (HelloTalk, Tandem)
3. **Grammatik verstehen** (wenn vorhanden, 20-25 Min)
- Mache die Grammatik-Übungen
- Verstehe die Regeln
### Wöchentlich:
- Wiederholungslektion am Ende jeder Woche
- Vokabeltest am Ende jeder Woche
- Prüfe deinen Fortschritt
### Am Ende:
- Abschlussprüfung
- Kulturelle Tipps lesen
- Weiter üben mit Muttersprachlern!
Viel Erfolg beim Lernen! 🇵🇭

View File

@@ -0,0 +1,186 @@
# Bisaya (Cebuano) Sprachkurs - Beispiel-Struktur
Dieses Dokument zeigt, wie du einen strukturierten Sprachkurs wie den beschriebenen Bisaya-Kurs im System erstellst.
## Kurs-Übersicht
**Titel:** Bisaya für Familien - Schnellstart in 30 Tagen
**Sprache:** Cebuano (Bisaya)
**Schwierigkeit:** 1-2
**Zielgruppe:** Familienmitglieder, die schnell alltagstauglich sprechen wollen
## Kursstruktur
### Woche 1: Grundlagen & Aussprache
#### Tag 1: Begrüßungen & Höflichkeit
- **Lektionstyp:** conversation
- **Inhalt:**
- Kumusta? Wie geht's?
- Maayo Gut
- Salamat Danke
- Palihug Bitte
- **Kulturelle Notizen:** Philippiner schätzen Höflichkeit sehr. Lächeln ist wichtig!
#### Tag 2: Familienwörter
- **Lektionstyp:** vocab
- **Inhalt:**
- Mama / Nanay Mutter
- Papa / Tatay Vater
- Kuya älterer Bruder
- Ate ältere Schwester
- Lola / Lolo Oma / Opa
- **Kulturelle Notizen:** Kuya und Ate werden auch für Nicht-Verwandte verwendet sehr respektvoll!
#### Tag 3: Überlebenssätze
- **Lektionstyp:** conversation
- **Inhalt:**
- Wala ko kasabot Ich verstehe nicht
- Hinay-hinay lang Bitte langsam
- Asa ang …? Wo ist …?
- Unsa ni? Was ist das?
#### Tag 4: Gefühle & Zuneigung
- **Lektionstyp:** conversation
- **Inhalt:**
- Mingaw ko nimo Ich vermisse dich
- Nalipay ko nga makita ka Ich freue mich, dich zu sehen
- Ganahan ko nimo Ich mag dich
- Palangga taka Ich hab dich lieb ❤️
- **Kulturelle Notizen:** Palangga taka ist wärmer als "I love you" im Familienkontext.
#### Tag 5: Essen & Fürsorge
- **Lektionstyp:** conversation
- **Inhalt:**
- Nikaon ka? Hast du schon gegessen?
- Kaon ta Lass uns essen
- Lami Lecker
- **Kulturelle Notizen:** Essen = Liebe! "Nikaon na ka?" ist sehr fürsorglich.
### Woche 2: Alltag & Familie
#### Tag 6: Alltagsgespräche
- **Lektionstyp:** conversation
- **Inhalt:**
- Kumusta ang imong adlaw? Wie war dein Tag?
- Unsa imong ginabuhat? Was machst du?
- Asa ka padulong? Wohin gehst du?
#### Tag 7: Haus & Familie
- **Lektionstyp:** vocab
- **Inhalt:**
- Balay Haus
- Kwarto Zimmer
- Kusina Küche
- Pamilya Familie
### Woche 3: Vertiefung
#### Tag 8-14: Praktische Gespräche
- Verschiedene Alltagssituationen
- Grammatik-Minimal (nur das Nötigste)
- Mehr Familienkonversationen
### Woche 4: Freies Sprechen
#### Tag 15-21: Übung & Anwendung
- Freie Gespräche
- Fehler zulassen
- Viel lachen 😄
## Grammatik-Übungen
### Übung 1: Zeitformen (Woche 2)
- **Typ:** transformation
- **Frage:** "Ni-kaon ko" bedeutet?
- **Antwort:** "Ich habe gegessen"
- **Erklärung:** Cebuano hat keine komplexen Zeiten wie Deutsch. Zeit wird mit Präfixen ausgedrückt.
### Übung 2: Höflichkeit (Woche 1)
- **Typ:** multiple_choice
- **Frage:** Wie sagt man "Bitte langsam"?
- **Antworten:**
- Hinay-hinay lang ✓
- Palihug
- Salamat
## Praktische Tipps für Kurs-Erstellung
1. **Strukturierung:**
- Verwende `weekNumber` und `dayNumber` für klare Struktur
- Setze `lessonType` auf: `vocab`, `grammar`, `conversation`, `culture`, `review`
2. **Kulturelle Notizen:**
- Nutze `culturalNotes` für wichtige kulturelle Hinweise
- Diese helfen Lernenden, die Sprache im Kontext zu verstehen
3. **Audio:**
- Füge `audioUrl` hinzu für Aussprache-Übungen
- Verlinke zu YouTube-Videos oder eigenen Audio-Dateien
4. **Grammatik-Übungen:**
- Erstelle Grammatik-Übungen für wichtige Konzepte
- Nutze verschiedene Übungstypen (gap_fill, multiple_choice, transformation)
5. **Fortschritt:**
- Das System verfolgt automatisch den Fortschritt
- Lernende sehen, welche Lektionen sie abgeschlossen haben
## Beispiel-API-Aufrufe
### Kurs erstellen:
```javascript
POST /api/vocab/courses
{
"title": "Bisaya für Familien - Schnellstart",
"description": "Lerne Bisaya schnell und praktisch für den Familienalltag",
"languageId": 1,
"difficultyLevel": 1,
"isPublic": true
}
```
### Lektion hinzufügen:
```javascript
POST /api/vocab/courses/{courseId}/lessons
{
"lessonNumber": 1,
"title": "Begrüßungen & Höflichkeit",
"description": "Lerne die wichtigsten Begrüßungen",
"weekNumber": 1,
"dayNumber": 1,
"lessonType": "conversation",
"culturalNotes": "Philippiner schätzen Höflichkeit sehr. Lächeln ist wichtig!",
"chapterId": null // Optional, wenn du Vokabeln aus einem Kapitel verwenden willst
}
```
### Grammatik-Übung hinzufügen:
```javascript
POST /api/vocab/lessons/{lessonId}/grammar-exercises
{
"exerciseTypeId": 4, // transformation
"exerciseNumber": 1,
"title": "Zeitformen verstehen",
"instruction": "Was bedeutet 'Ni-kaon ko'?",
"questionData": {
"text": "Ni-kaon ko",
"type": "transformation"
},
"answerData": {
"correct": "Ich habe gegessen",
"alternatives": ["I ate", "I have eaten"]
},
"explanation": "Cebuano hat keine komplexen Zeiten wie Deutsch. Zeit wird mit Präfixen ausgedrückt."
}
```
## Nächste Schritte
1. Erstelle die Sprache "Cebuano" im Vokabeltrainer
2. Erstelle den Kurs mit der obigen Struktur
3. Füge Lektionen mit Wochen/Tagen hinzu
4. Erstelle Grammatik-Übungen für wichtige Konzepte
5. Teile den Kurs mit anderen (share_code)
Viel Erfolg beim Lernen! 🇵🇭