← Zur Doku-Übersicht → Trainer/Verein

🔧 Technische Dokumentation

Zielgruppe: Admin / Entwickler / technische Übergabe.
Architektur: bewusst statisch (kein Backend), Inhalte per JSON, hostingfähig auf normalem Webspace.

Inhalt

1. Architektur & Prinzipien 2. Ordner- & Dateistruktur 3. Multi-Tenant-System 4. Datenformate 5. Prüfungsmodus (technisch) 6. Wartung & Erweiterung 7. Fehlersuche (Quick-Checks)

1) Architektur & Prinzipien Soll/Ist stabil

Backend
Keins. Reines Frontend (HTML/CSS/JS).
Datenhaltung
JSON-Dateien im Webspace (per FTP editierbar).
Hosting
Standard-Webspace (kein Node/PHP notwendig).
Ziel
Robust, wartbar, nachvollziehbar – ohne unnötige Komplexität.
Wichtig: Die Plattform ist absichtlich nicht „sicherheitskritisch“ ausgelegt (kein Benutzer-Management, keine Server-Sessions). Das Login dient primär zur Rollen-/Zugriffssteuerung im UI-Kontext.

2) Ordner- & Dateistruktur

Empfohlener Projekt-Root (Beispiel): /media/lernplattform_taekwondo/

/media/lernplattform_taekwondo/
├─ index.html                (Start / Auswahl / Login)
├─ lernen.html               (Lernmodus)
├─ pruefung.html             (Prüfungsmodus inkl. Auswertung/Export)
├─ assets/
│  ├─ css/
│  ├─ js/
│  └─ img/
├─ tenants/
│  ├─ tenants.json           (Tenant-Index)
│  └─ <tenant-id>/
│     ├─ tenant.json         (Tenant-Konfiguration)
│     ├─ inhalte.json        (Lerninhalte)
│     ├─ pruefungen.json     (Prüfungsdefinitionen)
│     └─ branding.json       (optional: Farben/Logo, falls getrennt)
└─ docs/
   ├─ index.html
   ├─ technisch.html
   └─ trainer-verein.html

Hinweis: Je nach Stand können tenant-spezifische Dateien leicht variieren (z. B. Branding integriert in tenant.json). Das Grundprinzip bleibt: Tenant-Daten liegen unter /tenants/<tenant-id>/.

3) Multi-Tenant-System

3.1 Tenant-Index: /tenants/tenants.json

Diese Datei enthält die Liste der verfügbaren Tenants. Jede App-Instanz lädt daraus die Auswahl.

[
  {
    "id": "tkd-demo",
    "name": "Taekwondo Demo Verein",
    "path": "tenants/tkd-demo/"
  }
]

3.2 Tenant-Konfiguration: /tenants/<tenant-id>/tenant.json

Tenant-spezifische Konfiguration (Branding, Login, Feature-Schalter, Version etc.).

{
  "id": "tkd-demo",
  "name": "Taekwondo Demo Verein",
  "version": "1.0",
  "brand": {
    "logo": "assets/img/logo.png",
    "accent": "#7fb0ff"
  },
  "auth": {
    "mode": "simple",
    "password": "DEMO-1234"
  }
}
Pfad-Regel: Alle Pfade in JSON sollten so gewählt sein, dass sie im Frontend sauber auflösbar sind. Wenn du in der Praxis merkst, dass Logos/Assets nicht laden, ist zu 90% der Pfad das Problem.

3.3 Quick-Tests (Browser)

Beispiele aus eurem Setup:

Tenant-Index:
https://www.vfl-jesteburg.de/media/lernplattform_taekwondo/tenants/tenants.json

Tenant-Config:
https://www.vfl-jesteburg.de/media/lernplattform_taekwondo/tenants/tkd-demo/tenant.json

Erwartung: Beide URLs liefern im Browser JSON (ohne Download-Fehler / 404).

4) Datenformate

4.1 inhalte.json (Lerninhalte)

Enthält Inhalte wie Techniken, Theorie, Formen etc. Struktur kann je nach Tenant variieren, Prinzip: Kategorien + Items.

4.2 pruefungen.json (Prüfungsdefinitionen)

Definiert Prüfungen (Kup/Dan), Blöcke/Kriterien, ggf. Gewichtungen. Wichtig ist Konsistenz, damit das UI korrekt rendern kann.

4.3 Exportdaten

Export erfolgt typischerweise als JSON (und ggf. CSV). Inhaltlich umfasst das:

Design-Prinzip: Export ist „Source of Truth“ für Dokumentation/Archivierung. Die Plattform speichert nicht serverseitig – deshalb ist Export/Download der saubere Weg.

5) Prüfungsmodus (technisch)

5.1 Grundablauf

  1. Prüfung wählen (aus Tenant-Daten)
  2. Bewerten (UI sammelt Bewertungen im Speicher)
  3. Auswerten erzeugt Ergebnisobjekt + berechnet Summen
  4. Export speichert Ergebnis (Download/Datei)

5.2 Wichtige Architekturentscheidung: Kein Auto-Save

Auto-Save wurde bewusst nicht als permanenter Speichermechanismus eingesetzt, weil:

Regel: Prüfungsdaten gelten erst als „gespeichert“, wenn Auswertung/Export ausgeführt wurde.

5.3 Reload-Sicherheit

6) Wartung & Erweiterung

6.1 Neuen Tenant anlegen (Kurzprozess)

  1. Ordner kopieren: /tenants/tkd-demo//tenants/<neu>/
  2. tenant.json anpassen (id, name, ggf. Passwort/Branding)
  3. inhalte.json und pruefungen.json anpassen
  4. In /tenants/tenants.json neuen Eintrag hinzufügen
  5. Browser-Quick-Test: /tenants/<neu>/tenant.json muss laden

6.2 Inhalte/Prüfungen aktualisieren

6.3 Versionsstrategie (leichtgewichtig)

7) Fehlersuche (Quick-Checks)

7.1 404 / Tenant lädt nicht

7.2 Styles fehlen in /docs/

7.3 Login wirkt „kaputt“

Tipp: Wenn irgendwas „komisch“ ist: zuerst die JSON-Dateien direkt im Browser öffnen. Wenn sie dort nicht sauber laden, ist alles weitere nur Symptombekämpfung.

Dokumentation: Technisch • Stand 2026 • Plattform-Stil
Hinweis: Diese Seite beschreibt die Architekturprinzipien und das Zielbild. Tenant-spezifische JSON-Felder können abweichen – das Grundschema bleibt.