Files
qr-tabellen/README.md
2026-07-05 11:36:05 +02:00

2.2 KiB
Raw Blame History

QR-Tabellen

Kleines selbst gehostetes Web-Tool für den Schuleinsatz: CSV-Tabellen (Stationenlernen, Materiallisten, Linksammlungen) werden hochgeladen und als statische HTML-Seite veröffentlicht — Link-Spalten bekommen automatisch QR-Codes. Läuft auf https://table.lehrstun.de (Admin unter /admin/, Basic Auth).

Die Dateneingabe bleibt bewusst in Excel/LibreOffice; ausgetauscht wird nur CSV. QR-Codes werden lokal per segno erzeugt — kein externer API-Aufruf (DSGVO/Schulkontext).

Workflow

  1. Tabelle anlegen (/admin/neu): Spalten benennen und Typ wählen (text, text_long, number, date, url, rating_5).
  2. CSV-Vorlage herunterladen — Semikolon + UTF-8-BOM, öffnet in deutschem Excel/LibreOffice direkt korrekt.
  3. Befüllen in Excel/LibreOffice, als CSV speichern.
  4. In die Dropzone ziehen — die Zieltabelle wird am Dateinamen erkannt, sonst an der Spalten-Signatur, sonst manuell wählbar. Validierungsfehler (kaputte URLs, Bewertung außerhalb 15) werden mit Zeile/Spalte gemeldet; fehlerhafte CSVs werden komplett abgelehnt.
  5. Fertig: Seite liegt unter https://table.lehrstun.de/<slug>/, jede Link-Zelle mit QR-Code. Die Linkliste im Admin zeigt alle Tabellen mit QR-Code und allen CSV-Versionen zum Download.

Technik

  • Python 3.12+ · Flask · segno · gunicorn (nur Produktion) — sonst Stdlib
  • Öffentliche Seiten: beim Upload fertig gerendertes, in sich geschlossenes HTML (QR als Inline-SVG), von Nginx statisch ausgeliefert — bleiben auch bei gestoppter App online
  • Admin-Panel: Flask hinter Nginx Basic Auth, Ablage im Dateisystem (data/tables/<slug>/schema.json + versions/*.csv), keine Datenbank

Entwicklung

python -m venv venv
venv/Scripts/pip install -r requirements.txt   # Windows
venv/Scripts/python -m flask --app app.main run  # Admin: http://localhost:5000/admin/
venv/Scripts/python tests/test_engine.py         # Engine-Selbsttest

Deployment (Hetzner)

Details in deploy/ (systemd-Unit + Nginx-Vhost) und CLAUDE.md. Update:

ssh herb@46.225.114.15
cd ~/qr-tabellen && git pull && sudo systemctl restart qr-tabellen