Schulungsmanagement (LMS / QM-Modul)

1. Anforderung

Alexium soll ein vollstaendiges Schulungs- und Lernmanagement-System (LMS) abbilden: Kataloge mit Pflicht- und Weiterbildungsschulungen, Mitarbeiter-Zuweisung, Terminplanung (Live + Self-Paced), Praesentationsinhalte (Folien, Video, Text, Bilder), Quizzes zur Lernkontrolle, Pruefungen mit Bestehensgrenze, Zertifikatsausstellung, Audit-Log und Auffrischungszyklen — alles tenantfaehig und QM-konform. Auftrag-Trigger sind Provios Hebammen-Franchise-Compliance sowie interne Mitarbeiterschulung und QM-Audits.

2. Anwendungsfaelle

  • Provio (Hebammen-Franchise): Pflichtfortbildungen mit Nachweis (Hygiene, Notfall, Datenschutz). QM-Audit muss zeigen koennen: “Hebamme X hat am Datum Y Schulung Z bestanden, Auffrischung faellig am …“.
  • Interne Mitarbeiterschulung (Alexium / Tenants): Onboarding neuer Mitarbeiter, jaehrliche DSGVO/Arbeitsschutz-Auffrischungen, Tool-Trainings.
  • QM-Audit (allgemein): Auditor-Sicht auf Compliance-Status — wer hat was wann bestanden, wer ist ueberfaellig, vollstaendige Beweiskette.
  • B2B-Verkauf an Tenants: Schulungsmodul als kostenpflichtiges Add-On (module.training), eigene Lizenzklasse.

3. Was wir schon haben — wiederverwendbare Bausteine

BausteinExistiertEignung fuer LMSBemerkung
CMS-Engine (Pages, Sections, Templates)jasehr hochPraesentations-Inhalte (Folien, Texte, Bilder, Embeds) bauen wir als Pages mit Section-Types
Section-Type industry.course_curriculumdokumentiertdirekt einsetzbarCurriculum-Outline mit Modulen + Lessons + Lock/Unlock; bisher ohne Implementation, “future”
Section-Types media.video_embed, media.audio_player, media.image_full, content.long_form, media.code_blockja (77er-Liste)hochkomplette Praesentations-Bausteine ohne Neuentwicklung
Section-Type interactive.tabs, interactive.faq_accordionjamittelfuer interaktive Lerninhalte
Form-Engine (form, formfield, formsubmission)jamittelFormfeld-Typen text, email, tel, textarea, select, radio, checkbox, date, number, file, consent, dropdownKEIN Quiz/Bewertung/Punkte/Loesungsschluessel; muss erweitert werden
Workflow-Engine (workflow_template, workflow_step)jahochStep-Typen form, document, notification, appointment, authorization, timer, branch, fork, join. Perfekt fuer “Schulung zugewiesen Reminder T-7 Quiz Pruefung Zertifikat-Signatur”. Recurrence-Config bereits in workflow_template.recurrence_config_json Auffrischungszyklen abdeckbar
Step Form / workflow_step_formjamitteltrifft auf Form-Engine-Limit (kein Scoring)
Step Authorization mit Signature-Methods (ees, fes, pdf, paper)jahochZertifikat unterzeichnen lassen
Step Appointment / workflow_step_appointmentjahochLive-Schulungstermine ueber CalDAV; tenant_caldav_config existiert
Step TimerjahochAuffrischungs-Reminder, Deadlines
Document-Engine (workflow_document_template mit html_template + WeasyPrint)jasehr hochZertifikate als HTML-Templates, PDF via WeasyPrintService und PdfGenerator. Placeholder-Parser fuer Variablen vorhanden
SignatureService, OTP-Signatur, FES/EESjahochrechtssichere Zertifikate (falls erforderlich)
Event-Modul (event, event_registration)jamittel/hochhat workflow_template_id, videocall_*, RRULE-Recurrence, Status, Registrations, all_day, timezone — gut fuer Live-Schulungstermine. Aktuell Public-Site-orientiert (Frontend-Listings), aber Datenmodell trifft Schulung
User/Rollen (account, accountrole, role, permission, rolepermission)jahochWer-darf-was, Tenant- und Unit-Skopierung vorhanden
Mediaasset/-variant/-folderjahochFolien-PDFs, Videos, Bilder als Lerninhalt
SMTP-Mailer (SmtpMailer) + Notification-StepjahochEinladungen + Reminder out-of-the-box
auditlog Tabellejahochbestehende Audit-Infrastruktur fuer QM-Beweisfuehrung
License-Unit-Modell (license_unit, tenant_license, unit_type=module)jahochanalog zu module.event/module.flows module.training einfuehren
Videocall-Service (tenant_videocall_config)jamittelLive-Online-Schulung

