--- type: konzept-hauptdokument projekt: 3d.lehrstun.de stand: 2026-05-24 status: entwurf v2 tags: [konzept, hauptdokument] --- # 3D-Druck-AG — Kurskonzept (Entwurf v2) > **Lesehinweis Obsidian:** Das ist das Hauptdokument am Stück. Detail-Module > liegen in eigenen Dateien — siehe [[COCKPIT]] für die Übersicht, oder direkt > [[architektur]], [[datenmodell]], [[routen]], [[druckerapi]], [[slotsystem]], > [[sicherheit]], [[selbstlern-loop]], [[lehrer-dashboard]], [[etappen]], > [[offene-fragen]], [[glossar]]. **Stand:** 2026-05-24 (nach Reality-Check-Iteration mit Herb) **Status:** Entwurf v2, zur Abstimmung mit Markus **Rahmen:** Offene Nachmittags-AG am Lessing-Gymnasium, **läuft jahrelang**, ca. 8-10 Einzel-SuS (optional 2er-Paarungen), eigener Druckraum mit 4 Bambu-Lab-Druckern (3 geschlossen + 1 A1 mini). **Unbenotet**, kein Lehrplan, freier Zugang. Neue Mitglieder kommen über die Jahre dazu, alte gehen. > **Lesehinweis für Markus:** Dieses Dokument ist Entwurf v2. Es ersetzt v1 > (2026-05-23) nach einer Reality-Check-Analyse aus vier Perspektiven (neuer > SuS / erfahrener SuS / Lehrer / Technik). Wichtige Korrektur gegenüber v1: > Wir haben fälschlich „12 Termine" angenommen — die AG ist tatsächlich offen > und langfristig. Das ändert mehrere Architektur-Entscheidungen. Vollständige > Entscheidungs-Historie: [[decisions]]. --- ## 1. Didaktischer Kern ### Onboarding-Pfad statt fester Lehrplan Die AG hat **keinen Curriculum**. Neue Mitglieder bekommen einen **Onboarding-Pfad** mit 3 selbst-zertifizierten Lektionen — danach freie Wahl, was sie machen wollen. | Lektion | Inhalt | Pflicht für | Nach Abschluss freigeschaltet | |---|---|---|---| | **L1 Drucker-Kennenlernen + Sicherheit** | Drucker-Übersicht, A1-mini-Hands-Off, Bambu Handy App einrichten, vorbereitetes Modell drucken | Neue | **Slot-Buchung** (V2 — siehe [[../decisions#E-020]]) | | **L2 Fremdes Modell wählen + drucken** | Modell auf Printables/MakerWorld suchen, in Bambu Studio slicen, drucken | Neue | Eigene Projekte aus Katalog | | **L3 Customizer / parametrisches Modell** | MakerWorld-Customizer: Schlüsselanhänger mit eigenem Namen | Neue | Eigenes-Projekt-Vollzugriff | | **L4+ Eigene Modelle zeichnen** | TinkerCAD → OpenSCAD | Frei | — | | **Eigene Projekte (Dauer-Modus)** | Idee → Modell → Druck → Iteration → Abschluss mit Reflexion → in Katalog | Frei | — | Nach Onboarding **verschwindet die Onboarding-Karte** aus dem Cockpit (V1 — progressives Cockpit, [[../decisions#E-020]]). Erfahrene SuS sehen nur noch ihre laufenden Projekte, Druckaufträge, Slots. ### Warum diese Reihenfolge Quellen: PHBern IdeenSet, inf-schule.de, ZSL Baden-Württemberg. - „Druck zuerst, Modellierung später" verhindert Frust. - Customizer als Brücke zwischen „fertig laden" und „selbst zeichnen" — fehlt in den meisten Schulkonzepten, MakerWorld macht ihn so leicht zugänglich. - L4+ ist optional und nach Interesse — TinkerCAD für klick-basierte, OpenSCAD für code-basierte SuS. ### Selbstlern-Loop als Kern (Wachstums-Mechanismus) **Was die Site vom Arduino-Kurs grundsätzlich unterscheidet:** Jedes abgeschlossene Projekt wird nach Lehrer-Freigabe in die interne Bibliothek aufgenommen. Über die Jahre wächst eine **eigene Projekt-Sammlung** — wertvoller als jeder externe Modell-Katalog, weil sie zeigt: „Das wurde bei uns schonmal gemacht." Vollständiger Workflow: [[selbstlern-loop]]. Kurzfassung: 1. Neuer SuS **stöbert** im Projekt-Katalog (eigene + ZSL-Seed). 2. **Wählt** Vorlage oder eigene Idee. 3. **Arbeitet** im Cockpit (Files, Druckaufträge, Slots). 4. Beim Abschluss: **Pflicht-Checkliste** (Selbsteinschätzung 🟢🟡🔴 + Cover-Foto **oder** STL + 1 Tag — sonst alles optional). 5. **Lehrer-Review**: freigeben, Rückfrage, oder hartes Löschen (Penismodell-Fall). 6. Bei Freigabe: Projekt landet im Katalog, ist für andere SuS sichtbar. ### Doku-Hürde 8.-Klässler tun sich schwer mit ausführlicher Stand-Notiz. Lösung: **Stunden-Beginn-Abfrage** (siehe §7) als „Was machst du heute?"-Mini-Modal, das mit einem Klick beantwortbar ist („Ich arbeite an X weiter"). Kein KI-Lernhelfer in dieser Site. SuS nutzen Schul-Copilot. --- ## 2. Architektur — eine Site, drei Zonen > 📎 Detail mit Mermaid-Diagrammen: [[architektur]]. Datenmodell: [[datenmodell]]. Routen: [[routen]]. > Code-Organisation: **Blueprint-Struktur** von Anfang an (V8, [[../decisions#E-020]]). ``` ┌─────────────────────── 3d.lehrstun.de ─────────────────────────┐ │ │ │ ÖFFENTLICH (kein Login) │ │ ───────────────────────── │ │ • Lektionen (Onboarding-Pfad + freie Module) │ │ • Software-Sektion (Bambu Studio, Printables, ...) │ │ • Projekt-Katalog (interner Wachstum + ZSL-Seed) │ │ • Drucker-Status (Live, anonym) │ │ • Troubleshooting │ │ │ │ ┌── Vorname + Tier-Icon + PIN-Login ─────────────────────┐ │ │ │ │ │ │ │ SuS-COCKPIT (PROGRESSIV, V1) │ │ │ │ ─ Neu: nur Onboarding-Karte + Check-In │ │ │ │ ─ Onboarding fertig: + eigene Projekte, Druck, Slots │ │ │ │ ─ Erfahren: voll, ohne Onboarding-Karte │ │ │ │ Bei Lehrer-Rückfrage: gelbes Banner ganz oben (V6) │ │ │ └──────────────────────────────────────────────────────────┘ │ │ │ │ ADMIN (Passwort, Herb + Markus) │ │ • Drill-Down-Dashboard (V5): Wer ist heute hier / │ │ Wartet auf Review / Wer hängt fest / Drucker-Status │ │ • Projekt-Freigabe-Queue (mit Three.js-Vorschau, V3-Aktion) │ │ • SuS-Profile, PIN-Generierung, Druckbogen │ │ • Slot-Priorisierung │ │ • Drucker-Übersicht + manueller Status-Override │ │ • Lektionen-/Software-Editor (inline, Whitelist) │ └─────────────────────────────────────────────────────────────────┘ ``` --- ## 3. Datenmodell (Kurzfassung) > 📎 Detail mit ERD + Tabellen-Erklärung: [[datenmodell]]. Live im Code: [`database.py`](../database.py). **Kern-Tabellen (gegenüber v1 erweitert):** - `ag_mitgliedschaft` (ersetzt `kurs` — AG ist dauerhaft, nicht trimester-basiert) - `profil` (Vorname + Tier + PIN, Pflicht-Login) - `paarung` (optional, 2er-Zusammenschluss) - `profil_lektion_status` ([[../decisions#E-019]] — Onboarding-Fortschritt, selbst-zertifiziert) - `login_lockout` (V7 — persistenter Lockout in DB) - `projekt` (vollständiger Lebenszyklus: `status_lebenszyklus`, `selbsteinschaetzung`, `freigabe_status`, `vorlage_projekt_id`) - `projekt_datei` (BLOB, 30 MB Limit, abstrahiert) - `projekt_tag` (für Suche und Filter) - `projekt_rueckfrage` (Lehrer-Notizen pro Projekt) - `lehrer_notiz` (allgemeine Notizen vom Lehrer ans SuS-Cockpit) - `check_in` (V3-Format mit Modus + optionalem Freitext) - `drucker`, `drucker_status`, `druckauftrag`, `slot`, `lektion`, `einstellung`, `aenderung_log` --- ## 4. Routen (Kurzfassung) > 📎 Vollständige Routen-Tabelle: [[routen]]. Stubs im Code: [`app.py`](../app.py). Blueprint-Aufteilung (V8): - `routes/oeffentlich.py` — öffentliche Seiten - `routes/profil.py` — Login, Cockpit, eigene Projekte/Aufträge/Slots - `routes/admin.py` — Dashboard, Review-Queue, Inline-Edit - `routes/api.py` — JSON-Endpunkte (Drucker-Status, Slot-Polling) - `services/bambu.py` — Cloud-API-Wrapper (isoliert) - `services/datei.py` — File-BLOB-Handling (abstrahiert für spätere S3-Migration) --- ## 5. Drucker-API-Anbindung > 📎 Detail: [[druckerapi]]. Entscheidungen: [[../decisions#E-005]], [[../decisions#E-006]]. - Bambu Cloud-API-Polling vom Hetzner aus, alle ~30 s (Lib: `bambulabs_api`). - Inoffiziell, fragil → Fallback: manueller Status-Override durch Lehrer. - Lesen: Status, Job, Restzeit. **Kein** Job-Upload von der Site (Developer-Mode-Pflicht wäre Bambu-Cloud-Verlust). --- ## 6. Slot-System > 📎 Detail mit Sequenz-Diagrammen + UI-Skizze: [[slotsystem]]. - **Windhund-Prinzip** als Default, Lehrer kann priorisieren oder verschieben. - **Slot-Buchung erst freigeschaltet nach L1 (Sicherheits-Lektion)** — V2, [[../decisions#E-020]]. - Drucker dürfen über Nacht / Freistunden laufen. - Drucker-Ausfall → Admin-Vorschlag „Slot auf anderen Drucker verschieben". --- ## 7. Stunden-Beginn-Abfrage (V3 — radikal kurz) UI im Cockpit beim ersten Aufruf eines Besuchstages: ``` ┌─ Hallo Mia! Was machst du heute? ──────────┐ │ │ │ ◉ Ich arbeite an meinem Projekt weiter: │ │ „Schlüsselanhänger mit Logo" │ │ │ │ ○ Neues Projekt anfangen │ │ ○ Onboarding-Lektion machen │ │ ○ Drucken (warte auf Drucker) │ │ ○ Anderen helfen │ │ ○ Sonstiges │ │ │ │ [Optional] kurz, was genau: │ │ ┌──────────────────────────────────────┐ │ │ │ │ │ │ └──────────────────────────────────────┘ │ │ │ │ [Los geht's] │ └──────────────────────────────────────────────┘ ``` **Verhaltens-Details (V3 + E-021):** - Default-Auswahl ist „Ich arbeite weiter" mit Titel des aktiven Projekts — **ein Klick reicht**. - Freitext **ist immer optional**, nicht Pflicht. - Nur einmal pro Besuchstag (UNIQUE-Constraint auf `check_in`). - Lehrer-Dashboard zeigt alle Antworten des Tages aggregiert (siehe [[lehrer-dashboard]]). --- ## 8. Software-Sektion | Software | Wofür | Lektion | |---|---|---| | **Bambu Studio** | Slicer (PC), Pflicht | L1 | | **Bambu Handy** | Live-Kamera, Druck-Steuerung | L1 | | **Bambu Academy** | Kostenloser Drucker-Kurs mit Zertifikat | L1 | | **Printables.com** | Modell-Plattform (sauber, kein NSFW) | L2 | | **MakerWorld.com** | Bambu-eigene Plattform + Customizer | L2 + L3 | | **TinkerCAD** | Visuelles CAD im Browser, Klassenraum-Modus | L4 | | **OpenSCAD** | Parametrisches CAD (Code) | L4+ | **Nicht empfohlen:** Thingiverse (NSFW-Ads), Cults3D (Bezahl-Push). --- ## 9. Sicherheit + Organisation > 📎 Detail: [[sicherheit]]. Quellen: siehe [[COCKPIT#wichtige-externe-quellen]]. - **UKBW-Richtlinie** als Basis für L1. - **PLA + PLA+ als Default**, PETG + ABS nur unter Aufsicht (Admin-Toggle). - **A1 mini (offen):** explizite Hands-Off-Regel beim Hotend. - **Druckraum mit Dauerlüftung** → entspannte Lage. --- ## 10. ZSL-Material als Seed-Inhalt Bei Kursstart ist die Projekt-Bibliothek leer. Damit Neuzugänge nicht ins Nichts schauen: - **8-10 ZSL-Projekte** aus dem CC-BY-4.0-Material des Landes Baden-Württemberg werden in unser Design **umgearbeitet** (mit Urhebernachweis). - Markus + Herb wählen aus den 20+ verfügbaren Projekten gemischte Schwierigkeit. - Beschreibungen werden auf unsere Bambu-Drucker + 8-10-SuS-AG angepasst (keine 1:1-PDF-Einbettung). - Bilder + STLs werden mit Quellen-Hinweis übernommen. - Diese Projekte erscheinen als reguläre Katalog-Karten mit Badge „Vorlagen-Projekt". Über die Jahre **wächst die Bibliothek durch SuS-Projekte selbst** — siehe [[selbstlern-loop]]. Details: [[../decisions#E-022]]. --- ## 11. Implementierungs-Etappen (Übersicht) > 📎 Lebende Detail-Version mit Checkboxen: [[etappen]]. Etappen sind seit V8 ([[../decisions#E-020]]) **mit Blueprint-Struktur von Anfang an** gedacht: ``` 0 ✓ Skelett anlegen (2026-05-23) 1 Basis: Login + Profile + Onboarding-Status + Inline-Edit + Persistenter Lockout 2 Cockpit (progressiv, V1) + Check-In + Paarung + Lehrer-Dashboard (V5) 3 Lektionen + Software-Sektion + Troubleshooting 4 Drucker-API-Spike (Bambu-Cloud-Auth + Felder-Validierung) 5 Drucker-Integration + Live-Status + manueller Override 6 Selbstlern-Loop: Projekt-Katalog + Lebenszyklus + Files + Review + Three.js 7 Slot-System (gesperrt bis L1, V2) + Druckaufträge 8 ZSL-Material-Import (8-10 Projekte umgearbeitet) 9 Deploy + Polish (DNS, nginx, systemd, PummelHummel) ``` Erwarteter Gesamtaufwand: 8-10 Coding-Sitzungen. --- ## 12. Offene Punkte (lebende Liste) > 📎 Aktuelle Liste: [[offene-fragen]]. Geklärte Punkte stehen in [[decisions]]. **Vor Implementation noch zu klären** (mit Markus oder im Doing): - Welche 8-10 ZSL-Projekte konkret? (mit Markus) - Material-Tracking als späteres Modul nötig? (siehe [[offene-fragen]]) - Bambu-Cloud-Account-Inhaber (Schul-Account vs. Herb privat) - A1-mini-Firmware-Version (für API-Kompatibilität) --- ## 13. Quellen - **PHBern IdeenSet 3D-Drucken**: https://www.phbern.ch/dienstleistungen/unterrichtsmedien/ideenset-3d-drucken - **inf-schule.de 3D-Druck**: https://inf-schule.de/informatiksysteme/3d_druck - **ZSL Baden-Württemberg „3D-Druck erleben"**: CC-BY-4.0, im OneDrive-Bücher-Ordner - **UKBW Sicherheit (PDF)**: https://www.ukbw.de/fileadmin/user_upload/Sicherer-Umgang-mit-3D-Druckern-in-der-Schule.pdf - **Bambu Lab Academy**: https://bambulab.com/en/support/academy - **Printables Education**: https://www.printables.com/education - **bambulabs_api (Python)**: https://github.com/BambuTools/bambulabs_api --- ## 14. Was als Nächstes passieren muss 1. **Markus liest dieses Konzept** + die Detail-Module ([[selbstlern-loop]], [[lehrer-dashboard]], [[datenmodell]]). 2. Markus + Herb wählen die 8-10 ZSL-Projekte aus (siehe §10). 3. **DNS**: `3d.lehrstun.de` als A-Record auf 46.225.114.15 anlegen. 4. **Etappe 1 starten**: Blueprint-Struktur + Login + Profile + Onboarding-Status (siehe [[etappen]]).