Files
3d.lehrstun.de/COCKPIT.md
Hans Puettmann abf96ca8f2 Etappe 2: Cockpit progressiv + Check-In + Paarung + Lehrer-Dashboard
Cockpit (V1, progressives Layout):
- /cockpit zeigt nur Karten, die zum Status passen.
  Onboarding-Karte nur fuer Neue; Paarungs-Karte immer wenn aktiv;
  Drucker-Buchung erst nach L1 fertig.
- Banner-System: ungelesene Lehrer-Notizen, offene Rueckfragen,
  eingegangene Paarungs-Anfragen.

Check-In (V3 + E-021):
- Modal beim ersten Cockpit-Aufruf eines Besuchstages.
- "Ich arbeite weiter" als Default-Ein-Klick-Option.
- Freitext optional.
- POST /cockpit/check-in mit UNIQUE-Constraint pro Tag.

Onboarding-Status (E-019):
- /cockpit/lektion/<nr>/status (selbst-zertifiziert).
- profil_lektion_status-Tabelle, ON CONFLICT-Upsert.

Paarung (E-002):
- profil_anfrage-Tabelle on-demand.
- Anfrage stellen / annehmen / ablehnen / aufloesen.
- Konflikt-Check (keine Doppel-Paarungen).
- Banner im Cockpit des Adressaten.

Lehrer-Dashboard (V5, docs/lehrer-dashboard.md):
- /admin/dashboard mit 4 Sektionen (Wer ist heute hier / Wartet auf
  Review / Drucker-Status / Wer haengt fest) + Schnell-Zahlen + offene
  Rueckfragen.
- "Notiz hinterlassen"-Quick-Action via lehrer_notiz-Tabelle.
- Live-Drucker-Status kommt mit Etappe 5 (aktuell nur DB-Stand).

Daten-Helper getrennt:
- services/cockpit_status.py: Bundle fuer progressives Cockpit
- services/dashboard_status.py: 4-Sektionen-Queries

Vorgezogen aus Etappe 3:
- /lektionen + /lektion/<nr> Minimal-Renderer mit Markdown
- 3 Onboarding-Lektionen als Seeds (Platzhalter-Text fuer Markus)

Smoke-Test bestanden: Login als neuer SuS -> Onboarding ->
Check-In -> L1 fertig -> Paarung mit zweitem SuS -> Admin-Dashboard
-> Lehrer-Notiz -> Banner im Cockpit.
2026-05-24 19:13:19 +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+2 lokal lauffaehig (Login, Cockpit progressiv, Check-In, Paarung, Lehrer-Dashboard mit Drill-Down). Code: ~2500 Zeilen Python+HTML, Repo gepusht.
  • Nichts deployed, DNS noch nicht gesetzt.
  • Nächster Schritt: Etappe 8 (ZSL-Material auswaehlen + umarbeiten) damit der Projekt-Katalog beim Start nicht leer ist. Oder Etappe 6 (Selbstlern-Loop voll). Oder Markus' Inhalte fuer L1-L3 einpflegen.
  • 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.