Kernerkenntnis: Etwa 70 Prozent der Bausteine sind vorhanden. CMS + Workflow + Document + Event tragen das Geruest; nur die LMS-spezifischen Konzepte (Quiz-Scoring, Kurs-Zuweisung, Zertifikat-Lifecycle, Auffrischungszyklus) fehlen.

4. Was fehlt / muss neu gebaut werden

AnforderungStatusAufwand
Schulungs-Katalog (Liste verfuegbarer Schulungen pro Tenant)NEUM — neue Tabelle training_course + UI
Schulungs-Inhalte (Folien/Videos/Text)KONFIGXS — bestehende CMS-Pages + Section-Types reichen, ggf. industry.course_curriculum ausimplementieren
Strukturierung Kurs Modul LektionNEUS — neue Tabellen training_module, training_lesson (oder Page-Hierarchie nutzen)
Mitarbeiter-Zuweisung (welcher Account muss welche Schulung machen)NEUS — training_assignment
Live-TermineKONFIG/ERWEITS — event wiederverwenden, Verknuepfung event.training_course_id ergaenzen
Self-Paced (kein Termin)KONFIGXS — assignment.mode='self_paced' Flag
Quiz mit Single/Multi-Choice + automatischer AuswertungNEU/ERWEITM-L — Form-Engine erweitern: Feldtypen quiz_single, quiz_multi; pro Field correct_answers_json, points; pro Form passing_score, time_limit_seconds, randomize_order. Alternativ eigene Tabelle training_quiz
Freitext-Quizfragen (manuell bewertet)NEUS — wenn Quiz-Engine da, klein
Pruefungen mit BestehensgrenzeNEUM — training_attempt mit score, passed, plus Pruefungs-Sicht (Anti-Cheat siehe unten)
Mehrfache Versuche / Attempt-LimitNEUS — Teil von training_attempt
Zertifikate ausstellenKONFIG/NEUS — workflow_document_template mit HTML + WeasyPrint vorhanden, neuer Trigger “Bei bestanden Dokument generieren ggf. signieren”. Zertifikatsnummer + Hash-Verifizierung als kleine Zusatzlogik
Audit-Log (wer hat wann was bestanden)KONFIGXS — bestehende auditlog + training_attempt reichen
Auffrischungszyklen (jaehrliche Pflichtschulungen)KONFIG/ERWEITS — workflow_template.recurrence_config_json vorhanden + Timer-Step. Plus training_course.recertify_after_months
QM-Reports / Compliance-DashboardNEUM — neue Auswertungs-Views (“Wer ist ueberfaellig?”, “Bestehensquote pro Kurs”, “Audit-Export PDF/CSV”)
Tenant-SkopierungKONFIGXS — analog Forms/Workflows (scope, tenant_id schon Standard)
Lizenz-Unit module.trainingKONFIGXS — Eintrag in license_unit, gated im Code
Anti-Cheat (Random-Reihenfolge, Zeitlimit, kein Zurueck)NEUS — Quiz-Render-Optionen
LMS-Standard-Export (SCORM/xAPI)NEUL — nur falls Anforderung
Sidebar-Eintrag + UI-Bereich “Schulungen”NEUM — Studio-Section analog Events

5. Architektur-Vorschlag

5.1 Grundprinzip — Mischmodell, kein Insel-Modul

Wir bauen kein monolithisches LMS-Modul. Wir komponieren:

  • CMS-Engine Lerninhalt (Pages mit course.*-Section-Types)
  • Workflow-Engine Orchestrierung (Zuweisung, Reminder, Quiz, Pruefung, Zertifikat als Step-Sequenz)
  • Form-Engine erweitert Quiz und Pruefung (neue Field-Typen + Scoring-Layer)
  • Document-Engine Zertifikat-PDFs
  • Event-Modul Live-Termine
  • Neue Schulungs-Tabellen Katalog, Zuweisung, Versuche, Zertifikate (das LMS-Glue)

So bleibt die Engine-Investition produktiv, Theme-Marketplace und Lizenzmodell skalieren mit.

5.2 Datenmodell-Skizze (8 neue Tabellen)

training_course
  id, course_key (uuid), scope, tenant_id
  title, slug, description, image_media_id
  type ('mandatory' | 'optional' | 'certification')
  page_id (verlinkt auf CMS-Page mit Lerninhalt)
  workflow_template_id (orchestriert den Ablauf)
  recertify_after_months (int, NULL = einmalig)
  passing_score (numeric), max_attempts (int)
  status ('draft' | 'published' | 'archived')
  required_license_unit_id -> license_unit
  createdat, updatedat

training_module             -- optional, wenn course_curriculum-Hierarchie gewuenscht
  id, course_id, title, sort_order, page_id (Lektions-Page)

