27 lines
1.6 KiB
Markdown
27 lines
1.6 KiB
Markdown
|
|
# Entscheidungs- und Änderungslog
|
||
|
|
|
||
|
|
## 2026-07-05 — Projektstart (MVP)
|
||
|
|
- **Stack:** Python/Flask + segno statt Node (Briefing-Vorschlag). Begründung:
|
||
|
|
Hetzner-Deploy-Muster ist Python + systemd; `csv` ist Stdlib, segno rendert
|
||
|
|
QR als SVG ohne weitere Abhängigkeiten. Herbs Entscheidung nach Vorlage.
|
||
|
|
- **Scope-Kürzungen gegenüber Briefing:** kein XLSX-Upload (CSV reicht, Excel/LO
|
||
|
|
können das), Schema-Designer minimal (Name + Typ), keine Süßholz-Features.
|
||
|
|
- **Architektur-Trennung:** öffentliche Seiten sind beim Upload fertig gerendertes,
|
||
|
|
in sich geschlossenes HTML (QR inline als SVG) → Nginx statisch; der
|
||
|
|
Flask-Prozess existiert nur fürs Admin-Panel (Dropzone, Schema-Designer,
|
||
|
|
Linkliste, Versionen) hinter Nginx Basic Auth.
|
||
|
|
- **Herbs Erweiterung zum Briefing:** Admin-Panel mit Dropzone, automatischer
|
||
|
|
Versions-Zuordnung (Dateiname → Header-Signatur → manuelle Wahl),
|
||
|
|
CSV-Versionen jederzeit downloadbar, Linkliste mit QR pro Tabelle.
|
||
|
|
Das beantwortet die offene Briefing-Frage: Upload läuft auf dem Server,
|
||
|
|
nicht als lokales CLI.
|
||
|
|
- **Validierung:** fehlerhafte CSVs werden komplett abgelehnt (Zeile/Spalte in
|
||
|
|
der Fehlermeldung), nichts wird halb veröffentlicht.
|
||
|
|
- **Encoding-Realität:** Vorlagen mit Semikolon + UTF-8-BOM (deutsches Excel);
|
||
|
|
Upload-Decoder probiert utf-8-sig, dann cp1252; Delimiter wird gesnifft.
|
||
|
|
- **Design:** Tokens als CSS-Variablen in `table.css`; Systemfont-Fallbacks für
|
||
|
|
Source Serif 4 / Fira Sans, bewusst kein Google-CDN (Schulkontext). Vertiefung
|
||
|
|
später.
|
||
|
|
- **Global:** Docker-Default aus den Infrastruktur-Regeln gestrichen — Docker
|
||
|
|
nur noch als Vorschlag für Projekte mit eigenem Ökosystem.
|