9 Commits

Author SHA1 Message Date
6ee5011dd7 Sitzungsende-Doku: Status auf LIVE, Etappe 9 abgehakt, decisions E-023/E-024, offene-fragen aufgeraeumt 2026-05-25 15:39:42 +02:00
046fd56018 14 Lektionen aufeinander aufbauend (L1-L14)
L4-L14 neu, mit voll geschriebenen Inhalten in eigenen Worten fuer
Klasse 8 MINT. Quellen: NRW-Handreichung, DigiLab A1-mini-PDF, Bambu-Wiki,
Onshape-Briefing — alles umgesetzt, nicht kopiert.

Phasen:
- A (L1-L3): Drucken koennen — Onboarding-Pflicht
- B (L4-L7): Verstehen + visuelles CAD mit TinkerCAD
  - L4: Wie funktioniert ein 3D-Drucker (FDM, Schichten, Materialkunde)
  - L5: TinkerCAD - erste Schritte (Konto, UI, Grundformen)
  - L6: TinkerCAD - Hole + Group + Workplane (der Kern-Workflow)
  - L7: Selbst designter Schluesselanhaenger (verbindet CAD mit Druck)
- C (L8-L11): erste richtige Projekte + Vertiefung
  - L8: Etwas Nuetzliches (Einkaufswagenchip / Stiftehalter / eigene Idee)
  - L9: Mehrteilige Projekte mit Toleranzen
  - L10: Slicer-Vertiefung (Schichthoehe, Fuelldichte, Stuetzen)
  - L11: Druck-Probleme verstehen + loesen (6 Klassiker)
- D (L12-L13): Profi-CAD mit Onshape
  - L12: Onshape kennenlernen (vs. TinkerCAD, Konto, erster parametrischer Wuerfel)
  - L13: Kleiderhaken-Klassiker (Skizze + Extrusion + Hole + Fillet)
- E (L14): Capstone — eigenes Projekt von A bis Z

Padagogisches Muster pro Lektion: Anknuepfung -> neue Theorie/Werkzeug
-> geleitete Uebung -> freie Aufgabe (selbst denken) -> Reflexion.

Technisch:
- scripts/lektionen_seed.py — idempotent, kann mit Re-Run jederzeit aktualisiert
- docs/lektionen-plan.md — Uebersichts-Doku mit Pad-Logik + Materialquellen
- COCKPIT.md — Lektion-Liste aktualisiert
- Lektionen leben in der DB (sichtbar /lektion/1 bis /lektion/14)
- 3300-4900 Zeichen pro Lektion (gut lesbar, aber nicht aufgeblasen)

Smoke-Test: /lektionen zeigt alle 14, /lektion/14 rendert sauber.

Inhalte sind explizit korrigierbar — Markus + Herb werden beim Schultest
sehen, was funktioniert und was nicht. Inline-Edit (Etappe 3) wird das
Korrigieren ohne Migration erlauben.
2026-05-25 13:52:57 +02:00
e762bac3e3 L2-Korrektur (A1-mini Material) + Onshape + Referenz-Ordner
Quellen:
- DigiLab-A1-mini-PDF (im OneDrive, frei nutzbar — Bildungseinrichtung)
- QUA-LiS-NRW-Handreichung (im OneDrive, frei kopierbar — Landes-Material)
- Onshape-Briefing von Herb (eigene Recherche)

Konkrete Aenderungen:

L2 aufgabe_md (Drucker-Tabelle korrigiert nach DigiLab-Daten):
- A1 mini kann PLA, PLA+, PETG, Flex, ASA — kein ABS (Heizbett max 80°C)
- AMS lite mit 4 Spulen → Multi-Color moeglich
- P-Serie: PLA, PLA+, PETG; ABS nur mit Lehrer-Aufsicht
- Tabelle mit Druckflaeche + Material + Besonderheiten pro Drucker-Modell

Onshape als neue Software-Tool-Seite (analog software-tinkercad.md):
- docs/software-onshape.md mit kuratierter Linkliste (deutsch first)
- Lernkurve angepasst: L4 TinkerCAD → L5+ Onshape, OpenSCAD als Alternative
- kurskonzept.md + COCKPIT.md aktualisiert

Referenz-Ordner docs/_referenzen/:
- README.md mit Lizenz-Tabelle und Nutzungshinweisen
- digilab-a1mini-anleitung.txt (pdftotext-Extrakt, 10-Schritte-Workflow)
- qua-lis-nrw-handreichung.txt (pdftotext-Extrakt, 54 Seiten Schul-Handreichung)
- onshape-briefing.md (vollstaendige Linkliste, Hintergrund-Doku — NICHT als
  cad.lehrstun.de-Anweisung uebernommen; Briefing-To-Dos sind ausdruecklich
  uebersprungen, Onshape bleibt Software-Tool-Seite in unserer Site)

Naechster Schritt: NRW-Handreichung auswerten fuer Troubleshooting +
Projekt-Inspirations-Liste (Etappe 3 + 8).
2026-05-25 13:16:56 +02:00
76addcb846 Herr Rechmann + L3-Titel + L2-Workflow
Drei Aenderungen aus Herbs Feedback:

1. Markus -> Herr Rechmann (60 Treffer in 26 Dateien + DB-Lektionen L2/L3)
   Konvention: Herb bleibt 'Herb' (interne Anrede fuer Claude), Markus
   wird in SuS-sichtbaren Texten als 'Herr Rechmann' ausgeschrieben.
   Wo 'Herb und Markus' stand -> 'Herb und Herr Rechmann'. Wenn das
   stilistisch zu uneinheitlich wirkt, koennen wir Herb spaeter auch
   in SuS-Texten zu 'Herr Puettmann' umziehen.