training_assignment         -- wer muss was machen
  id, course_id, account_id (oder unit_id fuer Gruppenzuweisung)
  assigned_at, due_date, mode ('live' | 'self_paced')
  event_id (NULL bei self-paced) -> event
  status ('assigned' | 'in_progress' | 'completed' | 'overdue')
  workflow_instance_id -> workflow_instance

training_quiz               -- optional eigenstaendig, alternativ Form mit Scoring
  id, course_id, title, type ('quiz' | 'exam')
  form_key -> form          (Wiederverwendung Form-Engine)
  passing_score, time_limit_seconds, max_attempts
  randomize_questions, randomize_options
  show_correct_after (bool)

training_quiz_question_meta -- Erweiterung zu formfield (Scoring)
  formfield_id PK -> formfield
  correct_answers_json, points, explanation

training_attempt
  id, assignment_id, quiz_id, account_id
  started_at, completed_at, score, max_score, passed (bool)
  formsubmission_id -> formsubmission
  attempt_number, time_spent_seconds

training_certificate
  id, assignment_id, account_id, course_id
  issued_at, valid_until (recertify-Datum)
  certificate_number (eindeutig, druckbar)
  workflow_document_id -> workflow_document  (das PDF)
  hash (SHA-256 fuer Echtheitspruefung)
  revoked_at, revoke_reason

training_completion_log     -- Audit-Trail QM
  id, assignment_id, account_id, course_id
  event_type ('assigned' | 'started' | 'completed' | 'failed' | 'recertified' | 'certificate_issued' | 'certificate_revoked')
  occurred_at, actor_account_id, payload_json

5.3 License-Unit-Anbindung

Neuer Eintrag in license_unit:

license_unit_key:   module.training
license_unit_label: Schulungs-Modul
unit_type:          module
module_namespace:   training
has_cms_sections:   true     (fuer course.*-Section-Types)
pricing_model:      subscription | one_time

Section-Types die nur mit Modul aktiv sind: industry.course_curriculum, ggf. neue course.lesson_player, course.quiz_inline, course.progress.

5.4 Studio-UI

  • Sidebar-Eintrag “Schulungen” (gated by module.training)
  • Listenansicht Kurse Detail: Tabs “Inhalt | Termine | Teilnehmer | Auswertung”
  • Quiz-Editor (Erweiterung Form-Editor um Scoring-Spalte)
  • Zertifikats-Vorlagen-Editor (bestehender workflow_document_template-Editor)
  • Compliance-Dashboard (Tenant-Admin-Sicht)
  • Mitarbeiter-Selbstsicht: “Meine Schulungen” mit Status + naechster Faelligkeit

5.5 Workflow-Beispiel “Pflichtschulung Datenschutz”

[Start]
  -> [Notification: Einladung per Mail]
  -> [Timer: T-7 Reminder]
  -> [Form: Lerninhalt-Bestaetigung "habe gelesen"]
  -> [Form (Quiz-erweitert): Quiz, 10 Fragen, 70% Bestehen]
  -> [Branch: passed?]
       Ja  -> [Document: Zertifikat generieren]
            -> [Authorization: optional Selbstsignatur]
            -> [Timer: 12 Monate -> reassign]
            -> [End: completed]
       Nein -> [Notification: nicht bestanden, Versuch x von 3]
            -> [zurueck zu Form Quiz, falls Versuche uebrig]

6. Sprint-Aufteilung

MVP — Phase 1 (Sprint A, ~1 Woche)

Ziel: Tenant-Admin kann Pflichtschulung zuweisen, Mitarbeiter klickt durch Inhalt, beantwortet Quiz, sieht Bestanden-Status. Kein Zertifikat, kein Termin.

  • training_course, training_assignment, training_attempt (XS)
  • Quiz-Erweiterung Form-Engine (M): neuer Field-Typ quiz_single/quiz_multi, correct_answers_json, points, passing_score auf Form
  • Studio-UI Listen + Detail (M)
  • License-Unit module.training (XS)
  • Mitarbeiter-Selbstsicht “Meine Schulungen” (S)

Schaetzung gesamt: M-L (5-8 Personentage)

Phase 2 (Sprint B, ~1 Woche)

Ziel: Zertifikate + Audit + Auffrischung.

  • training_certificate mit PDF via workflow_document_template (S)
  • training_completion_log + QM-Report (S)
  • Recertify-Zyklus (Timer-Step + recertify_after_months) (S)
  • Zertifikatsnummer/Hash + oeffentliche Verifizierungsseite (S)

Schaetzung gesamt: M (4-6 Personentage)

Phase 3 (Sprint C, ~1 Woche)

