Fuizstash - Ablage fuer fuiz-Quizze (MekoTools)
  • Python 69.4%
  • HTML 11.6%
  • CSS 8.7%
  • JavaScript 6.9%
  • Shell 2.3%
  • Other 1.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
mekotools 9eb4dd4c5b
All checks were successful
Abbild bauen und nach GHCR schieben / abbild (push) Successful in 8s
Verdauungswert 87d4688c festnageln, Nachweise zu Change 004
Lauf 18 gruen; das Abbild mit font/woff2 liegt auf flip, Gesundheitsprobe
ok. Change 004: Auftrag, Arbeitsliste, Messwerte, offene Punkte. .gitignore
nimmt die Sicherungen vor dem Digest-Wechsel auf.
2026-10-09 17:04:46 +02:00
.forgejo/workflows Auftrag: nur eigene Marken schieben; Doku: Erstanlage und Sichtbarkeit belegt 2026-10-07 20:59:22 +02:00
.github/workflows Erstanlage-Ablauf: Paket aus dem Repo heraus oeffentlich anlegen 2026-10-07 20:55:27 +02:00
app Abbild nachziehen und Schriften als font/woff2 ausliefern 2026-10-09 17:03:07 +02:00
docs Öffentlicher Katalog: Doku, Lizenzhinweis und Werkzeugdaten 2026-10-09 10:42:56 +02:00
openspec Verdauungswert 87d4688c festnageln, Nachweise zu Change 004 2026-10-09 17:04:46 +02:00
tests Wanderung: Katalogindex erst nach dem Ergänzen der Spalten 2026-10-09 10:40:47 +02:00
zusatz Zusatzlink aus fuiz: ?link= wird vorbelegt und einmal abgelegt (4 Pruefungen) 2026-10-07 21:46:22 +02:00
.env.beispiel Umbenennung: Quizablage -> Fuizstash 2026-10-07 20:32:24 +02:00
.gitignore Verdauungswert 87d4688c festnageln, Nachweise zu Change 004 2026-10-09 17:04:46 +02:00
ausliefern.sh Betrieb zieht das CI-Abbild (digest-genagelt); Auslieferweg und Doku nachgezogen 2026-10-07 21:04:21 +02:00
docker-compose.yml Verdauungswert 87d4688c festnageln, Nachweise zu Change 004 2026-10-09 17:04:46 +02:00
Dockerfile Abbild: Anker zum Spiegel-Repo (org.opencontainers.image.source) 2026-10-07 20:54:46 +02:00
LICENSE Change 003: Öffentlicher Katalog 2026-10-09 10:38:38 +02:00
pytest.ini Quizablage: Ablage fuer fuiz-Quizze (Change 001) 2026-10-07 20:29:34 +02:00
README.md Betrieb zieht das CI-Abbild (digest-genagelt); Auslieferweg und Doku nachgezogen 2026-10-07 21:04:21 +02:00
requirements.txt Quizablage: Ablage fuer fuiz-Quizze (Change 001) 2026-10-07 20:29:34 +02:00
tool.yaml Öffentlicher Katalog: Doku, Lizenzhinweis und Werkzeugdaten 2026-10-09 10:42:56 +02:00

MekoTools-Fuizstash

Ablage für fuiz-Quizze, an der MekoTools-Anmeldung hängend: Quizze liegen auf dem Server, sind geräteunabhängig, wiederherstellbar und werden mit einem Klick als Kopie im Browser geöffnet.

Warum

fuiz hält Quizze ausschließlich im Browser (IndexedDB) und kennt keine Konten: kein Backup, gerätegebunden, auf geteilten Geräten für die nächste Person sichtbar. Diese Ablage ergänzt fuiz um einen Server-Bestand je angemeldeter Lehrkraft — ohne die gespiegelten fuiz-Abbilder zu verändern.

Arbeitsweise

  1. In fuiz ein Quiz öffnen, auf Teilen gehen, den Link kopieren.
  2. In der Ablage einfügen → der Dienst legt eine vollständige Kopie ab (Bilder reisen als Teil des Inhalts mit).
  3. In fuiz öffnen → ein Knopf legt einen dauerhaften fuiz-Eintrag an und schickt den Browser dorthin; das Quiz landet als Kopie im Browser. Ein Klick, kein Datei-Handling.
  4. Löschen schiebt in einen Papierkorb (30 Tage). Endgültiges Löschen entfernt auch den Übernahme-Eintrag in fuiz wieder.

Zwei Personen sehen jeweils nur ihren eigenen Bestand. Ohne Anmeldung gibt es keine Inhalte — die Sperre mekotools-auth steht davor.

Bestandteile

app/main.py           Wege, Zugang, Oberflächen-Aufbereitung
app/datenbank.py      SQLite: Bestand je Person, Papierkorb, Einstellungen, Verlauf
app/fuizspeicher.py   Kopplung an den Teilen-Speicher von fuiz (lesen + eigene Einträge)
app/kennungen.py      Teilen-Link/Kennung lesen und prüfen (Form zuerst!)
app/vorlagen/         HTML-Vorlagen   app/statisch/stil.css   Stil
tests/test_ablage.py  26 Prüfungen
docker-compose.yml    Behälteraufsatz für flip (zieht das Abbild, digest-genagelt)
ausliefern.sh         Spiegeln, Abbild ziehen, Behälter neu erzeugen

Regeln für die Weiterarbeit

  • Jedes neue Vorhaben beginnt als Change unter openspec/changes/<id>/ (proposal.md, design.md, tasks.md, bei Spec-Änderungen specs/<fähigkeit>/spec.md als Delta).
  • Nach der Umsetzung wird das Delta in openspec/specs/ angewendet und der Change nach openspec/changes/archive/ verschoben.
  • Prüfen: cd openspec && OPENSPEC_TELEMETRY=0 npx --yes @fission-ai/openspec@latest validate <id> (das Urteil steht in der ersten Zeile).
  • Belege statt Behauptungen: Messwerte mit Datum, keine erfundenen Zahlen.

Entwickeln

uv venv .venv --python 3.12
uv pip install --python .venv/bin/python -r requirements.txt
.venv/bin/python -m pytest

Bau-Auftrag

Jeder Push auf main löst .forgejo/workflows/abbild.yml aus: der eigene Forgejo-Läufer (flip-01 in der Organisation mekotools) baut das Abbild und schiebt es nach ghcr.io/mekotools/fuizstash (Marken latest und Übergabe-Kennung). Der Betrieb auf flip zieht dieses Abbild, festgenagelt auf den Verdauungswert — der Wirt baut nicht mehr selbst. Voraussetzungen, Fallen und der Weg zum neuen Stand stehen in docs/betrieb.md.

Umgebung

  • FUIZ_KV — Pfad zur kv.db von fuiz im Behälter (dort /fuiz/kv.db)
  • FUIZSTASH_DATEN — Pfad zur eigenen Datenbank (Vorgabe /daten/fuizstash.db)
  • FUIZSTASH_FUIZ_BASIS — Adresse der eigenen fuiz-Instanz für die Übernahme
  • FUIZSTASH_FUIZ_HOSTS — erlaubte Hosts für Teilen-Links (Komma-getrennt)

Inhalte stammen aus der eigenen fuiz-Instanz; fremde Anbieter (z. B. fuiz.org) werden abgelehnt, weil deren Inhalte nicht im eigenen Teilen-Speicher liegen.