2. L3-Titel: 'Customizer — parametrisches 3D-Modell anpassen'
   -> 'Mein eigenes 3D-Modell designen'
   Begruendung Herb: 'Customizer' + 'parametrisch' wirken abschreckend.
   Methode kommt in den Aufgabe-Text, nicht in den Titel.

3. L2-Inhalt komplett geschrieben (~4.8 KB):
   - 8-Schritte-Workflow vom Stoebern auf Printables bis zum
     Druck-Abholen
   - A1-mini-Spezifika klar markiert (offen → nur PLA, 18×18 cm)
   - P-Serie-Spezifika fuer groessere Drucke
   - Tipps zur Modell-Wahl (klein anfangen, 4+ Sterne)
   - Was-tun-wenn-Tabelle bei Druckproblemen
   - Lehrer-Eskalations-Pfad: pausieren via Handy-App + Lehrer rufen

   Quellenlage: PDF-Anleitung A1 mini im OneDrive + Bambu-Wiki online
   waren beide nicht maschinell zugaenglich (pdftoppm fehlt, Wiki
   gibt HTTP 402). Workflow basiert auf Standard-Bambu-Studio-Bedienung
   + Konsistenz mit der L1-P2S-Beschreibung. Herb/Herr Rechmann pruefen
   die A1-mini-Spezifika beim Lehrer-Test und korrigieren via Inline-Edit
   (oder per Migration, wenn Inline-Edit-UI noch nicht live ist).
2026-05-24 19:51:19 +02:00
f534256a0a Sprache: 'Modell' -> '3D-Modell' konsequent durchgesetzt
Herb-Beobachtung: 'Fremdes Modell waehlen + drucken' liest sich
mehrdeutig — kurz dachte er, es waeren fremde Drucker (Prusa) gemeint.
Konvention im Glossar dokumentiert: '3D-Modell' fuer Druckdateien,
'Drucker'/'Druckermodell' fuer die Maschinen.

Geaendert:
- L2-Titel: 'Fremdes Modell waehlen + drucken'
    -> '3D-Modell aus dem Netz drucken'
- L3-Titel: 'Customizer / parametrisches Modell'
    -> 'Customizer — parametrisches 3D-Modell anpassen'
- L1-aufgabe_md: punktuelle Praezisierungen ('baut ein Modell' etc.)
- L2/L3-aufgabe_md: durchgaengig '3D-Modell'
- Startseite + selbstlern-loop.md + kurskonzept.md: dito
- docs/glossar.md: neue Sektion 'Sprach-Konvention: Modell' mit
  Disambiguierungs-Hinweis

Migration migrations/2026-05-24_lektion_sprache_3d_modell.py
(idempotent via Marker SPRACHE_3D_MODELL_V1 in L1, Titel-Vergleich
fuer L2/L3).

seed.py vereinfacht — L1/L2/L3 sind nur noch Minimal-Stubs, die volle
Texte kommen aus den Migrationen. Bei voller Doku-Installation:
seed.py + alle migrations/ laufen lassen.
2026-05-24 19:41:36 +02:00
c2d731098e L1: SuS-gerechte Zusammenfassung der P2S-Anatomie (in eigenen Worten)
Quelle als Inspiration: Bambu Wiki P2S-Einfuehrung (Deutsch).
Text ist eigene Formulierung fuer Klasse 8 — keine 1:1-Uebernahme,
deshalb urheberrechtlich unbedenklich.

Inhalt der L1.aufgabe_md (4 KB):
- Wie 3D-Druck grob funktioniert (Schicht fuer Schicht)
- X/Y/Z-Bewegung, A1-mini-Unterschied erwaehnt
- Druckkopf-Anatomie (Extruder, Hotend, Duese, Silikonsocke)
- Heizbett + PEI-Druckplatte mit Pflegehinweis
- Automatik im Hintergrund (Bett-Levelling, Duesen-Reinigung, Filament-Erkennung)
- Luftfilter + adaptives Luftstromsystem (gut fuer Klassenraum)
- Touchscreen + Kamera + Bambu Handy App
- Konkreter Lektions-Ablauf am Ende (Sicherheits-Briefing, App-Setup, Erstdruck)

extern_link von L1: jetzt direkt das Bambu-Wiki (Deutsch) statt der
englischen Academy — mit Herbs OK (Registrierung ist akzeptabel).

Migration migrations/2026-05-24_l1_inhalt_v2.py — idempotent ueber Marker
im Text. Bei neuer Installation: seed.py legt Minimal-Stub, Migration
fuellt drueber.

docs/lektion-L1-drucker-kennenlernen.md aktualisiert mit Hinweisen zu
Migrationen + neuem TODO "A1 mini braucht eigene Anleitung".
2026-05-24 19:34:19 +02:00
625efc3993 L1: deutsche P2S-Anleitung als Ressource hinterlegt
Herb-Hinweis: https://wiki.bambulab.com/de/p2s/manual/p2s-intro
ist Bambus offizielle deutsche Anleitung fuer den P2S, passt sinngemaess
auch fuer unsere P1S + X1C (alle drei geschlossen, gleiches Layout).
Der A1 mini ist anders und braucht eigene Quelle.

- seed.py: aufgabe_md von L1 enthaelt den Link
- migrations/2026-05-24_l1_p2s_link.py: idempotenter Update fuer
  bestehende DB-Stände, ergaenzt nur wenn Link noch nicht drin
- docs/lektion-L1-drucker-kennenlernen.md: Sektion "Externe Ressourcen"
  ergaenzt mit beiden Links (Academy + P2S-Wiki)
2026-05-24 19:25:25 +02:00
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
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