3 Commits

Author SHA1 Message Date
ae68da996f Externe Datei-Links + Power-User-Rolle + PAROL6-Demo
Block A — Externe Links:
  - projekt_datei.extern_url: eine "Datei" kann Upload (BLOB) ODER Link sein
  - Link-Route /cockpit/projekt/<id>/link, Werkstatt-UI mit Link-Feld
  - Katalog + Detail rendern Links als "Oeffnen ↗", Uploads als Download
  - Upload-Limit 30 -> 60 MB (grosse Bambu-3MF); darueber: externer Link

Block B — Power-User-Rolle:
  - profil.rolle ('schueler'|'power'); Login setzt Session-Rolle
  - Decorator power_oder_admin; ist_power-Helper
  - Login-Kacheln: Power mit 🔧 statt Tier; Admin-Profilanlage mit Rollen-Dropdown
    (Tier nur bei schueler Pflicht, Power kriegt Platzhalter-Slug 'power')
  - Cockpit: kein Check-In fuer Power, stattdessen "Power-Werkzeuge"-Karte
  - Power-Projekt-Regeln: mehrere parallel erlaubt, Abschluss direkt 'freigegeben'
  - Rechte power_oder_admin: Drucker-Verwaltung, Software-Katalog,
    Slot-fuer-SuS, inline-edit (beschraenkt auf drucker+software_seite)
  - Bleibt admin-only: SuS-Profile, Projekt-Freigaben, Admin-Dashboard
  - Power-relevante Admin-Templates: Zurueck-Link rollenabhaengig (Cockpit statt Dashboard)

Block C — PAROL6-Demo:
  - scripts/seed_demo_parol6.py: Power-Profil 'Herb' + PAROL6-Roboterarm-Projekt
  - GitHub-Repo als Link, Bauanleitung-PDF als BLOB, Cover aus 3MF-Render
  - abgeschlossen+freigegeben -> im Katalog, als Vorlage waehlbar

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-30 17:12:45 +02:00
31636155e1 L3 voll geschrieben: Customizer-Workflow mit MakerWorld
Bisher war L3 nur ein Stub-Platzhalter (661 Z). Jetzt voll (5938 Z),
analog L1+L2 strukturiert:
- Was ist ein parametrisches 3D-Modell (Customizer-Konzept)
- MakerWorld-Konto anlegen (auch via Schul-Account)
- 5-Schritte-Workflow: Modell finden → Customizer oeffnen → Werte
  veraendern → Generate → Download → drucken
- Konkrete Aufgabe: eigener Schluesselanhaenger mit dem Parametric
  Name Keychain Creator
- Mini-Aufgabe 'selbst denken' (was geht nicht mit Customizer?)
- Bruecke zu L5+ (TinkerCAD): wo Customizer an Grenzen kommen

L3 markiert das Ende des Onboarding-Pfads — danach freie Wahl im Cockpit.
2026-05-25 15:44:56 +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