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
This commit is contained in:
56
README.md
Normal file
56
README.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# 3D-Druck-AG — Lernplattform
|
||||
|
||||
Web-Plattform für eine 3D-Druck-AG (Klasse 8 MINT, ca. 8-10 SuS, 4 Bambu-Lab-Drucker).
|
||||
|
||||
**Status:** Entwurf. Skelett angelegt, noch nicht lauffähig. Inhalte und Routen werden mit Markus + Herb sukzessive ergänzt.
|
||||
|
||||
## Was die Plattform kann (geplant)
|
||||
|
||||
- **Lektionen**: Pflicht-Block L1-L3 (Drucker-Kennenlernen, fremdes Modell drucken, parametrischer Customizer), danach freier Block (TinkerCAD, OpenSCAD, eigenes Projekt).
|
||||
- **SuS-Cockpit**: eigenes Profil mit Vorname + Tier-Icon + PIN. Projektstand, Druckaufträge, Slot-Reservierungen. Optional Paarung zu 2er-Gruppen.
|
||||
- **Drucker-Übersicht** mit Live-Status via Bambu Cloud-API (oder manuell).
|
||||
- **Slot-Buchung** für die 4 Drucker, Windhund-Prinzip mit Lehrer-Override.
|
||||
- **Stunden-Beginn-Abfrage** ("Was machst du heute?") aggregiert im Lehrer-Dashboard.
|
||||
- **Admin-Inline-Edit** für Lektionen, Software-Seiten, Profile.
|
||||
|
||||
## Für wen ist das?
|
||||
|
||||
- **Primär:** Herb + Markus (Lehrkräfte), die SuS der AG.
|
||||
- **Sekundär:** andere Lehrkräfte, die einen 3D-Druck-Kurs aufsetzen wollen — Code ist MIT-lizenziert (TODO), Setup-Anleitung folgt mit dem ersten Deploy.
|
||||
|
||||
## Schnellstart (lokal, sobald lauffähig)
|
||||
|
||||
```bash
|
||||
git clone <repo-url> 3d.lehrstun.de
|
||||
cd 3d.lehrstun.de
|
||||
python -m venv venv
|
||||
source venv/Scripts/activate # Git-Bash auf Windows
|
||||
# auf Linux/Mac: source venv/bin/activate
|
||||
pip install -r requirements.txt
|
||||
cp .env.beispiel .env # Werte eintragen!
|
||||
python -c "from database import init_db; init_db()"
|
||||
python app.py # http://localhost:5057
|
||||
```
|
||||
|
||||
## Technik-Stack
|
||||
|
||||
- Python 3.11+
|
||||
- Flask + SQLite (kein ORM, plain SQL — wie beim Schwesterprojekt arduino.lehrstun.de)
|
||||
- Bambu Lab Cloud-API für Drucker-Status (`bambulabs_api` oder Code aus `pybambu`)
|
||||
- Vanilla CSS + JS (keine Build-Tools, kein npm)
|
||||
|
||||
## Schwesterprojekte
|
||||
|
||||
- **arduino.lehrstun.de** — Arduino-Kurs Klasse 8. Design-Vorlage und Code-Quelle für Login, Inline-Edit, Lektionen-Modul.
|
||||
- **PummelHummel/Alph** — Feedback-Widget, hier identisch eingebunden.
|
||||
|
||||
## Dokumentation
|
||||
|
||||
- `docs/kurskonzept.md` — vollständiges didaktisches Konzept (für Markus + Herb)
|
||||
- `docs/decisions.md` — Entscheidungs-Log
|
||||
- `CHANGELOG.md`
|
||||
- `CLAUDE.md` — Projektstatus + Quickstart (für Claude/Herb)
|
||||
|
||||
## Lizenz
|
||||
|
||||
TODO (vermutlich MIT, sobald das Repo öffentlich wird).
|
||||
Reference in New Issue
Block a user