Ziel: Live-Termine + Anti-Cheat + Compliance-Dashboard.

  • Event-Verknuepfung event.training_course_id + Buchungs-Flow (S)
  • Anti-Cheat (Random-Order, Time-Limit, no-back) (S)
  • Compliance-Dashboard mit Filtern + CSV-Export (M)
  • Bulk-Zuweisung an Unit/Rolle (S)

Schaetzung gesamt: M (4-6 Personentage)

Phase 4 (optional)

  • Zertifikatssignatur via FES/EES (S)
  • SCORM/xAPI-Export (L)
  • Coursemarketplace / Tenant-uebergreifender Kurs-Katalog (L)
  • KI-gestuetzte Quizfragen-Generierung (L)

Gesamt-MVP-bis-produktiv: ca. 3 Wochen (Sprint A + B + C).

7. Risiken / offene Fragen

  • Rechtliche Anerkennung von Zertifikaten: Hebammen-Pflichtfortbildung — sind hier akkreditierte Anbieter erforderlich? Pruefen mit Provio. Falls ja, faellt das nicht in unseren Scope, wir liefern nur den internen Nachweis.
  • Datenschutz: Schulungsergebnisse sind Personaldaten. Sichtbarkeitsregeln definieren: Mitarbeiter sieht eigene Ergebnisse, Tenant-Admin sieht Tenant-weit, Unit-Admin nur Unit-Mitarbeiter. Sysadmin niemals ohne Begruendung. Loeschkonzept noetig (DSGVO Art 17 vs. QM-Aufbewahrungspflicht — Konflikt!).
  • Mehrsprachigkeit: aktuell deutsch-only. Falls Tenants mit anderen Sprachen kommen, Kurse + Quizfragen i18n-faehig machen (title_i18n_json).
  • Anti-Cheat: Ohne Proctoring (Webcam-Ueberwachung) bleibt jede Online-Pruefung umgehbar. Klar kommunizieren: “interner Lernnachweis”, nicht “pruefungsaequivalent zu Praesenz”.
  • Performance bei grossen Kursen: Video-Hosting? Externe CDN? Selbst-Hosting auf MediaAssets-Storage?
  • SCORM-Kompatibilitaet: Wenn Tenants existierende Lerninhalte aus Moodle/TalentLMS importieren wollen — grosser Bauklotz. Bewusste Entscheidung: erstmal nicht.
  • Abrechnungsmodell module.training: Pro Tenant, pro Kurs, pro Mitarbeiter, pro Pruefung? Klaeren mit Pricing.
  • Konflikt Quiz vs. Form-Engine: Erweitern wir die Form-Engine (sauber, aber tangiert generischen Kontaktformular-Code) oder bauen wir eine zweite Repository-Schiene quiz_*? Empfehlung: erweitern, weil Submission/Validation/Anti-Spam wiederverwendet werden.

8. Vergleich Wettbewerb

Moodle (OSS) ist der Standard fuer akademisches LMS — extrem maechtig, aber schwergewichtig, eigene Installation, Setup-Aufwand hoch, UI veraltet. Deckt SCORM, Forenbasis, Gradebook, viele Quiz-Typen. Fuer KMU-QM-Compliance Overkill.

TalentLMS / iSpring / Trakstar Learn sind moderne SaaS-LMS — schoene UI, Mitarbeiterzuweisung, Reminders, Zertifikate, sehr aehnlich zu unserem MVP. Preis ab ca. 89-200 EUR/Monat fuer 40-100 User.

Was wir abdecken muessen, um konkurrenzfaehig zu sein: Kurse mit Multimedia-Inhalt, Quizzes mit Auswertung, Zertifikate, Auffrischungszyklen, Compliance-Reports, Mitarbeiter-Selbstsicht. All das ist im 3-Wochen-Plan.

Was wir bewusst weglassen koennen: SCORM-Import (typisch ungenutzt bei KMU-QM-Use-Case), Foren/Diskussionen, Gamification/Badges, KI-Tutoring, Webcam-Proctoring. Falls ein Tenant das braucht, kann ein bestehendes LMS via SSO-Verlinkung daneben laufen.

Unser USP gegenueber dedizierten LMS:

  1. Voll integriert in CRM, Workflow, Tenant-Verwaltung — kein doppeltes User-Management.
  2. Zertifikate als signierbare Dokumente mit unserer Signature-Engine (FES/EES).
  3. QM-Audit-Sicht auf Compliance ohne Export-Reimport in dritte Tools.
  4. Multi-Tenant ab Tag 1 — Hebammen-Franchise mit 50 Standorten ist ein Mandant, nicht 50 Lizenzen.

Empfehlung: Build, nicht Buy. MVP ist klein genug (3 Wochen), Wiederverwendung der Engines ist hoch, USP gegenueber Standalone-LMS ist klar.

9. Zusammenhaenge