feat: add planning JSON exchange

This commit is contained in:
2026-08-17 02:04:29 +02:00
parent 50f3b2d6a9
commit 8efeb68e93
8 changed files with 797 additions and 2 deletions
@@ -0,0 +1,90 @@
# LehrerApp-Austauschformat: einzelne Stundenplanung
Dieses Dokument beschreibt Version 1 des JSON-Formats `lehrerapp.lesson-planning`.
Es dient zum Austausch genau einer Stunde mit ihrem Verlaufsplan.
## Grundregeln
- Die Datei enthält reines UTF-8-JSON. Beim Import wird auch ein einzelner Markdown-Codeblock akzeptiert.
- Datum: `JJJJ-MM-TT`; Uhrzeit: `HH:MM` oder `HH:MM:SS`.
- Interne IDs werden nicht übertragen. Der Import legt eine neue Stunde in der aktuell ausgewählten Einheit an.
- `context` ist nur Bearbeitungshilfe und entscheidet nicht über das Importziel.
- Unbekannte zusätzliche Felder werden ignoriert.
## Beispiel
```json
{
"schema": "lehrerapp.lesson-planning",
"version": 1,
"context": {
"group": "8a",
"subject": "Physik",
"gradeLevel": 8,
"unitTitle": "Optik"
},
"lesson": {
"date": "2026-09-08",
"lessonNumber": 3,
"topic": "Reflexionsgesetz",
"startTime": "09:50:00",
"status": "planned",
"homework": "Versuchsprotokoll fertigstellen",
"reflection": null,
"phases": [
{
"name": "Einstieg",
"durationMinutes": 8,
"activity": "Alltagsbeispiele für Reflexion sammeln",
"material": "Spiegel",
"shorthand": "UG",
"alternativePath": null
},
{
"name": "Experiment",
"durationMinutes": 27,
"activity": "Einfalls- und Ausfallswinkel messen",
"material": "Optikbox, AB 03",
"shorthand": "PA",
"alternativePath": null
}
]
}
}
```
## Felder
### Dokument
- `schema` (Pflicht): exakt `lehrerapp.lesson-planning`
- `version` (Pflicht): aktuell `1`
- `context` (optional): `group`, `subject`, `gradeLevel`, `unitTitle`
- `lesson` (Pflicht): die neue Stundenplanung
### Stunde
- `date` (Pflicht, Datum)
- `lessonNumber` (optional, Ganzzahl 120 oder `null`)
- `topic` (Pflicht, Text)
- `startTime` (optional, Uhrzeit oder `null`)
- `status` (optional: `planned` oder `conducted`, Standard `planned`)
- `homework`, `reflection` (optional, Text oder `null`)
- `phases` (Liste, darf leer sein)
### Phase
- `name`: Bezeichnung, z. B. `Einstieg` oder `Sicherung`
- `durationMinutes`: Ganzzahl 0180
- `activity`: Lehrer-/Schüler-Tätigkeit
- `material`: benötigte Medien und Materialien
- `shorthand`: Kurzsymbol oder Sozialform
- `alternativePath` (optional): Name eines alternativen Verlaufs. Ein vorhandener gleichnamiger Ablauf wird wiederverwendet, andernfalls neu angelegt.
## Hinweise für KI-Bearbeitung
- JSON-Struktur, `schema` und `version` unverändert lassen.
- Keine IDs ergänzen.
- Das Datum muss gesetzt sein; die Stundennummer darf fehlen.
- Die Summe der `durationMinutes` sollte zur verfügbaren Unterrichtszeit passen.