--- type: log projekt: 3d.lehrstun.de tags: [changelog] --- # CHANGELOG — 3d.lehrstun.de Format: [Datum] — Kurz-Beschreibung. Details bei nicht-trivialen Änderungen. ## 2026-05-24 — Etappe 1 lauffähig - **Blueprint-Struktur etabliert** (V8): `routes/oeffentlich.py`, `routes/profil.py`, `routes/admin.py`, `routes/api.py`, `services/auth.py`, `services/bambu.py` (Stub), `services/datei.py` (Stub). - **app.py zu Bootstrap umgebaut** (~100 Z.) — registriert Blueprints, definiert Markdown-Filter, Context-Processor, Error-Handler (404/500/501). - **database.py mit allen Tabellen aus [[datenmodell]]** — idempotent via `CREATE TABLE IF NOT EXISTS`. Inkl. `profil_lektion_status`, `login_lockout`, `projekt_*`, `lehrer_notiz`, `ag_mitgliedschaft`, `check_in` (E-021), `aenderung_log`. - **Auth-Layer** in `services/auth.py`: bcrypt-PIN-Hashing/-Pruefung, persistenter Lockout in DB (V7), Decorators `login_required` + `admin_required` + `onboarding_l1_fertig` (V2). - **Profil-Login funktional**: 4-stellige PIN, Rate-Limit 5 Versuche / 5 Min → 15 Min DB-Sperre. - **Admin-Login + Profile-Verwaltung**: Neue Profile mit Auto-PIN-Generation (einmalig sichtbar), PIN-Reset, aktiv-Toggle, Druckbogen für PIN-Karten (CSS-Print). - **Inline-Edit-Infrastruktur** in `routes/admin.py`: `ERLAUBTE_INLINE_TABELLEN`-Whitelist, `/admin/inline-edit`-POST mit Audit-Log in `aenderung_log`. - **seed.py** mit Initial-Daten: AG `lessing-3d-ag`, 4 Drucker (3 geschlossen + A1 mini), 3 Default-Einstellungen. - **Templates portiert**: `login.html`, `login_pin.html`, `cockpit_stub.html`, `admin_login.html`, `admin_profile.html`, `admin_profile_karten.html`, `501.html`. - **Smoke-Test bestanden**: Admin-Login, Profil-Anlage, SuS-Login mit PIN, Falsche-PIN-Lockout-Logging — alles funktional. ## 2026-05-24 — Reality-Check + Selbstlern-Loop (Konzept v2) - Reality-Check-Analyse aus vier Perspektiven (neuer SuS / erfahrener SuS / Lehrer / Technik) + Vergleich mit `arduino.lehrstun.de`. Plan-Datei: `~/.claude/plans/f-hre-noch-einmal-eina-cosmic-wind.md` (approved). - **Wichtige Konzept-Korrektur:** AG ist offen, jahrelang, keine festen Termine. Pflicht-Lektionen werden zu Onboarding-Pfad für Neue. - **Neue Module dokumentiert:** [[selbstlern-loop]] (Projekt-Lebenszyklus + interne Bibliothek), [[lehrer-dashboard]] (Drill-Down: Wer ist hier / Wartet auf Review / Wer hängt fest). - **Entscheidungen E-012 bis E-022 dokumentiert** ([[decisions]]): u.a. Selbstlern-Loop, Vernetzung Variante 1, Feedback A-Variante, Three.js, Blueprint-Struktur, persistenter Login-Lockout, ZSL-Material-Strategie. - **Reichhaltig überarbeitet:** [[kurskonzept]] auf v2, [[datenmodell]] (5 neue Tabellen), [[routen]] (Selbstlern-Loop-Routen + Drill-Down), [[etappen]] (mit Blueprint von Anfang an), [[offene-fragen]] (geklärtes raus). - COCKPIT.md mit erweitertem Mermaid-Diagramm und neuen Wikilinks. ## 2026-05-23 - Projekt-Skelett angelegt: [[CLAUDE]], [[kurskonzept]], [[decisions]], [[README]], leeres Flask-Gerüst (`app.py`, `database.py`, `tiere.py`). - Recherche zu Bambu Lab Education, Modell-Plattformen, didaktischen Vorbildern, Bambu Cloud-API durchgeführt. - Entscheidungen E-001 bis E-011 dokumentiert ([[decisions]]). - Vault-Struktur ergänzt: `.obsidian/`-Konfig, [[COCKPIT]] als Startseite, Konzept-Module ([[architektur]], [[datenmodell]], [[routen]], [[druckerapi]], [[slotsystem]], [[sicherheit]], [[etappen]], [[offene-fragen]], [[glossar]]), Lektions-Stubs L1/L2/L3, Software-Tool-Stubs (Bambu Studio/Handy, Printables, MakerWorld, TinkerCAD, OpenSCAD).