Files
3d.lehrstun.de/COCKPIT.md
Hans Puettmann 4658d4931a Initial commit: Konzept v2 + Etappe 1 (Blueprints + Login + Profile)
Schwester-Projekt zu arduino.lehrstun.de fuer die 3D-Druck-AG am
Lessing-Gymnasium. Offene jahrelange Nachmittags-AG (kein Trimester),
8-10 Einzel-SuS mit optionalen 2er-Paarungen, 4 Bambu-Lab-Drucker
(3 geschlossen + 1 A1 mini).

Konzept v2 (Reality-Check-Iteration 2026-05-24):
- Onboarding-Pfad statt Pflicht-Lektionen (L1-L3 selbst-zertifiziert)
- Selbstlern-Loop als Kern: SuS-Projekte wachsen die interne Bibliothek
- Drill-Down-Lehrer-Dashboard (Wer ist hier / Wartet Review / Haengt fest)
- Cockpit progressiv: zeigt nur was zum Status passt
- Bambu-Cloud-API fuer Drucker-Live-Status (fragil + Fallback manuell)
- Three.js-Vorschau fuer Cover-aus-3D-Ansicht (Etappe 6)
- Vollstaendige Doku als Obsidian-Vault (24 Markdown-Dateien)
- Entscheidungen E-001 bis E-022 in docs/decisions.md

Etappe 1 lauffaehig (~1800 Zeilen Code):
- Blueprint-Struktur (V8): routes/oeffentlich+profil+admin+api,
  services/auth+bambu+datei
- Komplettes Schema in database.py (14 Tabellen, idempotent)
- Login mit bcrypt + persistentem Lockout in DB (V7, verbessert ggue
  Arduino-Kurs der In-Memory-Dict nutzt)
- Admin-Login + Profile-CRUD + PIN-Reset + PIN-Karten-Druckbogen
- Inline-Edit-Endpunkt mit Whitelist + Audit-Log
- Seeds: AG lessing-3d-ag + 4 Drucker + Default-Einstellungen
- Smoke-Test bestanden (Login, Profil-Anlage, Lockout-Logging)

Nicht im Repo (.gitignore): .env, *.db, venv/, .obsidian/workspace.json
2026-05-24 18:56:59 +02:00

5.1 KiB

type, projekt, status, stand, tags
type projekt status stand tags
cockpit 3d.lehrstun.de etappe-1-lauffaehig 2026-05-24
3d-druck
ag
schule
cockpit

3D-Druck-AG — Cockpit

Vault-Startseite. Wenn du diesen Ordner in Obsidian öffnest, landest du hier. Von hier verlinken Wikilinks ([[Name]]) auf alle Detail-Dateien des Konzepts.

Status auf einen Blick

  • Stand: Konzept v2 + Etappe 1 lokal lauffaehig (Login + Admin + Inline-Edit + Blueprint-Struktur, Smoke-Test bestanden). Code: ~1800 Zeilen Python+HTML.
  • Nichts deployed, DNS noch nicht gesetzt.
  • Nächster Schritt: Etappe 2 — progressives Cockpit, Check-In, Paarung, lehrer-dashboard. Oder vorher: Markus liest kurskonzept + selbstlern-loop + lehrer-dashboard.
  • Offene Klärungen: offene-fragen (Bambu-Cloud-Account, A1-mini-Firmware, ZSL-Projekt-Auswahl)
  • Lokal starten: venv/Scripts/python.exe app.pyhttp://localhost:5057 (Admin-PW lokal: lokal-test-123)

Architektur in einem Bild

flowchart TB
    subgraph Public["Öffentlich (kein Login)"]
        L[Onboarding-Pfad<br/>+ freie Module]
        S[Software-Sektion]
        P[Projekt-Katalog<br/>SuS-Projekte + ZSL-Seed]
        T[Troubleshooting]
        D[Drucker-Live-Status]
    end

    subgraph Profil["Profil (Vorname + Tier + PIN)"]
        C[Cockpit progressiv]
        CI[Check-In 'Was machst du heute?']
        EP[Eigene Projekte<br/>im Lebenszyklus]
        AB[Abschluss-Checkliste]
        SL[Slot-Reservierungen<br/>nach L1 fertig]
    end

    subgraph Admin["Admin (Herb + Markus)"]
        AD[Drill-Down-Dashboard]
        RQ[Review-Queue<br/>+ Three.js-Vorschau]
        DAQ[Druck-Queue]
        ADR[Drucker-Verwaltung]
        ALE[Inline-Edit für Lektionen]
    end

    subgraph Extern["Externe Systeme"]
        BC[Bambu Cloud-API]
        BS[Bambu Studio<br/>auf Schul-PCs]
        BH[Bambu Handy App]
        PR[Printables /<br/>MakerWorld]
        TC[TinkerCAD]
        OS[OpenSCAD]
        ZSL[ZSL Baden-Württemberg<br/>CC-BY-4.0 Material]
    end

    Public --> Profil
    Profil --> Admin
    AB --> RQ
    RQ --> P
    AD -.Polling 30s.-> BC
    BC -.Status.-> D
    L --> PR
    L --> TC
    L --> OS
    BS --> BC
    BH --> BC
    ZSL -.Initial-Seed.-> P

    classDef extern fill:#FEF9E7,stroke:#F5C842
    class BC,BS,BH,PR,TC,OS,ZSL extern

Inhalt des Vaults

Wurzel

  • CLAUDE — Projektstatus + Quickstart (für Claude/Herb)
  • README — Vorstellung für Markus + Aussenstehende
  • CHANGELOG — was wurde wann angelegt

Konzept

  • kurskonzeptHauptdokument v2, vollständiges Konzept zum Lesen (Markus, am Stück lesbar)
  • selbstlern-loopKern-Mechanismus der AG: Wie Projekte wachsen + vernetzt werden
  • lehrer-dashboardDrill-Down-Konzept für Herb + Markus
  • architektur — Komponentensicht mit Mermaid-Diagramm
  • datenmodell — SQLite-Schema als ERD (mit allen neuen Tabellen)
  • routen — Vollständige Routen-Liste mit Blueprint-Aufteilung
  • druckerapi — Bambu Cloud-API-Anbindung, Fallback, Risiken
  • slotsystem — Reservierung, Windhund, Priorisierung, Ausfall-Handling
  • sicherheit — Druckraum, Material, A1 mini
  • etappen — Implementierungs-Etappen 0-9 (mit Blueprint-Struktur von Anfang an)
  • offene-fragen — was wir noch besprechen müssen
  • glossar — 3D-Druck-Begriffe für SuS und Markus

Lektionen (Pflicht, Inhalte folgen)

Software-Tools (Stubs)

Entscheidungen

  • decisions — Entscheidungs-Log, neueste oben

Wichtige externe Quellen

Tags-Übersicht

  • #konzept — Architektur-/Konzept-Dateien
  • #kern — die zentralen Module (selbstlern-loop, lehrer-dashboard)
  • #lektion — Lektions-Inhalte
  • #software — Software-Tool-Beschreibungen
  • #offen — noch zu klären
  • #entscheidung — getroffene Entscheidung
  • #druckerapi — alles zur Bambu-Anbindung

Hinweis für Markus

Dieser Vault ist Markdown-only. Du kannst ihn mit Obsidian öffnen (File → Open vault → diesen Ordner wählen) und kriegst dann:

  • Wikilinks ([[…]]) zum Springen zwischen Dateien
  • Graph-View zur visuellen Übersicht der Querverbindungen
  • Backlinks rechts: wer verlinkt auf die aktuelle Datei

Du kannst die Dateien aber auch mit jedem anderen Editor (VSCode, Notepad++, sogar Notepad) lesen — sie sind reines Markdown.