strichfrei/Release Notes

Release Notes

Alle Neuerungen, Verbesserungen und Bugfixes — von Anfang an.

Legende:NeuVerbessertBehobenEntfernt

v0.74.0

Aktuell

Der QR-Code bei Zahlungsanfragen ließ sich über „Speichern" und „Teilen" in Produktion nicht anklicken — betraf App, PWA, Kiosk und Tresen gleichermaßen und ist jetzt behoben. Außerdem behoben: beim Löschen oder Anonymisieren eines Kontos wurden hinterlegte Push-Benachrichtigungs-Daten nicht immer zuverlässig mitentfernt, und eine bestehende Sonderkondition wurde in einem seltenen Randfall bei einem Tarifwechsel während der Intro-Phase nicht korrekt für den Preis nach Intro-Ende übernommen. Die Glocke zeigt die Anzahl ungelesener Benachrichtigungen jetzt noch zuverlässiger an, automatische Mahnungen bei offenem Saldo laufen robuster durch, und der Geräte-Zugang für Kiosk/Tresen zeigt bei einem Verbindungsproblem jetzt eine klare Fehlermeldung statt kommentarlos hängen zu bleiben. Dazu wie gewohnt diverse interne Sicherheits-Absicherungen und Vorarbeiten für die nativen iOS-/Android-Apps (noch nicht im App Store bzw. Play Store verfügbar), u. a. an der Face-ID-/Codesperre-Logik.

NeuNative Apps (in Vorbereitung): Face-ID-/Codesperre-Logik in mehreren Runden weiter gehärtet, u. a. eine doppelte Abfrage beim Kaltstart der App behoben
VerbessertDie Glocke bzw. das Meldungen-Symbol zeigt die Anzahl ungelesener Benachrichtigungen jetzt noch zuverlässiger in Echtzeit an
VerbessertAutomatische Mahnungen bei offenem Saldo laufen jetzt robuster durch — ein Fehler bei einem einzelnen Mitglied blockiert nicht mehr die nachfolgenden
VerbessertNative Apps (in Vorbereitung): diverse UI-Konsolidierungen und Kleinigkeiten (u. a. Kiosk-/Tresen-Navigation, Marken-Farben)
BehobenQR-Code bei Zahlungsanfragen ließ sich über „Speichern" und „Teilen" in Produktion nicht anklicken — betraf App, PWA, Kiosk und Tresen gleichermaßen
BehobenEine bestehende Sonderkondition wurde in einem seltenen Randfall bei einem Tarifwechsel während der Intro-Phase nicht korrekt für den Preis nach Intro-Ende übernommen
BehobenBeim Löschen oder Anonymisieren eines Kontos wurden hinterlegte Push-Benachrichtigungs-Daten (Web und nativ) nicht immer zuverlässig mitentfernt
BehobenKiosk/Tresen: Geräte-Zugang (Erstellen/Löschen, Passwort ändern, Tresen-PIN) blieb bei einem Verbindungsproblem kommentarlos hängen — zeigt jetzt eine klare Fehlermeldung
BehobenSicherheit: diverse interne Berechtigungsprüfungen bei internen Datenbankfunktionen konsolidiert und gehärtet
BehobenNative Apps (in Vorbereitung): Android — die Codesperre ließ sich über Sidebar → Einstellungen umgehen

v0.73.0

Weitere interne Vorarbeiten für die nativen iOS-/Android-Apps (noch nicht im App Store bzw. Play Store verfügbar, werden im Hintergrund vorbereitet): Push-Benachrichtigungen sind jetzt für alle Meldungstypen möglich, bei denen sie in den persönlichen Einstellungen wählbar sind — neu dabei Zahlungsanfragen (gestellt/bearbeitet) und Mahnungen bei offenem Saldo. Aktivierst du Push für einen Meldungstyp, wird automatisch auch die In-App-Benachrichtigung mit aktiviert, damit eine Meldung nach dem Wegwischen des Hinweises nicht spurlos verschwindet. Die Glocke bzw. das Meldungen-Symbol zeigt die Anzahl ungelesener Benachrichtigungen jetzt zuverlässiger in Echtzeit an, inklusive eines neuen Hinweis-Badges auf dem „Meldungen"-Symbol der künftigen App-Navigation. Außerdem: die Zurück-Navigation aus Hilfe & Support, Impressum, Datenschutz und Nutzungsbedingungen wurde nachgebessert, und ein im Rahmen der Vorbereitung entdeckter Fehler behoben, durch den „Bestellen" unter bestimmten technischen Rahmenbedingungen mit einem allgemeinen Verbindungsfehler abbrechen konnte. Die Datenschutzerklärung wurde um den für native Push-Benachrichtigungen genutzten Dienstleister (Google Firebase Cloud Messaging) ergänzt.

NeuNative Apps (in Vorbereitung): Push-Benachrichtigungen jetzt auch für „Zahlungsanfrage bearbeitet" und „Neue Zahlungsanfrage" verfügbar
NeuNative Apps (in Vorbereitung): Mahnungen bei offenem Saldo können jetzt ebenfalls per Push zugestellt werden
NeuNative Apps (in Vorbereitung): Hinweis-Badge mit der Anzahl ungelesener Meldungen auf dem „Meldungen"-Symbol der App-Navigation
VerbessertAktivierst du Push für einen Benachrichtigungstyp, wird die In-App-Benachrichtigung (Glocke) automatisch mit aktiviert — sonst könnte eine Meldung nach dem Wegwischen des Hinweises spurlos verschwinden
VerbessertDie Glocke bzw. das Meldungen-Symbol zeigt die Anzahl ungelesener Benachrichtigungen jetzt zuverlässig in Echtzeit an, auch wenn mehrere Meldungen kurz hintereinander gelesen werden
VerbessertDatenschutzerklärung um den für native Push-Benachrichtigungen genutzten Dienstleister (Google Firebase Cloud Messaging) ergänzt
BehobenNative Apps (in Vorbereitung): Aus Hilfe & Support, Impressum, Datenschutz und Nutzungsbedingungen (erreichbar über das Menü) ließ sich teilweise nicht mehr zurücknavigieren
BehobenIm Rahmen der Vorbereitung entdeckt: „Bestellen" konnte unter bestimmten technischen Rahmenbedingungen mit einem allgemeinen Verbindungsfehler abbrechen

v0.72.0

Der Tresen hat jetzt denselben Storno-Schnellzugriff wie der Kiosk: eine gerade aufgegebene Bestellung lässt sich direkt vom Bestellbildschirm stornieren, ohne über den Verlauf zu gehen. Neu: Gastkonten können jetzt selbst eine Runde ausgeben — die Gültigkeit ist automatisch auf das Ende der Gastkonto-Gültigkeit begrenzt, und läuft ein Gastkonto ab, werden dessen noch offene Runden automatisch geschlossen; für alle Ausgaben (auch abseits von Gastkonten) gilt außerdem ein generelles Maximum von 1 Monat Gültigkeit. Dazu mehrere Bugfixes aus einer ausführlichen Live-Testrunde: Runden mit mehreren Getränken pro Person zeigten nach dem ersten Claim fälschlich schon „voll ausgeschöpft" statt der echten Anzahl, das Profilbild fehlte kurzzeitig auf dem Kiosk-PIN-Bildschirm, und die Sperr-Meldung nach mehreren PIN-Fehlversuchen nennt jetzt die tatsächliche Restzeit statt eines pauschalen Admin-Hinweises. Außerdem: umfangreiche interne Code-Konsolidierung zwischen Kiosk und Tresen (Bestellen, Stornieren, Runden, Zahlungsanfragen, Offline-Betrieb) — dabei wurde auch eine Sicherheitslücke in einer neuen, zuvor unveröffentlichten Tresen-Funktion vor dem Release geschlossen.

NeuTresen: Storno-Schnellzugriff „Letzte Bestellung" — genau wie am Kiosk lässt sich eine gerade aufgegebene Bestellung direkt vom Bestellbildschirm stornieren, ohne über den Verlauf zu gehen
NeuKiosk/Tresen: Gastkonten können jetzt selbst „Runde ausgeben" nutzen — die Gültigkeit wird automatisch auf das Ende der Gastkonto-Gültigkeit begrenzt, und noch offene Runden eines Gastkontos werden bei dessen Deaktivierung automatisch geschlossen
NeuFür alle Ausgaben (Runden, Gebinde, Pools) gilt jetzt ein generelles Maximum von 1 Monat für die Gültigkeit
BehobenKiosk/Tresen: Runden mit mehreren Getränken pro Person zeigten nach dem ersten Claim sofort „voll ausgeschöpft" (z. B. „3/3") statt der tatsächlichen beanspruchten Anzahl
BehobenKiosk: Profilbild fehlte auf dem PIN-Eingabe-Bildschirm, es wurden nur Initialen angezeigt
BehobenKiosk: Sperr-Meldung nach mehreren PIN-Fehlversuchen nennt jetzt die tatsächliche Restzeit statt eines pauschalen „wende dich an den Admin"-Hinweises — die Sperre läuft ohnehin automatisch ab
BehobenKiosk/Tresen: Zahlungsanfragen über den Standard-Weg (ohne Tresen-Direktbuchung) erschienen in der Admin-Ansicht erst nach bis zu 30 Sekunden statt sofort
BehobenKiosk/Tresen: Schnell aufeinanderfolgende Aktionen im Verlauf (z. B. mehrere Runden-Claims kurz hintereinander) konnten durch eine Ladereihenfolge-Ungenauigkeit kurzzeitig wieder aus der Anzeige verschwinden
VerbessertKiosk/Tresen: umfangreiche interne Code-Konsolidierung (Bestellen, Stornieren, Runden, Zahlungsanfragen, Offline-Betrieb) — vereinheitlicht vorher doppelt gepflegte Logik zwischen Kiosk und Tresen

Ältere Versionen

September 20262 Releases · 0.71.00.70.0

v0.71.0

Komplett überarbeitetes Admin-Dashboard: eine persistente Seitenleiste statt einzelner Zurück-Buttons, klar getrennte Bereiche (Übersicht, Mitglieder, Buchen, Finanzen, Produkte, Bestand, Kiosk/Tresen, Statistiken, Automationen, Export, Einstellungen) und mobil-optimierte Tabellen ohne horizontales Scrollen. Kiosk/Tresen ist jetzt ein eigener Konfigurationspunkt mit übersichtlicher Geräte-Zugang-Struktur. Neu: der Abrechnungsbeleg — ein interner Buchungsbeleg (keine Rechnung) für ein oder mehrere Konten wie Gemeinschaftskonten, einmalig als PDF oder wiederkehrend automatisch per E-Mail. Zahlungsinformationen lassen sich jetzt unabhängig von der Aktivierung der Zahlungsfunktion pflegen. Sicherheitsupdate: eine kritische Rechte-Lücke bei zahlungsrelevanten Datenbankfunktionen wurde geschlossen. Außerdem: Benachrichtigungs-Einstellungen (z. B. E-Mail bei neuer Zahlungsanfrage) ließen sich für Kassierer und Bestandsmanager bisher nicht dauerhaft speichern — jetzt behoben.

NeuAdmin-Dashboard komplett überarbeitet: persistente Seitenleiste (Desktop) bzw. Hamburger-Menü (Mobile) statt einzelner Zurück-Buttons auf jeder Seite — Mitglieder und Buchen sind jetzt eigene Bereiche, Kontostände/Zahlungsanfragen unter Finanzen gebündelt
NeuKiosk/Tresen ist jetzt ein eigener Konfigurationspunkt mit klar getrennter Geräte-Zugang-Struktur (Passwort, Kiosk-Link/QR, Tresen-Link/QR inkl. Tresen-PIN)
NeuAbrechnungsbeleg (Export & Automation): interner Buchungsbeleg — bewusst keine Rechnung im steuerrechtlichen Sinne — für ein oder mehrere Konten (z. B. Gemeinschaftskonten). Als Sofort-Export mit frei wählbarem Zeitraum oder als wiederkehrende Automation mit automatischem Mailversand; bei mehreren Konten wahlweise ein gemeinsamer oder je Konto ein eigener Beleg
VerbessertZahlungsinformationen (IBAN, PayPal, Hinweistext) lassen sich jetzt unabhängig von der Aktivierung der Zahlungsfunktion pflegen — vorher ließen sie sich nur bei bereits aktivierter Funktion bearbeiten, und ein Deaktivieren löschte alle hinterlegten Daten statt sie nur auszublenden
VerbessertMitglieder-, Zahlungsanfragen- und Produktlisten zeigen auf Desktop jetzt eine echte Tabelle, auf Mobile eine Karten-Ansicht — kein horizontales Scrollen mehr
VerbessertStatistiken als Tab-Leiste statt fünf einzelner Unterseiten; die Tab-Leiste ist auf Mobile jetzt sauber im Raster statt teils außerhalb des Bildschirms
VerbessertÜbersicht zeigt jetzt die Veränderung gegenüber Vormonat/Vorwoche direkt unter den Kennzahlen, eine Automationen-Kachel und die letzten Buchungen
Verbessert„Ansicht wechseln" im User-Menü heißt jetzt „Dashboard", mit kürzeren Rollenbezeichnungen im Dropdown (Admin/Kassierer/Bestand)
VerbessertKiosk/Tresen: Änderungen an Produkten und Gastkonten erscheinen jetzt sofort in der Mitgliederliste/im Bestand statt erst nach bis zu 90 Sekunden
BehobenSicherheit: Eine kritische Rechte-Lücke erlaubte direkten Zugriff auf zahlungsrelevante Datenbankfunktionen (z. B. Zahlungen buchen) ohne die dafür vorgesehene Berechtigungsprüfung — geschlossen
BehobenBenachrichtigungs-Einstellungen (z. B. E-Mail bei neuer Zahlungsanfrage) ließen sich für Kassierer und Bestandsmanager nicht dauerhaft speichern — die Änderung wirkte übernommen, ging aber nie in der Datenbank an
BehobenAutomationen: der nächste Ausführungstermin sprang bei jedem Speichern einen Monat nach vorn, auch ohne Änderung am Zeitplan selbst

v0.70.0

Umfangreiches Sicherheits- und Stabilitäts-Update nach einem vollständigen internen Audit der gesamten App. Mehrere Absicherungen gegen Missbrauch bei Registrierung und Bestellungen, robustere Stornierungen und Zahlungsanfragen bei gleichzeitigen Aktionen, und ein Offline-Sync am Kiosk, der bei einer zwischenzeitlich deaktivierten Position nur noch diese eine Position auslässt statt die komplette Bestellung zu verwerfen. „Falsche E-Mail-Adresse eingegeben?" funktioniert jetzt zuverlässig und steht zusätzlich beim Login zur Verfügung, falls der Tippfehler erst Tage nach der Registrierung auffällt. Kiosk und Tresen fragen den Server jetzt seltener und gebündelt ab — spürbar weniger Hintergrund-Traffic bei gleichbleibend schneller Aktualisierung. Änderungen an Zahlungen, Stornierungen und Zahlungsanfragen erscheinen jetzt sofort auf allen offenen Admin-Ansichten statt erst nach einem manuellen Neuladen.

Verbessert„Falsche E-Mail-Adresse eingegeben?" funktioniert jetzt zuverlässig (konnte in bestimmten Fällen fehlschlagen) und ist zusätzlich im Login-Formular verfügbar — falls der Tippfehler erst Tage nach der Registrierung beim nächsten Anmeldeversuch auffällt
VerbessertKiosk/Tresen: Deutlich weniger Hintergrund-Anfragen an den Server bei gleichbleibend schneller Aktualisierung — Änderungen wie neue Bestellungen, Runden und Mitglieder kommen weiterhin praktisch sofort an
VerbessertAdmin: Neue Zahlungen, Stornierungen und Zahlungsanfragen erscheinen jetzt sofort auf allen offenen Admin-Ansichten (z. B. Buchungsübersicht auf einem zweiten Gerät), statt erst nach manuellem Neuladen sichtbar zu werden
VerbessertKiosk: Wird ein Gastkonto neu angelegt oder deaktiviert, taucht es jetzt sofort in der Mitgliederliste am Kiosk auf statt erst mit Verzögerung
VerbessertKiosk: Offline-Bestellungen mit unplausibel hohen Mengen werden jetzt serverseitig abgefangen; weicht der beim Sync gebuchte Preis vom offline angezeigten Preis ab, wird das dem Kiosk-Betreiber jetzt angezeigt statt unbemerkt zu bleiben
VerbessertWartungsmodus deckt jetzt auch Passwortänderung, E-Mail-Änderung und Kontolöschung ab
BehobenSicherheit: Eine Schwachstelle auf der Bestätigungsseite nach der Registrierung konnte für Phishing-Weiterleitungen missbraucht werden — geschlossen
BehobenSicherheit: Die Existenzprüfung von E-Mail-Adressen bei der Registrierung ließ sich missbrauchen, um systematisch herauszufinden, welche Adressen bereits registriert sind — die Prüfung ist jetzt zusätzlich per IP-Adresse begrenzt
BehobenBestellungen: Ein doppeltes Stornieren derselben Bestellung (z. B. durch Doppelklick oder erneuten Versuch) konnte die freigegebene Rundenmenge doppelt gutschreiben — behoben
BehobenTresen: Die Kreditlimit-Prüfung bei Direktbuchungen am Tresen war gegen zwei nahezu gleichzeitige Einzahlungen desselben Mitglieds nicht abgesichert — behoben
BehobenKiosk: Ein interner Reihenfolge-Fehler in der Autorisierungsprüfung beim Offline-Sync wurde behoben (durch eine spätere Migration versehentlich wieder eingeführt)
BehobenZahlungsanfragen: Ein gleichzeitiges zweifaches Bestätigen derselben Zahlungsanfrage ist jetzt ausgeschlossen
BehobenDiverse weitere Absicherungen im Hintergrund: zusätzliches Rate-Limiting auf mehreren Endpunkten, verschärfte Eingabevalidierung, striktere Datenbank-Constraints
August 202611 Releases · 0.69.00.59.0

v0.69.0

Rechtliche Neuerungen: Auftragsverarbeitungsvertrag (AVV) nach Art. 28 DS-GVO ist jetzt als separates Dokument abgeschlossen und jederzeit im Datenschutzbereich einsehbar. Bei der Registrierung gibt es eine eigene Checkbox für die Widerrufsbelehrung nach § 356 Abs. 4 BGB. Sicherheitsupdate: Login und Registrierung sind jetzt gegen Brute-Force abgesichert — nach 10 Fehlversuchen in 15 Minuten wird die E-Mail-Adresse temporär gesperrt. Im Footer gibt es jetzt einen Direktlink zur strichfrei Facebook-Seite. Kiosk: Die Bezeichnung „Kiste" heißt jetzt einheitlich „Gebinde". In der Produktverwaltung lassen sich im Faktor-Feld nur noch ganze positive Zahlen eingeben. Außerdem mehrere Bugfixes und interne Sicherheitsverbesserungen.

NeuAuftragsverarbeitungsvertrag (AVV): Nach Art. 28 Abs. 3 DS-GVO wird mit strichfrei jetzt automatisch ein AVV abgeschlossen — bei bestehenden Accounts bei der nächsten Anmeldung, bei neuen Accounts bei der Registrierung. Das Dokument ist jederzeit auf der Datenschutzseite einsehbar
NeuWiderrufsbelehrung: Neue separate Checkbox bei der Registrierung mit expliziter Zustimmung zum sofortigen Leistungsbeginn nach § 356 Abs. 4 BGB
NeuFacebook-Seite: Im Footer gibt es jetzt einen Direktlink zur strichfrei Facebook-Seite (facebook.com/strichfrei)
NeuKontaktformular auf /impressum: Neben der E-Mail-Adresse gibt es jetzt auch das Kontaktformular als direkten Kontaktweg auf der Impressums-Seite
VerbessertSicherheit: Login und Registrierung sind jetzt gegen Brute-Force geschützt — nach 10 Fehlversuchen innerhalb von 15 Minuten wird die E-Mail-Adresse temporär gesperrt. Lockouts werden per Sentry protokolliert
VerbessertKiosk & Tresen: Die Bezeichnung „Kiste" im Runden-Filter und Abschnittstitel heißt jetzt einheitlich „Gebinde"
VerbessertProduktverwaltung: Das Faktor-Feld akzeptiert nur noch ganze positive Zahlen — Dezimalstellen, Minus und Sonderzeichen werden direkt blockiert
BehobenSicherheit: Fehlversuche beim Login wurden auf Vercel durch einen Timing-Fehler nicht immer in die Datenbank geschrieben — das Rate-Limiting konnte dadurch umgangen werden. Behoben
BehobenKiosk/Tresen: Der interne Idempotenz-Schlüssel (Schutz gegen Doppelbuchungen bei Verbindungsabbrüchen) konnte sich bei einem Nutzerwechsel (Timeout, Zurück-Button) versehentlich auf die nächste Session übertragen — behoben
BehobenDatenschutz: Bei Runden-Benachrichtigungen per E-Mail konnte in seltenen Fällen die E-Mail-Adresse des Sponsors statt seines Namens angezeigt werden (wenn alle Namensfelder leer waren) — behoben
BehobenDatenschutz: Supabase-Entität in der Datenschutzerklärung auf Supabase Ireland Ltd. (EU-Niederlassung) korrigiert
BehobenPlan-Checkout: Der Proration-Hinweis wurde bei Texten mit „ca." an falscher Stelle umgebrochen — jetzt wird korrekt am Satzende geteilt
BehobenAGB §9: AVV-Klausel an die neue rechtliche Struktur (separates AVV-Dokument) angepasst

v0.68.0

Neue Buchungstypen für Admins: Schulderlass und Anfangsbestand. Das Kontostand-Modal hat jetzt vier Modi — Einzahlung, Auszahlung, Schulderlass und Anfangsbestand. Beim Schulderlass ist ein Pflichtfeld „Grund" hinterlegt, der Betrag zählt nicht als Einzahlung. Der Anfangsbestand eignet sich für Überträge aus Papierlisten (positiv = Guthaben mitgebracht, negativ = Schulden) und lässt sich nachträglich korrigieren. In Statistiken wird der bisherige KPI „ausgebucht" zu „Schuldenerlass" umbenannt und schließt jetzt auch Erlasse an reguläre Mitglieder ein. Neu: Live-Kontostand-Vorschau direkt bei der Eingabe im Kontostand- und Umlage-Modal. Dazu mehrere Kiosk-Bugfixes: Reload-Schleife in bestimmten Szenarien, Kaltstart-Fehler bei STRICHFREI-B sowie ein Datenbankfehler bei der Kiosk-Account-Löschung, außerdem drei Fremdschlüssel-Constraints auf users.id auf ON DELETE SET NULL korrigiert.

NeuSchulderlass: Als Admin kannst du einem Mitglied Schulden direkt erlassen — das Kontostand-Modal öffnet dafür den Modus „Schulderlass" (nur sichtbar bei offenem Saldo). Pflichtfeld „Grund" (z. B. Austritt, Vereinbarung Vorstand). Zählt nicht als Einzahlung und erscheint als „Schuldenerlass" in den Statistiken
NeuAnfangsbestand: Überträge aus Papierlisten lassen sich als Anfangsbestand hinterlegen (positiv = Guthaben mitgebracht, negativ = Schulden). Nur für Admins, nicht für Gastkonten. Kann nachträglich korrigiert werden — der bestehende Eintrag wird dabei ersetzt, keine Duplikate
VerbessertLive-Kontostand-Vorschau: Im Kontostand-Modal und Umlage-Modal wird direkt bei der Eingabe angezeigt, wie sich der Saldo ändern würde — z. B. „8,80 € Schulden → 1,20 € Guthaben"
VerbessertStatistik-KPI „ausgebucht" heißt jetzt „Schuldenerlass" und schließt neben Gastkonto-Abschreibungen jetzt auch Erlasse an reguläre Mitglieder ein
BehobenKiosk: Reload-Schleife in bestimmten Verbindungsszenarien behoben — Redirect-Antworten lösten fälschlich einen Neustart des Deployment-Checks aus
BehobenKiosk: Kaltstart-Fehler bei STRICHFREI-B-Konten nach Account-Löschung behoben (RLS 406 + ungültiger Streaming-Redirect)
BehobenKiosk: Account-Löschung schlug mit Datenbankfehler FK-23503 fehl — Lösch-Reihenfolge (Payments vor Membership) korrigiert
BehobenDatenbank: 3 Fremdschlüssel-Constraints auf users.id auf ON DELETE SET NULL korrigiert — verhinderte das Löschen von Nutzerkonten in bestimmten Konstellationen

v0.67.0

Neukundenangebot: Neue Vereine können strichfrei 2 Monate zu 90 % Rabatt testen — danach automatisch Vollpreis, ohne Überraschungen. Das Angebot erscheint auf /pricing, der Homepage und im Checkout-Modal. Dazu: E-Mail-Adresse ändern ist jetzt möglich — auf dem Bestätigungsscreen und im Profil. Außerdem: Beta-Ende 31.12.2026 wird auf Homepage und Pricing kommuniziert, §19-UStG-Hinweis ergänzt, BETA-Label aus allen E-Mails entfernt und Self-Service Org-Registrierung im Hintergrund vorbereitet. Außerdem: Beta-Nutzer können ihren Tarif jetzt schon vor Beta-Ende proaktiv vormerken — er wird als geplante Bestellung angelegt und erst am 31.12.2026 automatisch aktiv (kein sofortiger Kauf, keine vorzeitige Änderung von Tarif und Mitgliederzahl). Bugfix: Preisanzeige im Checkout-Modal zeigte für Free-Orgs mit gesetztem Rechnungsplan falsche Preise.

NeuNeukundenangebot: 2 Monate zu 90 % Rabatt für neue Vereine (nie bezahlt, nicht Beta) — Basis 0,98 €, Premium 1,98 €, Pro 2,98 €; danach automatisch Vollpreis
Neu/pricing und Homepage #preise: „Neukundenangebot"-Badge mit Rabattpreis in den Monatlich-Kacheln — nur monatlich, klar als zeitlich begrenzt gekennzeichnet
NeuCheckout-Modal: Neukundenangebot wird automatisch erkannt und als eigener Bestellweg angeboten (Zeitraum: 2 Monate fest, danach Vollpreis)
NeuTier-Upgrade während der Intro-Phase: App berechnet den anteiligen Aufpreis und legt ihn als offene Bestellung an — für die manuelle Rechnungsstellung
NeuIn-App-Banner zeigt während der Intro-Phase den Ablaufhinweis wenn auto_renew deaktiviert ist
NeuSuperadmin: Intro-Angebot-Status (aktiv bis / genutzt am) in der Org-Detailansicht sichtbar
NeuRegistrierung: „Falsche E-Mail-Adresse eingegeben?" — auf dem Bestätigungsscreen lässt sich die Adresse direkt korrigieren; neue Bestätigungsmail wird automatisch verschickt
NeuProfil: neue Sektion „E-Mail-Adresse ändern" — Passwort als Sicherheitsgate, Bestätigungslink an neue Adresse, Aktivierung erst nach Klick
NeuSelf-Service Org-Registrierung (Backend): Nach der Registrierung können Nutzer eigenständig eine Organisation anlegen — Slug wird automatisch generiert. Button auf dem Dashboard folgt zum Beta-Exit am 31.12.2026
NeuPricing-Seite und Homepage: Pflichthinweis „Gemäß §19 UStG wird keine Umsatzsteuer ausgewiesen." ergänzt
NeuBeta-Prebook: Beta-Nutzer können ihren gewünschten Tarif schon jetzt proaktiv vormerken — die Bestellung landet als „geplant" und wird erst automatisch am 31.12.2026 aktiv; Tarif und Mitgliederzahl bleiben bis Beta-Ende unverändert
VerbessertHomepage und /pricing: Beta-Ende 31.12.2026 klar kommuniziert — inklusive Erklärung was danach gilt (Jahrestarif, aber Beta-Mitglieder zahlen dauerhaft weniger)
VerbessertHomepage und /pricing: Formulierung „Danach wird es kostenpflichtig" statt des missverständlichen „Ab 1. Januar 2027 gilt ein Jahrestarif"
VerbessertCheckout-Modal: Bestätigungsscreen zeigt bei Beta-Prebook „✓ Tarif vorgemerkt" mit Erklärung statt des falschen „Tarif aktiv"
VerbessertPricing-Seite und Homepage: Fußnoten mit Erklärung zum Beta-Vorteil (*) und zum Neukundenangebot (**) hinzugefügt
VerbessertBETA-Label aus allen automatisch versendeten E-Mails entfernt (Anmeldung, Magic Link, Einladung, Passwort-Reset, E-Mail-Änderung, Bestellbestätigung)
BehobenCheckout-Modal: Preisanzeige für Free-Orgs mit gesetztem Rechnungsplan (z. B. nach Beta-Prebook) zeigte falsche, um eine Stufe erhöhte Preise — Premium erschien zum Pro-Preis, Pro ohne Preis

v0.66.0

Drei neue SEO-Marketingseiten: /pricing (Preisübersicht mit Tarif-Kacheln, Beta-Hinweis und FAQ), /digitale-strichliste (allgemeine Landingpage) und /digitale-strichliste-feuerwehr (Feuerwehr-spezifisch) — alle mit sauberem Metadata, Sitemap-Einträgen und dem einheitlichen strichfrei-Design. Navigation und Footer verweisen jetzt auf /pricing statt auf den Homepage-Anker. Außerdem: Die Plan-Ablauf-Banner-Logik wurde korrigiert — auto_renew wird für Free-Tarife nicht mehr berücksichtigt (ein „Auto-Renew" auf Free verlängert nichts) und der Tarif wird direkt aus der Datenbank gelesen statt abgeleitet. Auf der Homepage wurde die Darstellung der H1-Überschrift auf Desktop gefixt (grüne Zeile blieb zuvor manchmal auf drei Zeilen), und die Nav-Anker (#funktionen, #faq, #kontakt) navigieren jetzt zuverlässig zur richtigen Stelle — zuvor wurde auf Safari und Chrome zu weit oben gestoppt.

NeuNeue Seite /pricing: Preisübersicht mit allen vier Tarifen, Mehrwert-Kacheln, Beta-Lifetime-Lock-Hinweis und FAQ — verlinkt aus Nav und Footer
NeuNeue Seite /digitale-strichliste: allgemeine Landingpage für Vereine & Feuerwehren (Papier vs. Digital, Features, Zielgruppen, CTA)
NeuNeue Seite /digitale-strichliste-feuerwehr: Feuerwehr-spezifische Landingpage mit 8 Features, Vergleichstabelle, 3-Schritte-Ablauf und CTA
VerbessertNav- und Footer-Link „Preise" zeigt jetzt auf /pricing statt auf den Homepage-Anker /#preise
VerbessertHomepage H1: max-w-3xl-Beschränkung entfernt — grüne Zeile „für Vereine & Feuerwehren." läuft nicht mehr auf 3 Zeilen
VerbessertHomepage-Copy: Subline überarbeitet, „Kiosk" → „Automation" in der USP-Zeile, „Lager" → „Bestand" in der Feature-Zeile
VerbessertPlan-Ablauf-Banner: auto_renew wird für Free-Tarife nicht mehr als Ausschluss-Kriterium gewertet — Free-Orgs sehen den Ablauf-Hinweis auch wenn auto_renew=true (Default)
VerbessertPlan-Ablauf-Banner: Tarif wird jetzt direkt als Feld aus der Datenbank gelesen und in OrgAccess weitergegeben statt aus Status-Feldern abgeleitet
BehobenNav-Anker #funktionen, #faq, #kontakt navigierten zu weit oben — Safari und Chrome ignorierten scroll-margin-top bei programmatischem scrollIntoView. HashScroll nutzt jetzt explizites scrollTo mit gemessener Nav-Höhe; zusätzlich scroll-padding-top auf html für native Anker-Navigation

v0.65.0

Interne Vorarbeiten für die native iOS-App: Tab-Bar-Navigation (Dashboard, Bestellen, Rangliste, Profil), gebrandeter Splash-Screen in Vereinsfarben, Pull-to-Refresh und korrekte Darstellung auf allen iPhones (Notch, Dynamic Island, Safe Area) — die App ist noch nicht im App Store verfügbar, wird aber aktiv vorbereitet. Dazu vier Bugfixes: Echtzeit-Updates brachen nach schnellem Tab-Wechsel manchmal ab, Produktbilder wurden auf iOS-Geräten wegen eines WKWebView-Kompatibilitätsproblems nicht angezeigt (WebP-Decoder), die Rückkehr zum Dashboard per Tab-Leiste scrollte nicht zuverlässig an den Anfang, und die Kiosk-Bestellbestätigung zeigte ein nicht-zentriertes Logo. Die Bestellbestätigung erscheint außerdem jetzt als zentriertes Modal statt inline in der Produktliste — kein Scroll-Sprung mehr nach dem Bestellen. Auf der Homepage gibt es bereits einen Hinweis, dass strichfrei schon jetzt als PWA auf dem Homescreen gespeichert werden kann.

NeuNative iOS-App in Vorbereitung: Tab-Bar-Navigation (Dashboard, Bestellen, Rangliste, Profil), gebrandeter Splash-Screen in Vereinsfarben, Pull-to-Refresh und korrekte Darstellung auf allen iPhones mit Notch und Dynamic Island werden aufgebaut — noch nicht im App Store verfügbar
VerbessertBestellbestätigung erscheint jetzt als zentriertes Modal über dem gesamten Bildschirm statt inline in der Produktliste — kein Scroll-Sprung mehr nach dem Bestellen, und nach dem Schließen landet man automatisch ganz oben
VerbessertHomepage: Hinweis ergänzt, dass strichfrei schon jetzt als Web-App auf dem Homescreen gespeichert werden kann — im Browser über „Zum Home-Bildschirm" bzw. „App installieren"
BehobenEchtzeit-Updates (Saldo, Rangliste, neue Runden) brachen nach schnellem Vor-und-Zurück-Navigieren zwischen Tabs manchmal ab — interne Channel-Kollision im Websocket-Layer behoben
BehobenProduktbilder und Avatare wurden auf iOS-Geräten gar nicht angezeigt — alle Bilder erschienen als Platzhalter. Ursache: WKWebView (iOS) kam mit dem WebP-Ausgabeformat der Bildoptimierung nicht zurecht; Bilder werden jetzt im Original-Format (JPEG/PNG) geliefert
BehobenRückkehr zum Dashboard per Tab-Bar scrollte nicht zuverlässig an den Anfang, wenn die vorherige Seite bereits gescrollt war
BehobenKiosk-Bestellbestätigung zeigte ein nicht zentriertes strichfrei-Logo — entfernt

v0.64.0

Der Kontostand ist jetzt in Kiosk, Tresen und im eigenen Profil oberhalb der Tabs immer sichtbar, egal ob gerade „Bestellen" oder „Rangliste" (vormals „Konto") geöffnet ist — der bisherige „Konto"-Tab zeigt jetzt zuerst die Rangliste, danach Statistiken und Verlauf. Die Ladeanzeige des Kontostands füllt sich außerdem ruckelfrei statt mit sichtbarem Größensprung. Dazu zwei Fehlerbehebungen: eine „Anfrage gesendet"-Bestätigung für eine Zahlungsanfrage konnte sich nach Admin-Bestätigung grundlos erneut öffnen, wenn nach einer Teilzahlung noch Restschuld offen war, und manuell im Superadmin-Bereich angelegte Organisationen hatten eine unbegrenzte statt der vorgesehenen Mitgliederzahl im kostenlosen Tarif.

VerbessertKontostand ist jetzt in Kiosk, Tresen und im eigenen Profil oberhalb der Tabs immer sichtbar, unabhängig davon ob „Bestellen" oder „Rangliste" geöffnet ist
VerbessertDer bisherige „Konto"-Tab heißt jetzt „Rangliste" und zeigt zuerst die Rangliste, danach Statistiken und Verlauf
VerbessertLadeanzeige des Kontostands zeigt sofort den Rahmen und füllt Betrag/Status nach, statt die ganze Kachel erst verspätet und mit sichtbarem Sprung einzublenden
BehobenZahlungsanfrage: Die „Anfrage gesendet"-Bestätigung konnte sich erneut öffnen, wenn ein Admin die Anfrage bestätigt hat, während nach einer Teilzahlung noch Restschuld offen war — obwohl keine neue Anfrage lief
BehobenSuperadmin: manuell angelegte Organisationen hatten eine unbegrenzte statt der vorgesehenen Mitgliederzahl im kostenlosen Tarif

v0.63.0

Wichtiger Bugfix: Der erste über einen Einladungslink beigetretene Nutzer einer neuen Organisation wurde nicht mehr automatisch Admin, sondern blieb einfaches Mitglied ohne jede Verwaltungsmöglichkeit — behoben. Dazu ein Fix für einen seltenen Fehler „unerwartete Antwort vom Server" bei bestimmten Navigationsmustern rund um Registrierung und Einladungslink, Medaillen zeigen jetzt ihre Stufennamen (Bronze, Silber, Gold, Platin, Champion), sowie mehrere kleinere Nachbesserungen: ein fehlender Hinweistext im Produkt-bearbeiten-Dialog, ein doppeltes Feld im Superadmin-Bereich und einheitliche Bezeichnung „Bestandsverwaltung" statt „Inventar(verwaltung)" an allen Stellen.

VerbessertMedaillen zeigen jetzt ihren Stufennamen (Bronze, Silber, Gold, Platin, Champion) klein unter jedem Symbol
VerbessertBezeichnung „Bestandsverwaltung" statt „Inventar(verwaltung)" jetzt an allen Stellen einheitlich (Automationen, Statistik-Übersicht, Rollen-Übersicht, HowTo)
VerbessertSuperadmin: doppeltes „Max. Mitglieder"-Feld im Org-Bearbeiten-Dialog entfernt — ist bereits über den Tarif-Dialog abgedeckt
BehobenDer erste über einen Einladungslink beigetretene Nutzer einer neuen Organisation wurde nicht mehr automatisch Admin, sondern blieb einfaches Mitglied ohne jede Verwaltungsmöglichkeit
BehobenRegistrierung/Einladungslink: bei bestimmten Navigationsmustern (z. B. mehrfaches Antippen des Einladungslinks während der E-Mail-Bestätigung, insbesondere auf mobilen Browsern) erschien ein Fehler „unerwartete Antwort vom Server" statt der normalen Weiterleitung
BehobenProdukte: Hinweistext „Faktor > 1 = Gebinde" fehlte im „Einheit hinzufügen"-Block des Bearbeiten-Dialogs, obwohl er beim Neuanlegen bereits stand

v0.62.0

Neue Org-Einstellung für den Verkaufstresen: „Saldo ausgleichen" kann Ein- und Auszahlungen wahlweise sofort direkt verbuchen, statt eine Zahlungsanfrage zur späteren Admin-Bestätigung anzulegen — praktisch, wenn am Tresen direkt bar abgerechnet wird und niemand extra bestätigen muss. Als installierte App startet strichfrei jetzt außerdem sofort mit dem eigenen Branding statt einer kurzen weißen Lücke, auch bei schwacher Verbindung. Dazu vier Fehlerbehebungen: das Produkt-Dropdown beim Ausgeben einer Runde/Kiste war in Kiosk und Tresen nicht nach Kategorie sortiert, Checkboxen in den Org-Einstellungen zeigten nach dem Speichern kurz noch den alten Stand, Benachrichtigungen ließen sich manchmal nicht oder erst beim zweiten Versuch quittieren bzw. löschen, und der „Archivieren"-Button im Superadmin-Dashboard war im Dark Mode beim Hover unsichtbar.

NeuNeue Org-Einstellung „Tresen-Zahlungen direkt verbuchen" (Bestellregeln & Zahlungen): aktiviert, bucht „Saldo ausgleichen" am Tresen Ein- und Auszahlungen sofort, ohne dass ein Admin die Zahlung nachträglich bestätigen muss — Kreditlimit- und Guthaben-Prüfungen greifen dabei unverändert
VerbessertAls installierte App (Home-Bildschirm) startet strichfrei jetzt sofort mit einer gebrandeten Startansicht statt eines kurzen weißen Bildschirms — bei fehlender Verbindung erscheint eine klare Offline-Meldung mit automatischer Wiederverbindung statt eines Ladefehlers
BehobenKiosk/Tresen: Das Produkt-Dropdown beim Ausgeben einer Runde oder Kiste war nicht nach Kategorie sortiert (z. B. Bier vor den alkoholfreien Getränken), obwohl die Auswahl bei „Runde beanspruchen" bereits korrekt sortiert war
BehobenOrg-Einstellungen: Checkboxen und Radiobuttons (z. B. „Stornierungen erlauben") zeigten nach erfolgreichem Speichern kurzzeitig noch den alten Stand, bis die Seite neu geladen wurde
BehobenBenachrichtigungen ließen sich manchmal nicht als gelesen markieren bzw. löschen oder mussten dafür zweimal angetippt werden
BehobenSuperadmin-Dashboard: „Archivieren"-Button war im Dark Mode beim Hover fast unsichtbar (dunkler Text auf dunklem Hintergrund)

v0.61.0

Kisten-Runden werden jetzt beim Start vollständig auf den Account des Sponsors gebucht statt anteilig pro Beanspruchung — Beanspruchen aus einer Kiste ist für Trinker kostenlos, zählt aber weiterhin fürs Ranking. Solange niemand beansprucht hat, lässt sich die Kiste vollständig stornieren; danach sperrt „Schließen" nur weitere Beanspruchungen, ohne den Betrag zurückzubuchen. Dazu mehrere Fixes: Runde beanspruchen zeigte den eigenen Claim in Kiosk, Tresen und Usermodal teils fälschlich wieder als offen an, der Bestellen-Screen öffnete sich in Kiosk/Tresen manchmal an der Scroll-Position des vorherigen Screens, und drei kleinere Nachbesserungen an den persönlichen Statistiken.

NeuKisten-Runden: Der volle Kistenpreis wird beim Start sofort auf den Account des Sponsors gebucht statt anteilig pro Beanspruchung. Beanspruchen aus der Kiste ist für Trinker 0 € (zählt aber weiterhin fürs Ranking, z. B. Bierkönig). Der Button an der Runde heißt „Stornieren" (volle Rückerstattung), solange noch niemand beansprucht hat, und wechselt danach automatisch zu „Schließen" (keine Rückerstattung, sperrt nur weitere Beanspruchungen)
VerbessertSicherheit: interne Berechtigungsprüfung beim Stornieren einer Bestellung im Verlauf verschärft, damit sie nicht auf die Anfangsbuchung einer Kisten-Runde angewendet werden kann
BehobenRunde beanspruchen (Kiosk, Tresen, Usermodal): Die Anzeige sprang nach einem erfolgreichen „Annehmen" teils zurück auf den ursprünglichen Zustand, obwohl der Claim bereits gültig war — ein erneuter Klick löste dann eine irreführende Fehlermeldung aus. Betraf auch Runden mit mehreren Getränken pro Person
BehobenKiosk/Tresen: Beim Wechsel zwischen Bestellen- und Konto-Screen blieb die Scroll-Position des vorherigen Screens erhalten, statt oben zu beginnen — z. B. öffnete sich der Bestellen-Screen nach Auswahl eines Mitglieds mittig gescrollt, wenn die Mitgliederliste zuvor ganz nach unten gescrollt war
BehobenPersönliche Statistiken: seltener Server-Fehler beim Laden behoben; „größte ausgegebene Runde" zeigte teils die konfigurierte Kapazität des Getränke-Pools statt der tatsächlich beanspruchten Menge; Trend-Chart hat jetzt eine Skala (Höchstwert, 0 €, Mittellinie); Medaillen-Stufen einheitlich auf 5 Stufen pro Kategorie gebracht

v0.60.0

Neu: persönliche Statistiken. Über die neue Kachel im Konto-Bereich (Usermodal, Kiosk, Tresen) seht ihr eure eigenen Zahlen — Gesamtausgaben, Bestellanzahl, Lieblingsgetränk, einen Ausgaben-Trend über die letzten 12 Monate sowie persönliche Bestwerte und eine wöchentliche Streak. Dazu ein Medaillen-System: für Meilensteine bei Bestellungen, Ausgaben, ausgegebenen Runden und der Streak schaltet ihr Medaillen frei, inklusive Benachrichtigung.

NeuPersönliche Statistiken: neue Kachel im Konto-Bereich zeigt Gesamtausgaben, Bestellanzahl, Mitglied seit, Lieblingsgetränk, einen 12-Monats-Ausgaben-Trend, persönliche Bestwerte (teuerste Bestellung, meiste Getränke an einem Tag, größte ausgegebene Runde) und eine wöchentliche Streak
NeuMedaillen-System: Meilensteine bei Bestellungen, Ausgaben, ausgegebenen Runden und Streak schalten Medaillen frei (Bronze bis Champion), inklusive Benachrichtigung bei Freischaltung

v0.59.0

Größtes Update seit Langem: Ihr könnt euren Tarif und eure Rechnungsdaten künftig komplett selbst verwalten — Tarif wählen, automatische Verlängerung, Bestellhistorie, sogar eine pausierte Organisation reaktiviert ihr selbst per Bestellung, ohne Rückfrage bei uns. Freigeschaltet wird der Self-Checkout, sobald der Termin für das Ende der Beta-Phase feststeht. Daneben: Kassierer haben jetzt vollen Zugriff auf die Org-Einstellungen, die Startseite hat ein echtes Kontaktformular statt nur eines Mail-Links, und zwei spürbare Fehler wurden behoben.

NeuEigene Tarif- und Rechnungsverwaltung (Self-Checkout): Tarif und Zahlungsrhythmus selbst wählen, Rechnungsprofil hinterlegen und direkt per Rechnung bestellen — wird freigeschaltet, sobald der Termin für das Beta-Ende feststeht
NeuAutomatische Tarifverlängerung mit vorheriger Zahlungserinnerung; bleibt eine Rechnung überfällig, stuft sich die Organisation automatisch auf den kostenlosen Tarif zurück
NeuPausierte Organisationen können sich durch eine neue Bestellung selbst wieder reaktivieren, ohne Rückfrage bei uns
NeuKassierer hat jetzt denselben vollen Zugriff auf die Org-Einstellungen wie Admin (bisher nur Admin)
NeuKontaktformular auf der Startseite statt eines reinen E-Mail-Links
NeuIn der Bestellübersicht ist jetzt sichtbar, welcher Admin/Kassierer eine Bestellung ausgelöst hat
VerbessertOrg-Einstellungen sind jetzt in aufklappbare Abschnitte gruppiert statt einer langen durchgehenden Seite
BehobenMahnliste, Mahn-E-Mails und der zugehörige Cron berücksichtigten offene Einzahlungsanfragen nicht — ein Mitglied wurde trotz bereits eingereichter Zahlungsanfrage weiter gemahnt
BehobenFehlerseite beim allerersten Login nach einer Pausierung bei Konten mit nur einer Organisation — erst beim zweiten Laden kam man weiter
Juli 20269 Releases · 0.58.00.50.0

v0.58.0

Stornieren aus dem Verlauf funktioniert jetzt auch am Kiosk und Tresen — vorher ging das nur im eigenen Profil. Dazu zwei Kiosk-/Tresen-Fixes: Die Liste „Letzte Bestellungen" wächst nicht mehr unkontrolliert, wenn Stornierungen zeitlich unbegrenzt erlaubt sind, und ein aufgeklappter Verlauf klappt durch den automatischen Hintergrund-Refresh nicht mehr ungewollt wieder auf 5 Einträge zusammen.

NeuStornieren einer Bestellung ist jetzt auch aus dem Verlauf am Kiosk und Tresen möglich, nicht mehr nur im eigenen Profil
BehobenKiosk: „Letzte Bestellungen" zeigte bei Organisationen mit zeitlich unbegrenzter Stornierung teils bis zu 20 Bestellungen der letzten Wochen als Karten übereinander — jetzt auf die letzte Bestellung begrenzt, ältere Bestellungen bleiben über Konto → Verlauf stornierbar
BehobenKiosk/Tresen: Ein über „Weitere laden" aufgeklappter Verlauf klappte durch den automatischen Hintergrund-Refresh (alle paar Sekunden) immer wieder auf 5 Einträge zusammen

v0.57.0

Zwei größere Neuerungen: Mitglieder können ab sofort eine Zwei-Faktor-Authentifizierung (TOTP) für ihr Konto aktivieren — für Plattform-Superadmins ist sie verpflichtend. Außerdem wurden die persönlichen Benachrichtigungseinstellungen im Profil komplett überarbeitet: jeder Benachrichtigungstyp lässt sich jetzt einzeln per E-Mail und/oder In-App steuern, dazu zwei neue Benachrichtigungen für Admins ("Neues Mitglied", "Bestand niedrig"). Spürbare Verbesserung bei der mobilen Ladezeit durch eine näher an der Datenbank liegende Server-Region, dazu mehrere Fixes rund um Anker-Sprünge auf der Startseite und die Erkennung neuer App-Versionen am Kiosk.

NeuZwei-Faktor-Authentifizierung (TOTP): im Profil aktivierbar — nach dem Passwort wird beim Login zusätzlich ein zeitbasierter Code der Authenticator-App abgefragt. Für Plattform-Superadmins verpflichtend
NeuPersönliche Benachrichtigungseinstellungen im Profil überarbeitet: jeder Benachrichtigungstyp lässt sich jetzt einzeln per E-Mail und/oder In-App aktivieren, statt einem einzelnen Alles-oder-Nichts-Schalter
NeuNeue Benachrichtigung „Neues Mitglied" für Admins, wenn jemand der Organisation beitritt
NeuNeue Benachrichtigung „Bestand niedrig" für Admins/Bestandsmanager, wenn ein Produkt den Mindestbestand unterschreitet (nur sichtbar, wenn Bestandsmanagement für die Organisation aktiviert ist)
VerbessertMobile Ladezeit (Time to First Byte) spürbar verbessert — Server-Funktionen laufen jetzt in derselben Region wie die Datenbank (Dublin statt Frankfurt)
VerbessertE-Mail-Bestätigungslinks (Registrierung, Passwort zurücksetzen) sind jetzt gegen automatisches Vorab-Öffnen durch Sicherheits-Scanner der Empfänger-Postfächer abgesichert
VerbessertRelease Notes: ältere Versionen werden jetzt nach Monat gruppiert und eingeklappt dargestellt, für einen kürzeren Überblick
BehobenStartseite: Sprünge von „How-To"/„Release Notes" zu einem Anker auf der Startseite (z. B. Kontakt, FAQ) landeten teils an der falschen Stelle oder zeigten kurz sichtbar den Seitenanfang, bevor zur Zielsektion gesprungen wurde
BehobenKiosk: Die Erkennung einer neuen App-Version nach einem Deployment verglich in einem Sonderfall gegen sich selbst statt gegen die tatsächlich geladene Seite — Aktionen (Bestellen etc.) konnten dadurch mit einer Fehlermeldung abbrechen, obwohl bereits neu geladen worden war

v0.56.0

Diese Woche stand im Zeichen der Zuverlässigkeit: Ein tieferliegender Fehler sorgte zeitweise dafür, dass neue Bestellungen, Rundenbeanspruchungen und Ranking-Änderungen bei niemandem mehr live ankamen, weder bei anderen Geräten noch im eigenen — jetzt behoben, ebenso ein Fehler, durch den offline erfasste Kiosk-Bestellungen nach der Wiederverbindung nie übertragen wurden. Dazu spürbare Ladezeit-Verbesserungen (insbesondere auf dem Handy und in der Admin-Statistik) sowie mehrere kleinere Fixes rund um Sitzungsverwaltung, Berichte und Barrierefreiheit.

VerbessertLadezeit auf dem Handy deutlich verbessert — die App zeigte vorher teils lange eine leere Seite, bevor überhaupt der Lade-Bildschirm sichtbar wurde
VerbessertAdmin-Statistiken laden jetzt spürbar schneller (Berechnung läuft direkt in der Datenbank statt im Browser)
VerbessertAllgemeine Ladezeit-Verbesserungen an mehreren Stellen (Anmeldung, erste Produktbilder, Kontowechsel im Kiosk/Tresen)
VerbessertSicherheit: mehrere interne Berechtigungsprüfungen weiter verschärft (u. a. rund um Kontoeinstellungen und Zugriffsrechte)
BehobenNeue Bestellungen, Rundenbeanspruchungen und Ranking-Änderungen kamen zeitweise bei niemandem mehr live an — weder bei anderen Nutzern noch im eigenen Gerät, nur noch über den 30-Sekunden-Fallback
BehobenKiosk: Offline erfasste Bestellungen wurden nach der Wiederverbindung nie übertragen (blieben dauerhaft als „wartend" in der Warteschlange)
BehobenKiosk/Tresen: Der Konto-Tab eines Mitglieds aktualisierte Saldo und Verlauf nicht, wenn die auslösende Aktion von einem anderen Gerät kam
BehobenKiosk/Tresen: Eine bereits über eine andere Oberfläche beanspruchte Runde wurde dort weiterhin als verfügbar angezeigt
BehobenNach einem automatischen Sitzungs-Refresh konnte man unerwartet ausgeloggt wirken bzw. eine Fehlermeldung sehen, insbesondere direkt nach einer Weiterleitung (z. B. Login → Dashboard)
BehobenMonatsberichte zeigten für vergangene Zeiträume gelegentlich einen falschen Endsaldo, wenn danach weitere Buchungen erfolgt waren
BehobenAutomatisch generierte Monatsberichte konnten bei einem seltenen Server-Timeout für einen ganzen Monat komplett ausbleiben, ohne dass das auffiel
BehobenTastaturbedienung: Fokus blieb beim Öffnen eines Dialogs (z. B. Zahlungsanfrage) nicht zuverlässig darin und sprang beim Schließen nicht zum auslösenden Element zurück
BehobenRegistrierung: Kiosk-PIN-Felder wurden vom Browser fälschlich als Passwortfelder erkannt — Risiko, dass dabei versehentlich das eigentliche Kontopasswort überschrieben wird
BehobenTresen: Mitgliederliste zeigte im Offline-Modus keine Erklärung, warum Bestellen gerade gesperrt ist
BehobenVerlauf zeigte bei einer selbst beanspruchten eigenen gesponserten Runde zwei Einträge statt einem
BehobenAdmin-Exporte ohne ausreichende Berechtigung zeigten eine leere weiße Seite statt einer klaren Weiterleitung

v0.55.0

Umfangreiche Sicherheits-Härtung nach einem internen Audit: zahlreiche interne Berechtigungsprüfungen rund um Kiosk, Tresen und Bestellungen verschärft, sensible Datenfelder weiter eingeschränkt, und mehrere Stellen mit gleichzeitigen Buchungen robuster gemacht. Dazu zwei sichtbare Bugfixes: Die Admin-Einstellungsseite leitete fälschlich zur Übersicht zurück, und der Kiosk zeigte nach der PIN-Eingabe kurzzeitig „Wird bestellt…", obwohl noch nichts bestellt wurde.

NeuTresen zeigt jetzt wie der Kiosk einen Live/Verbinde/Offline-Status-Indikator, wenn Echtzeit-Updates gerade ausbleiben
VerbessertSicherheit: zahlreiche interne Berechtigungsprüfungen rund um Kiosk-, Tresen- und Bestell-Funktionen verschärft — u. a. konsequente Prüfung, ob eine Organisation pausiert ist, bevor eine Buchung durchgeführt wird
VerbessertSicherheit: Zugriff auf sensible interne Datenfelder (u. a. PIN-Prüfsummen) weiter eingeschränkt
VerbessertJugendschutz-Einstellungen (FSK16/18) werden jetzt zusätzlich serverseitig durchgesetzt, nicht mehr nur in der Bestell-Oberfläche selbst
VerbessertMehrere Stellen mit potenziell gleichzeitigen Buchungen (Zahlungsbestätigung, Einladungslinks, Inventur, automatisierte Mahnmails/Berichte) sind jetzt robuster gegen sehr knapp aufeinanderfolgende Aktionen
BehobenKiosk/Tresen: Eine aktive Runde ließ sich weiterhin über das normale Mitglieder-Profil beanspruchen, obwohl Bestellungen für die Organisation auf Kiosk/Tresen beschränkt waren
BehobenAdmin-Einstellungen: Die Seite leitete unter bestimmten Umständen sofort zur Admin-Übersicht zurück, statt sich zu öffnen
BehobenKiosk: Nach erfolgreicher PIN-Eingabe zeigte der Bestellen-Button kurzzeitig „Wird bestellt…" und Produkte wirkten nicht anklickbar, obwohl noch keine Bestellung lief
BehobenStornierungsfenster „heute" konnte je nach Server-Zeitzone bis zu 2h von der tatsächlichen Berliner Tagesgrenze abweichen

v0.54.0

Kiosk und Tresen ziehen weiter mit dem neuen Usermodal gleich: Beide bekommen einen eigenen Verlauf (mit PIN-Absicherung) sowie ein einheitliches Ranking-Banner mit Bestenlisten-Ansicht. Der größte Teil dieses Updates sind jedoch Echtzeit- und Zuverlässigkeits-Verbesserungen — neue Runden, Ranking-Änderungen und Org-Ankündigungen kommen jetzt deutlich zügiger und zuverlässiger an, insbesondere auf Geräten, die tagelang ohne Neustart laufen. Dazu über ein Dutzend kleinerer Fehlerbehebungen an Kiosk, Tresen und Usermodal.

NeuVerlauf (Bestellhistorie) ist jetzt auch am Kiosk und Tresen verfügbar — abgesichert über PIN bzw. Tresen-Zugang, wie im Usermodal
NeuEinheitliches Ranking-Banner mit Bestenlisten-Ansicht in Usermodal, Kiosk und Tresen
NeuManueller Refresh-Button jetzt auch in der Bestell-/Kontoansicht von Kiosk und Tresen verfügbar
VerbessertEchtzeit-Updates (neue Runden, Ranking, Org-Ankündigungen) kommen an Kiosk und Tresen jetzt deutlich zuverlässiger an — der Verbindungskanal baut sich automatisch alle 5 Minuten neu auf und gleicht beim (Wieder-)Verbinden verpasste Änderungen nach
VerbessertSaldo aktualisiert sich nach einer Bestellung oder einem Rückgängig-Tap sofort, statt erst nach einigen Sekunden
VerbessertKiosk/Tresen: Konto-Tab nutzt jetzt exakt dieselben Bausteine wie das Usermodal (u. a. Kreditlimit-Vorschau)
VerbessertDiverse visuelle Feinabstimmung an Kiosk, Tresen und Usermodal (Abstände, Footer-Verhalten, Umbruch der Kategorie-Filter, Bestellen-Button-Farbe, Position des Ranking-Banners)
VerbessertFormular zum Passwort-Zurücksetzen erscheint jetzt sofort, statt auf eine Session-Prüfung zu warten
BehobenSicherheit: place_order-Berechtigungsprüfung für Kiosk-/Tresen-Bestellungen wiederhergestellt, die durch eine ältere Migration versehentlich verloren gegangen war
BehobenSicherheit: Einzahlungen via Kiosk/Tresen wurden nicht gegen das Guthaben-Limit der Organisation geprüft
BehobenSicherheit: Race-Condition beim schnellen Mitgliederwechsel am Kiosk/Tresen konnte kurzzeitig zu einer falschen Zuordnung führen
BehobenKiosk/Tresen: Konto-Tab setzte sich gelegentlich alle paar Sekunden von selbst zurück
BehobenZahlungseinstellungen: Aktiviert-Schalter berücksichtigte einen reinen Hinweistext ohne hinterlegte Bankverbindung nicht korrekt; doppelte Fehlermeldung entfernt
BehobenBestenliste: Ein Rundenspender verschwand aus dem Ranking, wenn die eigene Runde vorzeitig geschlossen wurde
BehobenVerlauf: abgelehnte Zahlungsanfragen und Runden-Beanspruchungen wurden bei der Seitennummerierung teils übersprungen
BehobenEigene Runde beanspruchen (Self-Claim) aktualisierte den Kontostand nicht sofort
BehobenZahlungsanfrage-Bestätigung prüft das Guthaben-Limit jetzt zuverlässig erneut
BehobenKiosk/Tresen: Nach einem Deployment konnte der Service-Worker-Cache eine veraltete Version ausliefern, obwohl neu geladen wurde
BehobenPlattform-Super-Admins konnten Kiosk-/Tresen-PIN zwischenzeitlich nicht mehr verifizieren

v0.53.0

Das Usermodal wurde neu strukturiert: Bestellen ist jetzt direkt nach dem Anmelden sichtbar, statt erst über einen zusätzlichen Klick auf „Bestellung aufgeben" geöffnet werden zu müssen. Kiosk, Tresen und Usermodal teilen sich jetzt denselben Bestell- und Kontobereich — Änderungen wirken dadurch überall gleich. Dazu zwei neue Org-Einstellungen: Bestellungen können auf Kiosk/Tresen beschränkt werden, und „Saldo ausgleichen" funktioniert jetzt auch ohne hinterlegte Bankverbindung.

NeuUsermodal: Bestellen ist jetzt die direkte Standardansicht nach dem Anmelden, mit einer Tab-Leiste „Bestellen"/„Konto" — vorher musste erst „Bestellung aufgeben" angeklickt werden
NeuMonatsranking als Teaser direkt im Bestellbereich von Kiosk und Tresen sichtbar (vorher nur im Usermodal)
NeuNeue Org-Einstellung: Bestellungen können auf Kiosk/Tresen beschränkt werden (z. B. für Vereine ohne Selbstbedienung) — Kontostand, Saldo ausgleichen und Verlauf bleiben für Mitglieder weiterhin sichtbar
Neu„Saldo ausgleichen" lässt sich jetzt auch ohne hinterlegte Bankverbindung aktivieren — ein Hinweistext (z. B. „Bitte bar am Tresen abgeben") genügt
VerbessertBestell-Oberfläche (Suche, Kategorien, Produktkacheln, Kisten-Kauf) ist jetzt in Kiosk, Tresen und Usermodal dieselbe Komponente — Änderungen wirken künftig überall gleich
BehobenSicherheit: verify_kiosk_pin erlaubte jedem Org-Mitglied, die PIN anderer Mitglieder zu prüfen — jetzt wie am Tresen auf den Kiosk-Account/Admins beschränkt
BehobenSicherheit: Offline-Synchronisation von Bestellungen vertraute dem vom Gerät gemeldeten Preis statt dem aktuellen Serverpreis

v0.52.0

Technische Wartung nach einem internen Code-Review: einheitliche Rollen-Bezeichnungen, serverseitige Passwort-Mindestlänge bei der Registrierung, strengeres Login-Limit für Kiosk-/Tresen-Geräte, deutlich besserer Textkontrast und sichtbarer Fokus-Ring für die Tastaturbedienung im hellen Modus. Dazu ein Fix, damit Kiosk und Tresen nach einem Deployment zuverlässiger erkennen, dass eine neue Version vorliegt — auch auf Geräten, die dauerhaft geöffnet bleiben.

VerbessertRollen-Bezeichnungen (z. B. „Kassierer", „Lagerwart") sind jetzt in der gesamten App einheitlich — vorher unterschieden sie sich leicht je nach Ansicht (Mitgliederliste, Dashboard, Profil, Superadmin)
VerbessertRegistrierung: Passwort-Mindestlänge (8 Zeichen) wird jetzt auch serverseitig geprüft, nicht mehr nur im Formular
VerbessertKiosk-/Tresen-Geräte-Login: nach 5 Fehlversuchen 15 Minuten gesperrt — dasselbe Schutzniveau wie beim PIN-Login
VerbessertHeller Modus: grauer Sekundärtext (Beschriftungen, Hinweise, Tabellenwerte) ist jetzt deutlich kontrastreicher und leichter lesbar
VerbessertTastaturbedienung: sichtbarer Fokus-Ring auf allen Buttons, Links und Eingabefeldern beim Navigieren mit der Tab-Taste
VerbessertBenachrichtigungs-Glocke zeigt beim ersten Öffnen kurz „Lädt…" statt fälschlich „Keine Benachrichtigungen", solange die Liste noch nicht geladen ist
VerbessertProdukte- und Statistik-Seiten zeigen beim Laden jetzt ein Skeleton statt eines kurzen Aufblitzens der leeren Seite
BehobenKiosk & Tresen: Nach einem Deployment konnte ein dauerhaft geöffnetes Gerät nicht mehr zuverlässig erkennen, dass eine neue Version vorliegt, und Aktionen (Bestellen, Runde einlösen etc.) schlugen dann mit einer Fehlermeldung fehl. Die Erkennung prüft jetzt auch ohne Neuladen regelmäßig auf ein neues Deployment und lädt das Gerät bei Bedarf automatisch neu
BehobenProduktformular: Bei mehreren Einheiten pro Produkt (z. B. Stück + Kiste) fehlte für Screenreader-Nutzer:innen die Feldbeschriftung ab der zweiten Zeile — jetzt für jede Zeile vorhanden

v0.51.0

Neu: In-App-Benachrichtigungen — die Glocke im Header meldet ab sofort Zahlungsanfragen, gesponserte Runden, Ankündigungen und mehr in Echtzeit. Admins können jetzt auch Plattform-weite Ankündigungen an ausgewählte Organisationen versenden. Dazu einige Politur-Fixes rund um Verlauf, Automationen und Mahnmails.

NeuIn-App-Benachrichtigungen: Glocke im Header zeigt neue Ereignisse in Echtzeit — Zahlungsanfrage genehmigt/abgelehnt, neue Zahlungsanfrage (für Admins/Kassierer), gesponserte Runde/Kiste/Getränke-Pool erhalten, sowie Admin-Ankündigungen
NeuAutomationen (Mahnmails, Monatsbericht) und manuelle Exporte: zusätzlicher Versandweg "In-App" wählbar, ergänzt E-Mail (Push folgt in einer späteren Version)
NeuHeader: Rollen-Wechsel-Buttons zu einem einzigen "Ansicht wechseln"-Menü zusammengefasst
NeuSuperadmin-Dashboard: Plattformweite Ankündigung an alle oder ausgewählte Organisationen, optional nach Rolle gefiltert (Admin/Kassierer/Bestandsmanager/Mitglied), mit Live-Vorschau der Empfängerzahl vor dem Versand
VerbessertVerlauf: abgelehnte Zahlungsanfragen zeigen jetzt denselben Detailgrad wie bestätigte (inkl. bearbeitendem Admin)
VerbessertAdmin-Ansicht: Schnellzugriffe neu sortiert (Produkte, Umlage, Statistiken, Exporte, Automationen, Ankündigung, Einstellungen)
BehobenMahnmail-Versand mit aktiviertem In-App-Kanal konnte mit einem Laufzeitfehler abbrechen — behoben
BehobenAutomatisierte Mahnmails/Berichte liefen für pausierte Organisationen unbeabsichtigt weiter — werden jetzt korrekt übersprungen

v0.50.0

Ein seltener iOS-Absturz beim App-Öffnen ist behoben, dazu mehr Zuverlässigkeit beim E-Mail-Versand und Zeitzone-Korrekturen bei mehreren Datumsanzeigen. Neu: eine wiederverwendbare Bildergalerie für Produktbilder. Außerdem einige Politur-Runden bei Automationen (Mahnmails) und den Verlauf-Filtern auf dem Handy.

NeuProduktbilder: Neue Bildergalerie pro Organisation — bereits hochgeladene Bilder lassen sich bei anderen Produkten wiederverwenden oder aus der Galerie löschen
NeuBestell-Verlauf: Zahlungen erscheinen jetzt als eigene Kachel im Verlauf, Admins sehen so Zahlungen und Bestellungen chronologisch nachvollziehbar an einem Ort
NeuSelbstbestellung (Self-Order): Gesamtpreis wird direkt im Erfolgs-Screen angezeigt
VerbessertE-Mail-Versand (Mahnmails, Berichte) ist jetzt gedrosselt und wiederholt fehlgeschlagene Sendungen automatisch — verhindert stille Fehlschläge, wenn viele Mails gleichzeitig verschickt werden
VerbessertAutomationen — Mahnmails: Empfänger-Vorschau zeigt jetzt Name und offenen Betrag jedes betroffenen Mitglieds statt nur der Gesamtzahl; externe E-Mail-Adressen (dort ohnehin ungenutzt) sind ausgeblendet; Schwellenwert akzeptiert nur noch ganze Euro-Beträge
BehobenStrichfrei auf dem iOS-Homescreen startete teils mit dem Fehler „Diese Seite konnte nicht geladen werden": Die PWA leitete Mitglieder mit nur einer Organisation serverseitig weiter, was mitten in den Seitenaufbau fallen konnte. Die Weiterleitung passiert jetzt clientseitig nach vollständigem Laden der Seite
BehobenVerlauf, Einladungen und Zahlungsanfragen zeigten teils ein falsches Datum, weil Server und Gerät unterschiedliche Zeitzonen nutzten — Datumsanzeigen sind jetzt konsistent auf Europe/Berlin gepinnt
BehobenKiosk & Verkaufstresen: Nach einem neuen Deployment konnten Aktionen (z. B. Bestellen) mit einem Fehler fehlschlagen, weil im Hintergrund noch eine veraltete Version der Seite zwischengespeichert war — wird jetzt erkannt, der Gerätespeicher automatisch geleert und die Seite neu geladen
BehobenProduktbilder-Galerie: Vorschaubilder wirkten verzerrt (jetzt unverzerrt dargestellt) und zeigte nach dem erneuten Öffnen teils veraltete Bilder
BehobenAutomationen: Ausführungs-Zeitpunkt im Job-Protokoll wurde in UTC statt Berlin-Zeit angezeigt (bis zu 2h Abweichung im Sommer) — behoben. Dazu ein Info-Hinweis (ⓘ) neben der konfigurierten Uhrzeit: der tägliche Ausführungs-Job selbst läuft technisch bedingt zu einer festen Uhrzeit, die im Sommer (Sommerzeit) rund 1h später liegt als im Winter
BehobenVerlauf-Filter (Von/Bis) auf dem Handy: liefen teils über den Kartenrand hinaus und waren im Dark Mode schlecht lesbar (helle Kalender-Symbole, unsichtbarer Platzhaltertext) — jetzt einheitlich und mobile-tauglich
BehobenLandingpage: Anker-Links (z. B. „Kontakt") landeten teils leicht daneben statt direkt auf der Ziel-Sektion
Juni 202638 Releases · 0.49.00.13.0

v0.49.0

Drei Bugfixes: Das strichfrei-Logo im Lade-Screen ist jetzt auf allen Geräten korrekt horizontal zentriert. Social-Media-Vorschaubilder (Open Graph / Twitter) warfen bei jedem neuen Deployment einen 500-Fehler — behoben. Einzahlungsanfragen werden jetzt client- und serverseitig gegen das Guthaben-Limit der Organisation geprüft — bisher ließ sich ein beliebig hoher Betrag eingeben.

BehobenLade-Screen: Logo jetzt auf allen Geräten korrekt horizontal zentriert — vorher war das strichfrei-Logo in Browser und PWA zu weit links. Ursache war überschüssiger Whitespace im SVG-Viewport; behoben durch eine Flex-Zeile aus Icon-SVG und HTML-Text statt einem einzelnen SVG-Element
BehobenMiddleware: /opengraph-image- und /twitter-image-Routen scheiterten bei jedem neuen Deployment mit HTTP 500, weil die Middleware versuchte einen Supabase-Client zu erstellen. Die Routen werden jetzt frühzeitig durchgeleitet, bevor die Session-Prüfung greift
VerbessertEinzahlungsanfrage: Das Guthaben-Limit der Organisation (allow_credit / max_credit_cents) wird jetzt client- und serverseitig geprüft. Bisher konnten Mitglieder beliebige Beträge eingeben. Jetzt gilt: Maximalbetrag = offener Saldo + erlaubtes Guthaben; bei unbegrenztem Guthaben bleibt der Betrag frei wählbar

v0.48.0

Performance & Ladeerlebnis: Kiosk und Verkaufstresen öffnen beim Wiederaufruf praktisch sofort (Oberfläche aus dem lokalen Cache, Aktualisierung im Hintergrund). Der Lade-Screen mit Logo ist jetzt in allen Geräte-Apps verfügbar und sauber zentriert. Dazu ein schnellerer Seitenaufbau im eingeloggten Bereich.

VerbessertKiosk & Verkaufstresen öffnen beim Wiederaufruf praktisch sofort: Die Oberfläche kommt aus dem lokalen Gerätespeicher und wird im Hintergrund aktualisiert. Die Daten (Saldo, Bestellungen, Runden) sind dabei wie gewohnt immer live
VerbessertLade-Screen mit strichfrei-Logo jetzt in allen Geräte-Apps (Mitglieder, Kiosk, Verkaufstresen) — und korrekt in der Bildschirmmitte zentriert (vorher im Kiosk nach oben verschoben)
VerbessertSchnellerer Seitenaufbau im eingeloggten Bereich (Dashboard und Org-Seiten): eine blockierende Server-Abfrage für die Theme-Einstellung wurde entfernt — das Theme wird jetzt im Hintergrund abgeglichen
VerbessertVerkaufstresen: interner Datenabruf verschlankt (zusammengeführte Datenbankabfragen)

v0.47.0

Datenschutz im Fokus: Mitglieder können ihre gespeicherten Daten als PDF exportieren (DSGVO-Datenauskunft) und ihr Konto selbst löschen; Admins können Mitgliedsdaten anonymisieren. Dazu automatische Bildverkleinerung beim Upload, der Hinweis „in Anspruch genommen von" bei gesponserten Runden, Tarif-Ablauf-Warnungen, Org-Lebenszyklus-Verwaltung im Superadmin sowie ein deutlich schnellerer Kiosk-Ladevorgang mit Lade-Screen.

NeuDatenauskunft (DSGVO Art. 15): Unter Profil → „Meine Daten exportieren" gibt es alle zu deinem Konto gespeicherten Daten als strukturiertes PDF — Profil, Mitgliedschaften, Bestellungen, Zahlungen und ausgegebene Runden
NeuKonto löschen (Selbst-Service) im Profil: personenbezogene Daten werden entfernt und der Zugang dauerhaft gesperrt. Bereits erfasste Buchungen bleiben aus buchhalterischen Gründen anonymisiert in der jeweiligen Vereinskasse erhalten. Voraussetzung: kein offener Saldo und nicht alleiniger Admin einer Org. Die E-Mail-Adresse kann danach für ein neues Konto wiederverwendet werden
NeuMitglied-Daten anonymisieren (Admin → Mitglied verwalten): Name, E-Mail, Geburtsdatum und PIN werden dauerhaft entfernt — Bestellhistorie und Saldo bleiben anonymisiert für die Vereinskasse erhalten
NeuBilder werden vor dem Upload automatisch verkleinert (Profilbilder und Produktbilder, als WebP) — große Handyfotos lassen sich jetzt zuverlässig hochladen; der gelegentliche Fehler „unerwartete Server-Antwort" beim Profilbild-Upload ist damit behoben
NeuAdmin → Transaktionen: Bei gesponserten Runden wird jetzt angezeigt, wer die Runde in Anspruch genommen hat („🍻 In Anspruch genommen von: …") — die Buchung beim Sponsor ist damit eindeutig zuordenbar
NeuTarif-Ablauf-Hinweis: Läuft das Abo einer Organisation ab, sehen Admins und Kassierer einen Hinweis mit Ablauf- und Sperrdatum, solange noch nicht pausiert wurde
NeuSuperadmin: Org-Lebenszyklus — Organisationen pausieren (Daten bleiben vollständig erhalten, Mitglieder sehen nur eine Sperrseite, Admins können weiter exportieren), jederzeit wieder reaktivieren sowie archivierte Organisationen reaktivieren oder endgültig löschen (mit Slug-Bestätigung)
NeuKiosk-Ladescreen: Beim Öffnen erscheint sofort ein Wartescreen mit strichfrei-Logo und „Lädt…" statt einer leeren Seite — die wahrgenommene Ladezeit verbessert sich spürbar, besonders beim ersten Start
VerbessertKiosk lädt spürbar schneller: Der serverseitige Datenabruf wurde verschlankt (zusammengeführte und parallelisierte Datenbankabfragen). Zusätzlich wurde die rein dekorative „Bierkönig"-Krone samt teurer Monatsauswertung aus dem Kiosk entfernt — der Bierkönig bleibt in der Rangliste erhalten
VerbessertSchnellere monatliche Auswertungen (Rangliste, Statistiken) durch zusätzliche Datenbank-Indizes
VerbessertMitglieder-Limit berücksichtigt jetzt auch offene Direkteinladungen — es lassen sich nicht mehr Einladungen verschicken als freie Plätze im Tarif vorhanden sind (keine Absage mehr erst beim Beitritt)
BehobenDialoge, die in bestimmten Bereichen (z. B. Superadmin-Org-Liste) halbtransparent oder abgeschnitten erschienen und den Hintergrund mitscrollen ließen, werden jetzt korrekt und vollflächig dargestellt

v0.46.0

Automatische Echtzeit-Aktualisierung überall: Saldo, Rangliste und Verlauf werden jetzt aktualisiert, wenn jemand anderes bestellt oder ein Admin Mitgliedsdaten ändert — ohne manuellen Reload. Neue ↻-Schaltfläche in UserApp und Rangliste, Pull-to-Refresh auf Mobile. Kiosk und Tresen haben ebenfalls einen Aktualisierungsbutton. Dazu Finanz-Chart auf Nettoumsatz, mehrere Bugfixes an Gastkonto, Statistiken und Security-Härtung.

NeuAutomatische Echtzeit-Aktualisierung für Saldo, Rangliste und Verlauf: Neue Bestellungen anderer Mitglieder (Kiosk, Tresen, Self-Order) und Mitgliedsänderungen (Bans, Namen, PINs) propagieren sofort auf alle aktiven Tabs — kein manueller Reload mehr nötig
Neu↻-Schaltfläche in UserApp-Nav und Rangliste: Klick aktualisiert die Seite sofort (Desktop und Mobile). Auf Mobile zusätzlich als Pull-to-Refresh-Geste: Seite nach unten ziehen wenn ganz oben → Spinner → Refresh
Neu↻-Button im Kiosk: Kleines Icon neben dem Realtime-Statusindikator lädt Mitglieder, Produkte und Runden parallel neu
Neu↻-Button im Tresen: Icon links im Header (Mitglieder-Screen) mit demselben Verhalten
VerbessertFinanz-Chart (Admin → Statistiken → Finanzen): Amber-Balken zeigt jetzt den Nettoumsatz (Bruttoumsatz abzgl. Gastkonto-Ausbuchungen) statt Bruttoumsatz — Chart-Titel und Legende aktualisiert
BehobenEinzahlungsquote in der Finanztabelle rechnete pro Zeile auf Bruttoumsatz, die Kopf-KPI aber auf Netto — bei voll ausgebuchten Zeiträumen zeigte die Zeile 0 %, die KPI aber „—". Jetzt konsistent Netto in beiden Ansichten
BehobenKiosk: 8 Stellen mit try/finally ohne catch führten bei Netzwerkunterbrechung zu unhandled rejections (Sentry-Fehler). Alle Realtime-Callbacks und Poller fangen Netzwerkfehler jetzt sauber ab
BehobenTresen: Gleicher Bug wie Kiosk — 8 Stellen try/finally ohne catch in Realtime-Callbacks und Pollern gefixt
BehobenGastkonto reaktivieren: Saldo-Ausgleich und Reaktivierung laufen jetzt atomar — schlägt die Reaktivierung fehl, wird die Ausgleichs-Zahlung automatisch rückgängig gemacht (kein verwaister Saldo-Ausgleich mehr möglich)
BehobenGastkonto reaktivieren: Gültigkeitsdatum wird serverseitig auf Zukunft geprüft — ein sofort ablaufendes Gastkonto durch Umgehung des Client-Mindestdatums ist nicht mehr möglich
BehobenGastkonto-Modal auf iOS: das Datum-Eingabefeld ragte in schmalen Modals aus dem sichtbaren Bereich — wird jetzt auf Containerbreite begrenzt
VerbessertSecurity: anon-EXECUTE-Härtung in der Datenbank — REVOKE EXECUTE direkt von der anon-Rolle für alle SECURITY DEFINER RPCs und Avatar-Bucket-Listing-Policy. Schließt alle verbleibenden Supabase-Linter-Warnings
BehobenSuperadmin: Einladungslink-URL lief auf Mobile aus dem Karten-Rahmen heraus — wird jetzt korrekt abgeschnitten (truncate) und bleibt innerhalb der Karte

v0.45.0

Superadmin-Erweiterungen: Tarif-Management mit MRR/ARR-Kennzahlen und Benutzersuche direkt im Plattform-Dashboard. Org-Admins sehen ihren aktuellen Tarif in den Einstellungen. Dazu mehrere Bugfixes: Org-Reset wieder funktionsfähig, Beta-Vorteil korrekt eingeschränkt und mobile Eingabefelder verbessert.

NeuSuperadmin: Tarif-Management pro Organisation — effektiver Tarif (Free/Basis/Premium/Pro), maximale Mitgliederzahl (auto-befüllt, überschreibbar), Gültigkeitsdatum und interne Notiz in einem Modal direkt aus der Org-Liste
NeuSuperadmin: Abrechnung-Tracking — welchen Tarif zahlt die Org wirklich? Getrennte Erfassung von effektivem Tarif (was sie bekommen) und Abrechnungsplan (was sie zahlen) mit monatlich/jährlich-Auswahl und Individualbetrag
NeuSuperadmin: MRR/ARR-Kacheln — Monthly Recurring Revenue und Annual Run Rate werden live aus den gespeicherten Abrechnungsdaten berechnet (ARR direkt aus Jahresbeträgen, keine Rundungsdifferenzen durch MRR×12)
NeuSuperadmin: Benutzersuche — Name oder E-Mail eingeben, Org-Mitgliedschaften als Chips, platform_role (Super Admin) per Klick umstellen mit Zwei-Schritt-Bestätigung
NeuSuperadmin: Tab-Navigation Orgs | Benutzer — beide Bereiche in einem Dashboard, kein Seitenreload
NeuTarif-Infokarte in Org-Einstellungen: Admins sehen ihren aktuellen Tarif, Mitgliederzahl/-limit und Gültigkeitsdatum auf einen Blick — Ablaufwarnung bei < 30 Tagen, roter Hinweis bei Ablauf
VerbessertSuperadmin: Info-Tooltips (ⓘ) auf den Stats-Kacheln öffnen jetzt per Klick statt Hover — auch auf dem Handy bedienbar
VerbessertSecurity: Eingabelängenbeschränkungen in allen Formularen ergänzt (Namen, Notizen, Pins, Betragsfelder) — überlange Eingaben werden server- und clientseitig blockiert
BehobenOrg-Daten-Reset im Superadmin war komplett kaputt: reset_org_data referenzierte drei Tabellen (notifications, kiosk_devices, audit_log), die seit v0.34.0 nicht mehr existieren — Referenzen entfernt, Reset funktioniert wieder
BehobenBeta-Vorteil-Anzeige im Tarif-Modal erschien fälschlicherweise auch wenn effektiver Tarif und Abrechnungstarif identisch sind — jetzt nur noch sichtbar wenn der Org ein höherer Tarif gewährt wird als sie zahlt
BehobenIcon-Editor: borderRadius aus dem Icon-Canvas entfernt — Balken wurden irrtümlich abgerundet dargestellt
BehobenTarif-Modal: Pfeiltasten (▲▼) aus Zahlen-Inputs entfernt und negative Werte blockiert — mobile Eingabe der Mitglieder-Anzahl damit deutlich besser bedienbar

v0.44.0

Technische Wartung: Alle ESLint-Warnungen behoben — ungenutzte Variablen entfernt, React-Hooks-Abhängigkeiten vervollständigt, Code-Qualität verbessert. Keine nutzbaren Änderungen, aber eine stabilere Codebasis für kommende Features.

VerbessertCode-Qualität: 37 ESLint-Warnungen auf 0 reduziert — ungenutzte Imports und Variablen entfernt, ternäre Ausdrücke als Statements durch if/else-Blöcke ersetzt
VerbessertReact-Hooks: Fehlende Abhängigkeiten im Snapshot-Effekt des Tresen-Modus ergänzt (activePinHash, counterToken) — der Snapshot wird nun korrekt bei allen relevanten State-Änderungen aktualisiert
VerbessertStornieren-Dialog: State-Reset beim Öffnen direkt im Click-Handler statt in einem separaten useEffect — weniger überflüssige Re-Renders

v0.43.0

Drei Bugfixes und einheitliche Betragseingabe: Mail-Großschreibung korrigiert, Transaktionsverlauf entzerrt mit Bestellinhalt-Anzeige, iOS-sicherer Scroll-Lock für alle Modals sowie Vorzeichen-Umschalter (Einzahlung/Auszahlung, Lastschrift/Gutschrift) statt getipptem Minus — damit sind Auszahlung und Lastschrift jetzt auch auf der Handy-Zahlentastatur erreichbar.

NeuBestellinhalt in Admin → Transaktionen: Bestellte Produkte werden jetzt direkt im Eintrag angezeigt (z. B. „2× Pils (0,5 l), 1× Wasser") — eine Bestellung über mehrere Positionen ist jetzt lückenlos nachvollziehbar
NeuKontostand verwalten: Umschalter Einzahlung/Auszahlung statt getipptem Minus — Auszahlung ist jetzt auch auf der Handy-Zahlentastatur ohne Minus-Taste erreichbar
NeuUmlage: Umschalter Lastschrift/Gutschrift statt getipptem Minus — Lastschrift ist jetzt auch auf der Handy-Zahlentastatur erreichbar
VerbessertEinheitliche Betragseingabe: gemeinsamer Sanitizer in allen Payment-Feldern (Kontostand, Umlage, Zahlungsanfrage, Kiosk, Tresen) — keine Buchstaben oder Sonderzeichen möglich, max. 2 Nachkommastellen, Punkt und Komma gleichwertig
BehobenZahlungsanfrage-Mail: Typ wurde klein geschrieben („einzahlungsanfrage" / „auszahlungsanfrage") — toLowerCase() entfernt, korrekte Großschreibung wiederhergestellt
BehobenTransaktionsverlauf (Admin): Auf Mobile lagen zu viele Elemente in einer Flex-Zeile und überlappten sich. Neu: zwei Spalten — links Badges, Name, Bestellinhalt und Datum; rechts Betrag und Stornieren-Button gestapelt
BehobenModal-Scroll-Lock: iOS Safari ignorierte overflow:hidden am Body beim Touch-Scrollen. Alle Modals nutzen jetzt position:fixed mit gespeichertem Scroll-Offset — Hintergrund scrollt nicht mehr mit

v0.42.0

Verkaufstresen-Modus: Eine neue eigenständige App-Ansicht für den Tresen ermöglicht Bestellungen, Runden und Kontoverwaltung für beliebige Mitglieder — mit vollständigem Offline-Betrieb, HMAC-gesichertem PIN-Schutz und Brute-Force-Härtung.

NeuVerkaufstresen-Modus (/counter): Eigene PWA für das Tresen-Gerät — Bestellungen für beliebige Mitglieder aufgeben, Runden erstellen/annehmen/schließen und Mitgliederkonten einsehen (Saldo, QR-Code, PayPal, Zahlungsanfrage)
NeuTresen-Login (/counter-login): Eigene Anmeldeseite mit Kiosk-Passwort — Session ist 30 Minuten gültig und unabhängig vom Kiosk-Login
NeuTresen-PIN-Schutz: Admins legen unter Admin → Einstellungen → Tresen einen PIN fest — 5 Fehlversuche sperren den PIN für 1 Minute, Sperrdaten sind HMAC-signiert und können nicht clientseitig manipuliert werden
NeuOffline-Betrieb am Tresen: Bestellungen werden bei fehlender Verbindung lokal in IndexedDB zwischengespeichert und beim Reconnect automatisch synchronisiert — identisches Verhalten wie der Kiosk-Offline-Modus
NeuTresen-Konto-Tab: Mitglied am Tresen auswählen → Saldo, SEPA-QR-Code, PayPal-Link und Zahlungsanfrage stellen — identisch zum Kiosk-Konto-Tab
NeuUndo am Tresen: Jede Tresen-Buchung kann innerhalb von 10 Sekunden rückgängig gemacht werden
VerbessertTresen-Einrichtung für Admins: Kiosk-Account-Panel in Admin → Einstellungen um Tresen-PIN-Verwaltung erweitert
BehobenSecurity: Saldo-IDOR geschlossen — Saldoabfragen sind jetzt auf das eigene Mitglied beschränkt und nicht mehr für beliebige Membership-IDs abrufbar
BehobenSecurity: Cron-Auth gehärtet — interne Cronjob-Routen prüfen jetzt einen signierten Token statt nur einer einfachen Passwortprüfung
BehobenSecurity: Kiosk-Token prüft zusätzlich die Org-Zugehörigkeit des Aufrufers — Cross-Org-Zugriff über fremde Kiosk-Tokens ist nicht mehr möglich
BehobenKiosk: Netzwerkfehler in Server-Action-Transitions führen nicht mehr zu unhandled rejections — Fehler werden sauber abgefangen
BehobenProdukte: Bildgröße wird jetzt clientseitig vor dem Upload geprüft (max. 4 MB) — kein unnötiger Upload-Versuch bei zu großen Dateien mehr

v0.41.1

Begriffsschärfung und Sicherheits-Härtung: Der „Kassenbericht" heißt jetzt korrekt „Monatsbericht" — er zeigt Saldobewegungen der Mitglieder und ist kein buchhalterisch konformer Kassenbericht. Der Export-Bereich „Inventar" wurde in „Bestandsverwaltung" umbenannt. Im Hintergrund: ein Content-Security-Policy-Header, eine gehärtete Excel-Bibliothek und automatische Qualitätsprüfungen bei jedem Commit.

Verbessert„Kassenbericht" in „Monatsbericht" umbenannt: Der Bericht zeigt Saldobewegungen der Mitglieder, ist aber kein buchhalterisch konformer Kassenbericht — die neue Bezeichnung greift überall (Export-Seite, Automationen, Statistiken, PDF-Titel, Mail-Betreff und Dateinamen)
VerbessertExport-Bereich „Inventar" in „Bestandsverwaltung" umbenannt — konsistent zur Bezeichnung an anderen Stellen der App
VerbessertSicherheit: Content-Security-Policy-Header ergänzt — begrenzt erlaubte Verbindungsziele und schützt zusätzlich gegen Clickjacking und Formular-Hijacking
VerbessertSicherheit: Excel-Export-Bibliothek auf eine gepatchte Version aktualisiert (bekannte Schwachstelle der alten Version beseitigt)
VerbessertQualitätssicherung: Typprüfung, Linting und Build laufen jetzt automatisch bei jedem Commit — Fehler werden früher erkannt, bevor sie live gehen

v0.41.0

Statistiken V2: Die Admin-Statistiken-Seite wurde komplett neu aufgebaut. Ein dynamischer Zeitraum-Selector (Diese Woche / Dieser Monat / Letzter Monat / Dieses Jahr / Alle / Benutzerdefiniert) filtert alle KPIs server-seitig. Vier neue Detailseiten bieten Drill-Down für Finanzen, Produkte, Mitglieder und Runden. Ein täglicher Cron-Job bereinigt automatisch abgelaufene Runden. Eine „Wissenswert"-Sektion zeigt Gesamtstatistiken aller Zeiten.

NeuZeitraum-Selector auf der Statistiken-Übersicht: 6 Chips (Diese Woche, Dieser Monat, Letzter Monat, Dieses Jahr, Alle, Benutzerdefiniert) — alle KPIs und Charts passen sich dynamisch an; Von/Bis-Eingabe für individuelle Zeiträume mit hellem Kalender und ohne Spinner-Pfeile
NeuNeue KPI-Reihen auf der Übersicht: 8 Kacheln in zwei Gruppen — zeitraum-sensitiv (Umsatz, Bestellungen, Ø Bestellwert, Einzahlungsquote) und Stand-jetzt (Offene Schulden, Ø Schulden/Mitglied, Mitglieder, Neue Mitglieder)
NeuDetailseite Finanzen (/admin/stats/finanzen): 5 KPIs, Doppel-Balkendiagramm (Umsatz und Einzahlungen im gleichen Slot), Breakdown-Tabelle mit Zeitraum-Zeilen und Gesamt-Footer
NeuDetailseite Produkte (/admin/stats/produkte): Top-20 nach Menge oder Umsatz (Tab-Switcher), Kategorie-Chips zum Filtern, Kategorien-Breakdown — Tab/Filter wechseln client-seitig ohne Seiten-Reload
NeuDetailseite Mitglieder (/admin/stats/mitglieder): Aktivste Mitglieder im Zeitraum, Höchste Schulden mit approximierter Schuldendauer, Inaktive Mitglieder (>90 Tage keine Bestellung), Mitglieder ohne Bestellungen als Chips
NeuDetailseite Runden (/admin/stats/runden): KPIs nach Modus getrennt (Drinks-Runden mit Sentinel-Erkennung, Kiste/Pool mit echten Einheiten), Status-Verteilung mit effektivem Status (abgelaufene Runden gelten als Abgeschlossen), Top-Rundenspender mit Einlösungen
NeuInventar-Kachel auf der Übersicht: Zeigt Anzahl getrackte Produkte und Anzahl unter Mindestbestand — nur sichtbar wenn Bestandsverwaltung für die Organisation aktiviert ist
NeuWissenswert-Sektion: Gesamtumsatz aller Zeiten, Gesamtanzahl Bestellungen, Runden gesamt mit Einlösungen, Lieblings-Produkt (meistbestelltes nach Stückzahl), Datum der ersten Bestellung
NeuCron-Job close-expired-rounds (täglich 01:00 UTC): Bereinigt automatisch alle aktiven Runden, deren Gültigkeit abgelaufen ist — Status wird von „active" auf „closed" gesetzt
VerbessertZurück-Button in allen Statistik-Unterseiten führt sauber zur Übersicht, von der Übersicht ins Admin-Dashboard — kein History-Stack durch Zeitraum-Chip-Klicks dank router.replace()
VerbessertDetails-Links auf der Übersicht: Umsatz-Trend → Finanzen, Top Produkte → Produkte, Höchste Schulden → Mitglieder, Runden → Runden
BehobenRundenstatistik zeigte falsche Einheitenzahlen: Drinks-Runden nutzen intern qty_total=9999 als Platzhalter — dieser Sentinel-Wert wird nun herausgefiltert; nur tatsächliche Claims werden als „Getränke eingelöst" gezählt
BehobenStatus-Label „closed" wurde roh angezeigt statt „Abgeschlossen"

v0.40.0

Export-Zentrale, E-Mail-Versand und automatische Jobs: Eine neue Export-Seite bündelt 6 Exportfunktionen (PDF/CSV/XLSX), Mahnmails, Kassenbericht und Getränkebestellung können direkt per Klick versendet werden, und unter Automationen lassen sich alle drei Versandtypen als monatliche Cronjobs einrichten — mit Empfänger-Konfiguration, Zeitplanung und Ausführungsprotokoll.

NeuExport-Seite (/admin/exporte): Alle Exportfunktionen an einem Ort — Mitgliederliste, Anwesenheitsliste, Kontoauszug, Kassenbericht, Mahnliste und Getränkebestellung jeweils als PDF und CSV herunterladbar
NeuKassenbericht als XLSX: Monatlicher Finanzbericht mit allen Kontobewegungen und Kontoständen aller Mitglieder — als Excel-Tabelle mit separaten Reitern
NeuGetränkebestellung-Export: Vorschlagsliste der nachzubestellenden Produkte auf Basis von Mindestbestand und Zielbestand — als PDF und CSV
NeuMahnmails direkt versenden: Empfänger-Vorschau zeigt Name und Saldo aller betroffenen Mitglieder vorab; „Jetzt mahnen"-Button ist deaktiviert wenn keine Mitglieder mit E-Mail-Adresse vorhanden sind
NeuKassenbericht per Mail: Monatsbericht als XLSX-Anhang direkt aus der Export-Seite an ausgewählte Rollen versenden
NeuGetränkebestellung per Mail: Bestellvorschlag als PDF-Anhang direkt aus der Export-Seite versenden (nur wenn Bestandsverwaltung aktiv)
NeuAutomationen (/admin/automationen): Neuer Admin-Bereich für monatliche Cronjobs — Mahnmail, Kassenbericht und Getränkebestellung können als geplante Aufgabe eingerichtet werden mit Tag des Monats, Uhrzeit (Europe/Berlin, DST-sicher) und Empfänger-Rollenwahl
NeuEmpfänger-Vorschau in Automationen: Jede Job-Konfigurationskarte zeigt live, welche Mitglieder bei Ausführung eine Mail erhalten würden
NeuJob-Ausführungsprotokoll: Tabelle aller bisherigen Ausführungen mit Status (Erfolg / Übersprungen / Fehler), Anzahl Empfänger und Detailinfo
NeuAutomationen-Kachel im Admin-Dashboard: Schnellzugriff auf die neue Automationen-Seite direkt aus dem Dashboard
VerbessertGetränkebestellung-Job deaktiviert wenn Bestandsverwaltung ausgeschaltet ist — keine sinnlosen Leerbestellungen mehr
BehobenZurück-Button Navigation: Aus Export-Seite und Automationen gelangt man korrekt ins Admin-Dashboard, von dort immer in die Usersicht — keine History-Loop mehr

v0.39.0

Offline-Modus für den Kiosk: Die Kiosk-PWA funktioniert jetzt auch ohne Internetverbindung. Mitglieder werden lokal per bcrypt-PIN authentifiziert, Bestellungen landen in einer lokalen Queue und werden beim Reconnect automatisch übertragen. Admins sehen offline erfasste Transaktionen transparent im Admin-Dashboard.

NeuKiosk-PWA offline nutzbar: Die Kiosk-Seite wird nach dem ersten Online-Start lokal gecacht (Service Worker, network-first) — bei Verbindungsunterbrechung bleibt die App vollständig bedienbar
NeuOffline-Bestellungen mit lokaler Queue: Bestellungen während einer Offline-Phase landen in einer lokalen Warteschlange (IndexedDB) mit Client-UUID — beim Reconnect werden sie automatisch und idempotent (ohne Doppelbuchung) übertragen
NeuLokaler PIN-Check ohne Server: PINs werden offline gegen den gecachten bcrypt-Hash geprüft — identisch sicher wie der serverseitige Check; 5 Fehlversuche sperren den PIN für 1 Minute
NeuSnapshot-TTL mit Datenstand-Anzeige: Amber-Banner zeigt den Zeitpunkt des letzten Online-Stands; nach 24 h erscheint der Hinweis „älter als 24 h", nach 7 Tagen ist das Bestellen gesperrt und der Banner wechselt auf Rot
NeuGastkonto offline prüfbar: guest_valid_until aus dem Snapshot wird gegen den Bestellzeitpunkt geprüft — abgelaufene Gastkonten werden direkt offline erkannt und blockiert
NeuReconnect-Flush: Bei Wiederverbindung überträgt der Kiosk automatisch alle wartenden Bestellungen — grüner Toast „Wieder online — X Bestellungen übertragen ✓" oder roter Hinweis bei Fehler
NeuAdmin-Transparenz: Offline erfasste Bestellungen sind in Admin → Transaktionen mit ⚡-Badge sowie Info-Block (Bestellzeitpunkt, Sync-Zeitpunkt, Limit-Hinweis) gekennzeichnet — Admins sehen jederzeit ob und warum ein Saldolimit offline überschritten wurde
VerbessertKonto-Tab wird offline automatisch gesperrt (🔒): Saldo, SEPA-QR-Code und Zahlungsanfragen benötigen aktuelle Serverdaten und sind offline bewusst deaktiviert
VerbessertOnline-Detection zuverlässiger: Kombiniert navigator.onLine-Events mit einem echten HEAD-Ping auf /api/health (15 s Recovery, 45 s Heartbeat) — kein falsches „online" bei gefangenem WLAN mehr
VerbessertLagerbestand beim Sync: Bestand wird ohne Gate abgebucht (min. 0) — akzeptierter Inventur-Drift wird im Buchungskommentar dokumentiert

v0.38.0

Kiosk Konto-Tab: Mitglieder sehen direkt am Kiosk ihren aktuellen Saldo, können per SEPA-QR-Code überweisen und eine Einzahlungsanfrage stellen — mit Echtzeit-Sync zwischen Kiosk und User-Modal. Dazu Kiosk-Seite als org-spezifische PWA speicherbar, Gastkonto-Fixes und Korrekturen an Stornofenster und Rundenlogik.

NeuKiosk Konto-Tab: Nach PIN-Eingabe erscheint neben „Bestellen" ein Tab „Konto" — zeigt den aktuellen Saldo (farbcodiert: rot = Schulden, grün = Guthaben), einen SEPA-EPC-QR-Code zum Scannen mit der Banking-App, IBAN/BIC/Kontoinhaber sowie ein vorausgefülltes Betrag-Feld und ein optionales Hinweis-Feld
NeuEinzahlungsanfrage direkt am Kiosk stellen: „Anfrage senden"-Button übermittelt die Anfrage an Admins — identische Logik wie im User-Modal (nur eine offene Anfrage möglich, bei offener Anfrage wird das Formular komplett ausgeblendet und nur ein amber Hinweis-Banner angezeigt)
NeuKiosk als org-spezifische PWA speicherbar: „Zum Homebildschirm hinzufügen" speichert jetzt die korrekte org-spezifische Kiosk-URL — jede Organisation hat ihr eigenes App-Icon und ihren eigenen Start-Link
VerbessertEchtzeit-Sync für Zahlungsanfragen: User-Modal aktualisiert sich sofort wenn am Kiosk eine Anfrage gestellt wird (neues INSERT-Abonnement); Kiosk Konto-Tab nutzt Supabase Realtime statt Polling — möglich durch erweiterte RLS-Policy, die Kiosk-Accounts das Lesen org-eigener Anfragen erlaubt
BehobenStornofenster „heute": Die Grenze für dasselbe Bestelldatum berechnete sich in UTC statt Europe/Berlin — Bestellungen kurz vor Mitternacht konnten am nächsten Morgen fälschlicherweise nicht mehr storniert werden
BehobenStornierung öffnet abgelaufene Runden nicht mehr: Wurde eine bereits automatisch geschlossene Runde (valid_until abgelaufen) durch eine Stornierung wieder rückabgewickelt, erschien sie irrtümlich als „aktiv" — Runden werden jetzt nur zurückgeöffnet wenn valid_until noch nicht abgelaufen ist
BehobenGastkonto erscheint nach Aktivierung automatisch in der Kiosk-Mitgliederliste — ein 15s-Poller sorgt dafür, dass kein manueller Browser-Reload mehr nötig ist
BehobenGastkonto kann bestellen: Server-seitige PIN-Prüfung lehnte Gastkonten ab, weil kein PIN hinterlegt ist — Gastkonten erhalten jetzt automatisch ein signiertes Token ohne PIN-Eingabe

v0.37.0

Transparenz bei Stornierungen: Jede Stornierung verlangt jetzt einen Pflichtgrund und protokolliert wer storniert hat — sichtbar im User-Verlauf und im Admin-Dashboard. Admins können Bestellungen direkt aus der Transaktionen-Ansicht stornieren. Dazu Zeitraum-Filter in der Bestandshistorie und mehrere Korrekturen.

NeuStornierungsgrund als Pflichtfeld: beim Stornieren einer Bestellung (User, Kiosk, Admin) öffnet sich ein Modal mit Pflichtfeld — der Grund wird gespeichert und ist im Verlauf für alle Beteiligten einsehbar
Neu„Storniert durch" Protokollierung: jede Stornierung speichert wer sie durchgeführt hat — Name und Grund erscheinen im User-Verlauf und in Admin → Transaktionen
NeuAdmin-Stornierung in Transaktionen: Admins und Kassierer können aktive Bestellungen direkt aus der Transaktionen-Ansicht heraus stornieren (mit Pflichtgrund, kein Zeitfenster)
NeuZeitraum-Filter in Bestandshistorie: Von/Bis-Datumseingaben filtern die Buchungshistorie auf einen beliebigen Zeitraum — Einstellung bleibt beim Blättern erhalten
VerbessertAktive Runden erscheinen auf der Startseite jetzt zwischen Monatsranking und den Buttons „Bestellung aufgeben" / „Runde ausgeben" — logischere Positionierung
BehobenKisten-Sortierung in Bestellung und Kiosk folgt jetzt der Kategorie- und Produktreihenfolge (wie Einzelprodukte) — keine zufällige Vermischung mehr
BehobenKiosk QR-Code und generierte Links zeigten fälschlicherweise strichfrei.app statt strichfrei.de — Domain ist jetzt zentral hinterlegt
BehobenRückgängig-Aktion (10-Sekunden-Fenster) protokolliert automatisch „Fehlbuchung/Rückgängig" als Stornierungsgrund

v0.36.0

Runde ausgeben im Kiosk: Mitglieder können nach PIN-Eingabe direkt am Kiosk eine Runde ausgeben — mit demselben 3-Modus-Modal wie in der App (Getränke / Kiste / Pool). Karten zeigen jetzt vollständige Details, eigene Runden sind claimbar und Echtzeit-Synchronisation sorgt dafür, dass Kiosk und App immer denselben Stand zeigen.

NeuRunde ausgeben im Kiosk: nach PIN-Eingabe erscheint links neben „Bestellen" ein kompakter „Runde ausgeben"-Button — öffnet das vollständige Runden-Modal mit allen 3 Modi
Neu3-Modus Runden-Modal überarbeitet: Getränke-Runde (Kontingent pro Person), Kisten-Runde (Gesamtmenge), Getränke-Pool (freies Kontingent für beliebige Getränke) als drei klare Tabs
NeuKiosk-Rundenkarten mit vollständigen Details wie in der App: Modus-Badge, Status-Zeile mit verbleibender Menge und Gültigkeit, Mengen-Input für Kisten, Schließen-Button für eigene Runden, Gesamtbeanspruchungen
VerbessertEigene Runden im Kiosk claimbar: Sponsoren können ihre eigene Runde jetzt auch am Kiosk selbst annehmen — identisches Verhalten wie in der App
BehobenRunde erscheint sofort nach dem Erstellen in der Kiosk-Liste — kein Warten auf Realtime-Verzögerung mehr
BehobenBereits beanspruchte Runden werden beim Kiosk-Login vorbelegt — kein erneutes „Annehmen" nach erneuter PIN-Eingabe möglich
BehobenMengen-Input für Kisten-Runden im Kiosk: Eingabefeld neben „Annehmen" für die gewünschte Stückanzahl (Standard 1, max. qty_remaining)
BehobenKisten-Runde aktualisiert sich nach dem Claim sofort: 2 Sekunden „✓ Prost!" dann zurück zum Annehmen-Button mit aktualisierten Zahlen — bei weiterer Restmenge weiterhin claimbar
BehobenKiosk-Runden bleiben für alle Mitglieder zuverlässig aktuell: round_claims-Realtime-Subscription, 30-Sekunden-Polling und Tab-Visibility-Refresh als dreischichtiger Fallback
BehobenUsersicht aktualisiert sich sofort wenn jemand im Kiosk eine Runde annimmt — fehlender revalidatePath-Aufruf in claimRoundViaKiosk ergänzt
BehobenPreise aus aktiven Runden entfernt: Kiosk-Karten und Einheiten-Dropdown in der Usersicht zeigen keine Preise mehr — für Annehmende ist der Preis nicht relevant

v0.35.0

Kisten, Suche & Realtime: Kistenpreis in Runden, Produkt- und Kategorie-Suche im Kiosk und SelfOrder, sortierbare Kisten-Reihenfolge und durchgängige Echtzeit-Updates in Verlauf, Kontostand und aktiven Runden.

NeuAnteiliger Kistenpreis bei Kisten-Runden: wird beim Annehmen anteilig pro beanspruchter Einheit berechnet und korrekt abgebucht
NeuKistenpreis direkt bei Einsorten-Vollkisten in Kiosk und SelfOrder: Gesamtpreis pro Kiste erscheint automatisch wenn eine Kiste nur ein Produkt enthält
NeuSuche + Kategorie-Filter in Kiosk und SelfOrder: Produktsuche und Kategorie-Tabs sind kombinierbar; Kisten erscheinen inline in der Produktliste und haben einen eigenen Tab
NeuKisten-Reihenfolge sortierbar: Admin kann Kisten-Produkte im Reihenfolge-Manager per Drag & Drop und ▲▼-Buttons anordnen
NeuAktive Runden in der App aktualisieren sich live: neuer RoundsRefresher hört auf rounds- und round_claims-Änderungen — neue Runden erscheinen sofort, Mengen nach Claims werden sofort aktualisiert
VerbessertKiste bestellen überarbeitet: Counter-Flow statt Modal, Produktbilder sichtbar, gesamte Kisten-Zeile ist klickbar (+1)
VerbessertKisten-Sektion folgt aktivem Kategorie-Filter — nur Kisten der gewählten Kategorie erscheinen, kein Mischen mehr
VerbessertSession-TTLs explizit gesetzt: reguläre Session = 1 Tag, „Angemeldet bleiben" = 30 Tage, Superadmin = 1 Jahr
BehobenBestellverlauf und Kontostand aktualisieren sich nach Kiosk-Buchungen sofort via Realtime — kein manueller Seitenrefresh mehr nötig
BehobenBestandshistorie zeigte Uhrzeiten in UTC statt Europe/Berlin — Zeitstempel sind jetzt korrekt lokalisiert
BehobenRealtime-Refresher stabiler: automatischer Reconnect bei Channel-Fehler, visibilitychange-Refresh wenn Tab wieder aktiv wird

v0.34.0

Kiosk-Accounts ohne E-Mail-Adresse: Admins legen ein gemeinsames Tablet-Konto direkt in den Org-Einstellungen an — nur ein Passwort, kein echtes E-Mail-Konto nötig. Dazu QR-Code für schnelles Einrichten, dedizierte Login-Seite und mehrere Sicherheits-Fixes.

NeuKiosk-Account pro Organisation: Admin vergibt in den Org-Einstellungen ein Passwort — ein gemeinsames Tablet-Konto ohne echte E-Mail-Adresse, das direkt in den Kiosk der Org einloggt
NeuQR-Code & Login-Link: Nach dem Anlegen zeigt das Panel einen kopierbaren Link sowie einen QR-Code zum Scannen mit dem Tablet
NeuDedizierte Kiosk-Login-Seite (/kiosk-login?org=…): nur Org-Slug und Passwort — keine sichtbare E-Mail-Adresse
NeuAdmin-Exit-Button im Kiosk: Admins die versehentlich im Kiosk landen sehen oben rechts „← Admin-Dashboard" und kommen sofort wieder raus, ohne in einer Redirect-Schleife zu landen
VerbessertKiosk-Verwaltung aus der Mitgliederliste herausgelöst: Kiosk-Accounts erscheinen nicht mehr in der Mitgliederliste und werden nicht über die Rollenzuweisung verwaltet, sondern über einen eigenen Bereich in den Einstellungen
BehobenKiosk-Route war für alle eingeloggten Mitglieder zugänglich — Zugriff ist jetzt auf Admins und den dedizierten Kiosk-Account beschränkt
BehobenKiosk-Login überschreibt jetzt keine bestehende Admin-Session mehr — verhindert die Redirect-Schleife bei der ein Admin im Kiosk gefangen war
EntferntTote Datenbanktabellen entfernt: kiosk_devices, audit_log, notifications, notification_preferences, price_history sowie nie befüllte Spalten payments.period_start / period_end

v0.33.0

Alle Geldbuchungen laufen jetzt über atomare PostgreSQL-Funktionen — kein inkonsistenter Zustand bei Fehlern mehr. Dazu Sofort-Rückgängig nach jeder Bestellung, überarbeitetes Undo-UI und umfangreiche Code-Qualitätsverbesserungen.

NeuAtomare Geldbuchungen: place_order, claim_round, cancel_order und undo_order als PostgreSQL SECURITY DEFINER Funktionen — alle Schreibvorgänge (Bestellung, Bestand, Runden-Kontingent, Storno-Rückbuchung) laufen in einer einzigen Transaktion; kein inkonsistenter Zustand bei Fehlern mehr möglich
NeuSofort-Rückgängig: Direkt nach jeder Buchung (Kiosk + Self-Order) erscheint ~10 Sekunden lang eine „Rückgängig"-Kachel — ein Tap macht die Buchung vollständig rückgängig, unabhängig von der Org-Storno-Einstellung (Fehlklick-Korrektur durch dieselbe Person)
Neuorders.source: Jede Buchung merkt sich die Herkunft (self / kiosk / counter) — Basis für künftigen Verkaufstresen-Modus
NeuProd-Asserts: Beim Start in Produktion werden fehlende Pflicht-Umgebungsvariablen sofort gemeldet statt still zu scheitern
VerbessertRückgängig-UI überarbeitet: „Weiter/Fertig" ist jetzt der große primäre Button, Rückgängig eine kleinere rote Kachel darunter — verhindert versehentliche Taps auf Mobile und Tablet
VerbessertOrg-Checks zentralisiert: requireOrgAdmin-Helper und userId direkt aus requireOrgAccess — redundante Auth-Aufrufe in payments.ts, payment-requests.ts und inviteMember entfernt
BehobenEigene Runde beanspruchen war nach dem RPC-Refactoring fälschlicherweise gesperrt — Sponsoren können ihre eigene Runde jetzt wieder selbst beanspruchen
Entferntinventory-utils.ts entfernt: Komplette Inventar-Logik läuft jetzt in den Postgres-RPCs — der doppelte clientseitige Code war toter Ballast

v0.32.0

Personalisierte Mitgliedereinladungen via E-Mail, überarbeitetes Einladungs-Dashboard mit Statusfiltern und neue Admin-Rankings mit Zeitraumfilter.

NeuMitglied direkt per E-Mail einladen: personalisierter Einladungslink (einmalig verwendbar, 7 Tage gültig) wird automatisch per E-Mail von noreply@strichfrei.de verschickt — kein Supabase-Umweg mehr, vollständige Kontrolle über Absender und Inhalt
NeuAdmin-Rankings mit Zeitraumfilter: Von/Bis frei wählbar, Award-Tabellen (Bierkönig, Spender des Monats) zeigen die Rangliste für den gewählten Zeitraum
NeuEinladungs-Dashboard neu gestaltet: eine Kachel, zwei Rubriken — allgemeiner Einladungslink und direkte personalisierte Einladungen mit Statusfilter (Ausstehend / Angenommen / Widerrufen / Abgelaufen). Kachel und Direkteinladungen-Bereich sind je separat ein-/ausklappbar
VerbessertBenachrichtigungseinstellungen im Profil: alle Orgs sind einzeln ein-/ausklappbar — übersichtlicher bei mehreren Organisationen, standardmäßig alles zugeklappt
BehobenDatumsfilter in den Rankings: Zukunftsdaten waren fälschlicherweise gesperrt; Dark-Mode-Kalender (nativer Datepicker-Popup) war kaum lesbar — beides behoben
BehobenNavigation: Zurück-Button landete nach einer Mitglieder-Einladung auf der Erfolgsseite (?invited=1) — Erfolgsanzeige ist jetzt reiner UI-State ohne URL-Manipulation, Browser-Verlauf bleibt sauber
BehobeniOS PWA: stummer „Connection closed"-Fehler nach dem Login verhinderte die Weiterleitung ins Dashboard — Fehler wird jetzt abgefangen
BehobeniOS WKWebView: Doppelter Trigger beim Registrierungs-Bestätigungslink verhindert — Bestätigung läuft jetzt über eine eigene, einmalig ausführbare Route
BehobenReihenfolge-Panel öffnete sich leer wenn eine Org nur 1 Produkt in 1 Kategorie hat — erklärender Hinweis zeigt jetzt, ab wann Sortieroptionen erscheinen
BehobenEinladungslink in der E-Mail zeigte fälschlicherweise app.strichfrei.de statt strichfrei.de als Domain

v0.31.0

Bestandsverwaltung live: Produkte mit leerem Lager sperren sich automatisch und zeigen sofort „Nicht vorrätig" — Bestandsänderungen wirken in Echtzeit ohne Seitenreload. Dazu dreifache Absicherung gegen doppelte Einheitstypen und ein verbessertes Superadmin-Dashboard.

NeuNicht-vorrätig-Anzeige: Produkte mit leerem Lagerbestand werden im Kiosk und Self-Order automatisch gesperrt — rot markiert mit „Nicht vorrätig"-Badge, Bestellung nicht mehr möglich
NeuEchtzeit-Bestandsänderungen: Zu- und Abgänge (Lieferung, Inventur, Bestellung) wirken sofort auf Kiosk und App — ohne Seitenreload dank Supabase Realtime
VerbessertBestandssemantik: Bestand nie eingepflegt (NULL) wird wie Bestand = 0 behandelt — ein Produkt ist nicht bestellbar, bis ein realer Bestand erfasst wurde
BehobenEinheitstyp-Duplikate pro Produkt verhindert: DB-Unique-Constraint, Server-seitige Prüfung vor dem INSERT und UI-Filterung (bereits verwendete Typen sind nicht mehr auswählbar) sichern gemeinsam ab, dass kein Typ doppelt zugewiesen werden kann
VerbessertSuperadmin-Dashboard: Volltextsuche über alle Organisationen (Name, Slug, Eigentümer-E-Mail) und einklappbare Archiv-Rubrik für inaktive Organisationen

v0.30.0

Stabilität und Datenkonsistenz: atomare Produktanlage, einheitliche Produktreihenfolge, Echtzeit-Saldo-Anzeige und mehrere Superadmin-Bugfixes.

NeuEchtzeit-Saldo: Bestellungen aus dem Kiosk aktualisieren den Kontostand des Mitglieds unmittelbar — kein Seitenreload mehr nötig, um den aktuellen Saldo zu sehen
BehobenSuperadmin-Dashboard: Einheitentypen und Produktpreise waren im Superadmin-Modus unsichtbar — RLS-Policies der Tabellen org_unit_types und product_units nutzten rohe Subqueries ohne Superadmin-Bypass und wurden auf die bewährten is_org_member() / is_org_admin()-Hilfsfunktionen umgestellt
BehobenQR-Code Verwendungszweck enthielt bisher auch den Hinweistext aus den Zahlungseinstellungen — im Verwendungszweck steht jetzt ausschließlich Vor- und Nachname des Mitglieds
BehobenNeues Produkt konnte ohne Einheiten in der Datenbank landen, wenn der Insert der Einheiten scheiterte und der anschließende Cleanup-Delete ebenfalls fehlschlug — Produktanlage ist jetzt atomar: eine PostgreSQL-Funktion legt Produkt und Einheiten in einer einzigen Transaktion an, bei Fehler rollt alles automatisch zurück
BehobenProduktreihenfolge war in Admin-Dashboard, Kiosk und SelfOrder-Ansicht unterschiedlich, weil alle neuen Produkte denselben sort_order (0) erhielten und die drei Ansichten den Gleichstand unterschiedlich auflösten — alle Ansichten nutzen jetzt einheitlich sort_order → Name als Tiebreaker
VerbessertNeue Produkte werden automatisch ans Ende ihrer Kategorie einsortiert (sort_order = max + 10) statt alle auf 0 zu landen — die manuell eingestellte Reihenfolge bleibt dadurch stabil
VerbessertOrganisation anlegen (Superadmin): scheitert das Anlegen der Standard-Einheitentypen, wird die Organisation sofort wieder gelöscht (Rollback) statt einen inkonsistenten Zustand zu hinterlassen
VerbessertBestehende Organisationen ohne Einheitentypen erhalten automatisch „Stück" und „Kiste" nachträglich — Nachrüstmigration stellt sicher, dass Produkte in allen Orgs sofort bearbeitbar sind
Entfernt„Stornierungen bei Guthaben" wurde als Admin-Option entfernt — die Einstellung hatte in der Praxis keinen Nutzen und erzeugte Verwirrung

v0.29.0

Bestandsmanagement grundlegend erweitert: lückenlose Bestandshistorie (inkl. Bestellungen), Schwellwerte für Mindest- und Zielbestand je Produkt sowie eine komplett überarbeitete Tab-Navigation.

NeuBestandshistorie: vollständige, paginierte Bewegungsliste — Zugänge (Lieferung, Inventur, Korrekturen), Abgänge aus Bestellungen und Stornierungen sind lückenlos mit Zeitstempel, Buchungsgrund und ausführendem Mitglied dokumentiert
NeuBestandshistorie je Produkt: Produkt in der Bestandspflege aufklappen → direkt gefilterte Historie nur für diesen Artikel
NeuSchwellwerte je Produkt: Mindestbestand (ab wann bestellen) und Zielbestand (wie viel auffüllen) — Grundlage für die spätere automatische Bestellmail an den Getränkehändler
NeuErklär-Icons (ⓘ) bei Mindestbestand und Zielbestand: Hover (Desktop) oder Antippen (Mobile) zeigt eine kompakte Erklärung was der jeweilige Wert bedeutet und wie er bei Bestellungen wirkt
NeuBestandsstatus-Badges: visueller Ampelstatus direkt auf der Produktkachel — „⚠ Mindestbestand" (rot) wenn der Bestand den Schwellwert erreicht oder unterschreitet
VerbessertInventar-Navigation: Bestandspflege und Bestandshistorie sind jetzt als klare Tabreiter oben getrennt — kein endloses Scrollen mehr an 86+ Produkten vorbei, um zur Historie zu kommen
VerbessertBestandshistorie: Filter (Produkt, Buchungsgrund, Zeitraum) und Paginierung nutzen URL-Parameter — alle Links verwenden „replace" statt „push", d. h. der Browser-Zurück-Button führt immer zurück ins Admin-Dashboard, nicht durch einzelne Filterzustände
BehobenBestellungen reduzierten den Lagerbestand, tauchten aber nie in der Bestandshistorie auf — alle drei Abzugspfade (Kiosk-Bestellung, Self-Order, Runden-Claim) schreiben jetzt einen Eintrag mit Grund „Bestellung" und Referenz auf das Mitglied
BehobenStornierungen wurden ebenfalls nicht protokolliert — auch Stornobuchungen erscheinen jetzt mit eigenem Eintrag (Grund „Stornierung") in der Historie
BehobenMobile UX: Spinner-Pfeile (▲▼) aus Mengen-Inputs in der Bestandspflege entfernt — Eingabefelder verwenden jetzt type="text" + inputMode="numeric" statt type="number"

v0.28.0

Dark- und Light-Mode wählbar: Die App startet standardmäßig im dunklen Design, kann aber im Profil dauerhaft auf Hell oder System umgestellt werden.

NeuDark-/Light-Mode-Umschalter im Profil: Dunkel (Standard), Hell oder Systemeinstellung — Auswahl wird lokal gespeichert und sofort ohne Seitenreload übernommen
VerbessertAlle Seiten und Komponenten (Admin, Kiosk, Profil, Marketing) sind vollständig auf beide Modi ausgelegt — kein Flackern beim ersten Laden dank SSR-sicherem Script-Inject

v0.27.0

Umfangreiche Security-Härtung nach internem Audit: Tenant-Isolation für alle Geldbuchungen, serverseitige Kiosk-PIN-Prüfung, CSV-Injection-Schutz und weitere Schließungen.

BehobenSecurity: Geldbuchungen (Einzahlung, Auszahlung, Umlage) werden jetzt immer gegen die verifizierte Organisation des aufrufenden Nutzers geprüft — ein Admin konnte theoretisch Mitglieder einer fremden Organisation buchen (Tenant-Isolation)
BehobenSecurity: Kiosk-PIN-Validierung erfolgt vollständig serverseitig und ist an das Org-Token gebunden — clientseitige Umgehung ist nicht mehr möglich
BehobenSecurity: verify_kiosk_pin ist jetzt an die Organisation des Aufrufers gebunden — ein Kiosk-Token einer anderen Org konnte PINs gegen eine fremde Org prüfen
BehobenSecurity: CSV-Exporte (Mitglieder, Inventur) sind gegen Formula- und Quote-Injection gehärtet — Felder mit =, +, -, @ oder Anführungszeichen werden korrekt escaped
BehobenSecurity: Open-Redirect in Auth-Callbacks und Zahlungsanfragen-Weiterleitungen geschlossen — only-relative-path-Prüfung verhindert Weiterleitungen auf externe Domains
BehobenSecurity: Org-Scoping in mehreren weiteren Server Actions lückenhaft — alle betroffenen Endpunkte prüfen jetzt membership.organization_id gegen die angefragte Org
VerbessertCode-Qualität: ESLint-Warnungen von 58 auf 13 reduziert, React-Rules-of-Hooks-Fehler behoben, Sentry-Demo-Seite entfernt

v0.26.0

Produkteinheiten abgesichert, abgelehnte Zahlungsanfragen im Verlauf sichtbar und zahlreiche UX-Verbesserungen für Mobile.

NeuAbgelehnte Ein- und Auszahlungsanfragen erscheinen jetzt im Transaktionsverlauf des Mitglieds — mit „Abgelehnt"-Badge und durchgestrichenem Betrag
NeuAbgelehnte Zahlungsanfragen sind auch in der Admin-Transaktionssuche (Zahlungen-Filter) sichtbar
NeuZahlungs- und Auszahlungs-Modal öffnet auf Mobile jetzt als Bottom-Sheet von unten — ergonomischer auf dem Smartphone
NeuBeim Anlegen einer neuen Organisation werden automatisch die Einheitentypen „Stück" und „Kiste" erstellt — Produkte können sofort angelegt werden
VerbessertEinheitentyp löschen: Wird ein Typ noch von Produkten verwendet, erscheint eine verständliche Fehlermeldung statt eines rohen Datenbankfehlers
VerbessertLetzte aktive Einheit eines Produkts kann nicht mehr deaktiviert werden — ein Produkt hat immer mindestens eine aktive Einheit
VerbessertIBAN-Feld in den Zahlungseinstellungen ist auf Mobile jetzt volles Feld (kein Zwei-Spalten-Layout mehr auf kleinen Screens)
VerbessertBestätigen/Ablehnen-Buttons bei offenen Zahlungsanfragen (Admin) haben jetzt iOS-konforme Touch-Target-Größe (min. 44 px)
VerbessertZahlungsdetails im Einzahlungs-Modal: QR-Code und IBAN-Angaben stapeln sich auf Mobile übereinander statt abgeschnitten nebeneinander
BehobenEinheitentyp-Fremdschlüssel auf RESTRICT geändert — Löschen eines Typs, der noch von Produkten genutzt wird, ist jetzt sicher blockiert
BehobenIrrtümlicher Hinweis „Reihenfolge bestimmt Darstellung im Kiosk" bei Einheitentypen entfernt

v0.25.0

Zahlungsintegration: Mitglieder können ihren Saldo direkt über die App ausgleichen oder eine Auszahlung anfragen — mit SEPA-QR-Code, Admin-Bestätigungsflow und E-Mail-Benachrichtigungen.

NeuZahlungsanfragen: Mitglieder mit offenem Saldo sehen direkt in der Saldo-Kachel einen „Saldo ausgleichen"-Button — inkl. IBAN, BIC, Kontoinhaber und scannem SEPA-QR-Code für Banking-Apps
NeuAuszahlungsanfragen: Mitglieder mit Guthaben können eine Rückzahlung anfragen — der beantragte Betrag wird sofort als gesperrt angezeigt und vom verfügbaren Guthaben abgezogen
NeuAdmin-Dashboard: Offene Zahlungsanfragen erscheinen als einklappbares Panel — Admins und Kassierer können Anfragen mit einem Klick bestätigen oder ablehnen
NeuE-Mail-Benachrichtigungen: Admins und Kassierer erhalten eine E-Mail bei neuen Zahlungsanfragen (von noreply@strichfrei.de, im gleichen Design wie die Auth-Mails)
NeuBenachrichtigungseinstellungen im Profil: Admins, Kassierer und Bestandsmanager können E-Mail-Benachrichtigungen pro Org individuell aktivieren oder deaktivieren
NeuZahlungseinstellungen (Admin): IBAN, BIC, Kontoinhaber, optionaler PayPal.me-Link und Hinweistext für Mitglieder — mit IBAN Mod-97 und BIC ISO-9362-Validierung
NeuSEPA-QR-Code im Einzahlungs-Modal: Betrag passt sich live an, QR-Code ist als PNG speicherbar oder per Web Share (iOS/Android) teilbar
VerbessertSaldo-Anzeige berücksichtigt ausstehende Auszahlungsanfragen — angezeigter Saldo entspricht dem tatsächlich verfügbaren Betrag
VerbessertRangliste und Leaderboard werden nach Profilbild- und Namensänderungen sofort aktualisiert
BehobenAuszahlungsanfrage kann nicht mehr über das verfügbare Guthaben hinausgehen — sowohl client- als auch serverseitig geprüft

v0.24.0

Superadmins können jetzt direkt in das Admin-Dashboard jeder Organisation springen — ohne Mitgliedschaft.

NeuSuperadmin-Dashboard: „Als Admin öffnen"-Button pro Organisation — direkte Weiterleitung ins Org-Admin-Dashboard mit vollen Admin-Rechten, ohne der Org beizutreten
VerbessertSuperadmin-Zugriff auf Org-Seiten wird in der Navigation kenntlich gemacht — kein Verwechslungsrisiko mit echten Mitgliedsrechten

v0.23.0

Superadmins können Organisationen jetzt vollständig per Einladungslink bootstrappen — der erste Beitretende wird automatisch Admin.

NeuSuperadmin-Dashboard: Einladungslink pro Organisation generieren — Link erscheint direkt im Dashboard und kann per Klick kopiert werden
VerbessertErster User einer neu angelegten Organisation tritt automatisch als Admin bei, nicht als einfaches Mitglied — kein manueller DB-Eingriff mehr nötig
VerbessertOrg-Anlegen: Slug wird automatisch aus dem Namen abgeleitet (Umlaute korrekt umgeschrieben), Name und Slug bleiben nach einem Validierungsfehler erhalten
BehobenDoppelter Org-Slug zeigt jetzt eine verständliche deutsche Fehlermeldung statt einem rohen Datenbankfehler
BehobenFehlgeschlagene Beitrittsversuche über Einladungslinks werden jetzt mit dem genauen Fehlergrund geloggt (erleichtert Fehlersuche)

v0.22.0

Deutlich schnellere App, überarbeitete PDF-Exporte mit Logo, AGB-Zustimmung bei der Registrierung und eine Rangliste, die sich sofort und konsistent aktualisiert.

NeuAGB-Zustimmung bei der Registrierung: neue Nutzer akzeptieren die AGB und bestätigen die Kenntnisnahme der Datenschutzerklärung aktiv per Pflicht-Checkbox — rechtlich sauber dokumentiert
VerbessertSpürbar schnellere App: Server nach Frankfurt verlagert (direkt neben der Datenbank), Anmelde-Prüfung läuft jetzt lokal statt über einen Server-Umweg, und die App-Hülle wird zwischengespeichert — Dashboard, Org-Wechsel und Rangliste öffnen deutlich flotter, besonders als Home-Screen-App
VerbessertPDF-Exporte überarbeitet: strichfrei-Logo in Kopf- und Fußzeile, Mitgliederliste reduziert auf Name + Saldo (nur aktive Mitglieder, sortiert wie im Kiosk: Nachname zuerst), gepunktete Leitlinien gegen Verrutschen in der Zeile
VerbessertInventurliste als Zähl-Vordruck: eine Zeile je Produkt mit eigener Spalte je Mengeneinheit (z. B. Stück und Kiste nebeneinander zum Eintragen), Produkte in der im Admin festgelegten Reihenfolge
VerbessertDatenschutz & Impressum aktualisiert: Sentry und Vercel Analytics als Auftragsverarbeiter ergänzt, Hinweis zur EU-Streitschlichtung im Impressum
BehobenRangliste & Monats-Awards aktualisieren sich jetzt sofort nach jeder Buchung — und Dashboard und Ranglisten-Seite zeigen garantiert dieselben Zahlen (vorher konnten sie veralten und auseinanderlaufen)

v0.21.0

SEO-Update: Favicon erscheint jetzt zuverlässig in Google-Suchergebnissen, strukturierte Daten für bessere Markenerkennung.

BehobenFavicon in Google-Suchergebnissen: strichfrei-Logo wird jetzt stabil indexiert — bisher änderte sich die Favicon-URL bei jedem Deployment, was Google daran hinderte das Logo zu cachen
VerbessertStrukturierte Daten (JSON-LD): Organisation mit Logo, E-Mail und Instagram-Link angereichert — verbessert die Markenerkennung in Google

v0.20.0

Qualitäts-Update: Absturz der Rangliste behoben, „Angemeldet bleiben" funktioniert jetzt zuverlässig, gelöschte Profilbilder werden wirklich entfernt und der Kiosk zeigt Avatar-Änderungen sofort.

BehobenRangliste: Absturz behoben, wenn nur Gast-Konten diesen Monat aktiv waren — Gast- und Kiosk-Konten werden jetzt vollständig aus allen Ranglisten-Berechnungen ausgeschlossen
Behoben„Angemeldet bleiben" deaktiviert: Session endet jetzt auch nach mehr als einer Stunde zuverlässig beim Schließen des Browsers (Token-Refresh hat die Einstellung zuvor überschrieben)
BehobenProfilbild löschen entfernt das Bild jetzt wirklich aus dem Speicher — bisher blieb die Datei öffentlich erreichbar. Gleiches gilt beim Bildtausch: die alte Datei wird aufgeräumt
VerbessertKiosk: Avatar-Änderungen werden jetzt per Echtzeit-Update sofort in der Mitgliederliste angezeigt, ohne manuellen Reload
VerbessertRangliste: Daten werden 5 Minuten gecacht — deutlich schnellere Ladezeit beim Aufruf der Detailseite

v0.19.0

Profilbilder, polierter Login, Kiosk-Redesign mit Foto & Sortierfixes, neue Ranglisten-Detailseite mit Bierkönig und Spender des Monats.

NeuProfilbild: Jeder Nutzer kann ein Foto in seinem Profil hinterlegen — erscheint dann direkt in der Kiosk-Mitgliederliste
NeuRangliste: neue Detail-Seite mit Bierkönig (meiste Getränke) und Spender des Monats (meiste Runden) als Award-Karten, darunter die vollständige Monats-Tabelle
NeuLogin: Eingabefelder mit Icons (Briefumschlag / Schloss), Passwort-Sichtbarkeits-Toggle und „Angemeldet bleiben"-Checkbox — nicht angemeldet bleiben löscht die Session beim Schließen des Browsers
NeuPWA: Home-Screen-App öffnet jetzt direkt das Dashboard statt die Marketing-Seite — bei fehlender Session automatisch zum Login
VerbessertKiosk-Mitgliederliste: Kacheldesign mit Profilfoto / Initialen-Avatar und Chevron-Pfeil, sortiert nach Nachname (Gäste immer oben), Anzeige als „Nachname Vorname"
VerbessertMonatsranking-Teaser auf der Startseite ist jetzt anklickbar und führt zur neuen Detailseite
BehobenKiosk: Produkt-Dropdown bei Runden folgt jetzt der Admin-Sortierreihenfolge (Kategorie → Produkt → Einheit)
BehobenRangliste: Gast- und Kiosk-Konten erscheinen nicht mehr in den Ranglisten-Tabellen

v0.18.0

Runden verbessert: Sponsor kann eigene Runde selbst beanspruchen, Kisten-Mengenauswahl per Eingabefeld, Verlauf aktualisiert sich sofort nach jeder Buchung und die Produktliste folgt der Admin-Reihenfolge.

NeuEigene Runde beanspruchen: Wer eine Runde ausgibt, kann sie jetzt auch selbst annehmen — mit denselben Regeln wie andere Mitglieder (qty_per_person-Limit bei Getränke-Runden)
NeuKisten-Mengenauswahl: Eingabefeld neben „Annehmen" — Standard 1, editierbar bis zur Restmenge. Auf Mobile öffnet automatisch die Zifferntastatur, kein Scrollen nötig
BehobenVerlauf aktualisiert sich nach jeder Buchung (Runde annehmen, Self-Order) sofort — kein manueller Seitenrefresh mehr nötig
BehobenProdukt-Dropdown bei Runden folgt jetzt der im Admin eingestellten Reihenfolge (Kategorie → Produkt → Einheit) statt zufälliger Datenbank-Reihenfolge

v0.17.0

Kontakt-Sektion auf der Startseite, professionelle Transaktions-E-Mails über Resend, einheitliches schwarzgrünes E-Mail-Design und automatisiertes Fehler-Monitoring über Sentry.

NeuKontakt-Sektion auf der Startseite: schnell erreichbar über die Navigation — E-Mail (hallo@strichfrei.de) und Instagram direkt verlinkt
NeuFehler-Monitoring via Sentry: unerwartete Fehler werden automatisch gemeldet — Nutzer sehen eine klare Fehlermeldung mit „Nochmal versuchen"-Button statt einem leeren Bildschirm
VerbessertE-Mail-Versand: Supabase-Auth-Mails (Registrierung, Passwort zurücksetzen, Magic Link, Einladung) werden jetzt über Resend verschickt — zuverlässigere Zustellung, weniger Spam-Ordner
VerbessertE-Mail-Templates: alle 5 Transaktions-E-Mails im einheitlichen strichfrei-Design (schwarz/grün, SVG-Logo, BETA-Badge) — mit Hinweis, dass Antworten auf noreply@ nicht gelesen werden
VerbessertTechnisch: 168 automatisierte Tests + GitHub Actions CI — alle Kernfunktionen (Zahlungen, Umlage, Jugendschutz, Icons, Stornofenster, Inventar) werden bei jedem Push geprüft

v0.16.0

Produkt-Icons mit automatischer Erkennung und manuellem Picker, vollflächig klickbare Kiosk-Kacheln und Instagram-Präsenz.

NeuProdukt-Icons: Automatische Emoji-Erkennung aus dem Produktnamen — Pils → 🍺, Cola → 🥤, Mineralwasser → 💧, Wein → 🍷 und weitere (30+ Regeln)
NeuIcon-Picker im Produkt-Formular: Emoji aus 5 Gruppen (Bier & Wein, Cocktails, Alkoholfrei, Essen, Sonstiges) manuell wählbar — oder auf automatische Erkennung zurücksetzen
BehobenKiosk: Produktkachel ist jetzt vollflächig klickbar (+1) — vorher musste man genau den + Button treffen. Identisches Verhalten wie im Self-Order-Modal
VerbessertKiosk: Leichtes Tap-Feedback (scale-Animation) beim Antippen einer Produktkachel
NeuInstagram-Link im Footer der Startseite (@strichfrei)

v0.15.0

Technische Bereinigung: ESLint-Fehler behoben, veraltete Datenbankfunktionen entfernt, mobile Navigation stabilisiert und SEO-Verifikation ergänzt.

BehobenMobil: Langer Organisationsname in der Admin-Kopfzeile wird jetzt abgeschnitten (…) statt umzubrechen — Rolle (Admin/Kassierer) bleibt immer sichtbar
BehobenInternes Qualitätswerkzeug (ESLint) wieder funktionsfähig — Monorepo-Konfiguration korrigiert, alle Fehler behoben
EntferntVeraltete Datenbankfunktion place_kiosk_order entfernt — wurde durch das aktuelle Bestellsystem mit Produkteinheiten ersetzt und war nirgends mehr im Einsatz
EntferntAutomatischen RLS-Event-Trigger (rls_auto_enable) entfernt — alle Tabellen haben RLS explizit gesetzt, der Trigger war redundant
VerbessertSEO: Google Search Console Verifikation hinterlegt — Suchergebnisse können jetzt überwacht werden
VerbessertFehlende Datenbankfunktionen (create_organization, set_member_pin, reset_member_pin, verify_kiosk_pin) in die Versionsverwaltung aufgenommen — Staging und Produktion sind jetzt schema-identisch

v0.14.0

Code-Review-Runde: bessere Nutzung großer Bildschirme, bereinigter Routenbaum und interne Verbesserungen an Wartbarkeit und Struktur.

VerbessertDesktop & Tablet: Admin-Dashboard, Produktverwaltung und Mitglieder-Ansicht nutzen jetzt mehr Bildschirmbreite (max-w-5xl statt max-w-4xl) — weniger ungenutzter Weißraum auf großen Monitoren
VerbessertAdmin-Dashboard: Statistik-Kacheln zeigen auf breiten Screens bis zu 4 Spalten nebeneinander
VerbessertAdmin-Produkte: Produktkacheln nutzen auf sehr breiten Screens eine vierte Spalte (xl:)
VerbessertKiosk-Produktgrid: stufenweise Spaltenanzahl — 2 (Handy) → 3 (Handy quer) → 4 (Tablet) → 5 (Desktop) für optimale Bildschirmauslastung
BehobenVeraltete Weiterleitungs-Routen /changelog und /handbuch entfernt — die URLs waren nie öffentlich erreichbar und sind jetzt vollständig aus dem Routenbaum bereinigt
VerbessertTechnisch: gemeinsamer Auth-Helper requireOrgMember zentral in lib/org statt in jeder Datei einzeln — weniger Duplikatcode, einfachere Pflege
VerbessertTechnisch: KioskProductCard als eigene Komponente extrahiert — Kiosk-Hauptdatei um ~115 Zeilen Duplikatcode reduziert

v0.13.0

Produkt- und Kategorien-Reihenfolge per Drag & Drop, vollständige Kategorienverwaltung direkt in der Liste, kategorielose Produkte klar gekennzeichnet und SEO-Verbesserungen auf der Startseite.

NeuReihenfolge anpassen: Kategorien und Produkte per Drag & Drop oder ▲▼-Buttons sortieren — Reihenfolge gilt im Kiosk, Self-Order und der Produktliste
NeuKategorie löschen: rotes X direkt in der Kategorieliste — mit Doppelklick-Bestätigung (kein Browser-Dialog), Produkte werden vor dem Löschen abgefragt
NeuFSK je Kategorie: direkt in der Kategorieliste auswählen und sofort ohne Bestätigung gespeichert
NeuKategoriename inline umbenennen: Bleistift-Icon in der Kategorieliste — Enter zum Speichern, Escape zum Abbrechen
NeuKategorielose Produkte: amber Badge „⚠ Kategorie fehlt" auf der Produktkarte im Admin-Bereich als visueller Hinweis
NeuKiosk & Self-Order: Produkte ohne Kategorie erscheinen jetzt unter der Gruppe „Sonstige" statt unsichtbar zu sein
NeuReihenfolge-Modul: „Sonstige (keiner Kategorie zugeordnet)" zeigt kategorielose Produkte auch im Sortier-Manager, sortierbar ab 2 Produkten
NeuStartseite: App-Teaser-Leiste für iOS & Android (in Kürze verfügbar)
VerbessertStartseite: kurzer Erklärungstext ergänzt — beschreibt den eigenen Account und den gemeinsamen Kiosk-Tablet-Zugang
VerbessertReihenfolge-Modul: Refresh-Button (⟳) aktualisiert die Liste ohne kompletten Seiten-Reload
BehobenFavicon: Größe von 32 px auf 64 px erhöht — Google benötigt mindestens 48 px für die Darstellung des Logos in Suchergebnissen
Mai 202611 Releases · 0.12.00.2.0

v0.12.0

Registrierung per E-Mail-Bestätigung funktioniert jetzt vollständig, mobile Darstellung weiter überarbeitet und ein Zeitzonen-Fehler im Datumsfilter behoben.

BehobenRegistrierung: Nach Klick auf den Bestätigungslink wird man jetzt automatisch eingeloggt und weitergeleitet — vorher blieb die Warteseite hängen
BehobenRegistrierung: Eine bereits vergebene E-Mail-Adresse wird sofort erkannt — mit Hinweis „bereits registriert", Button zur Anmeldung und Link zum Passwort-Zurücksetzen, statt erneut eine (wirkungslose) Bestätigungsmail anzubieten
BehobenVerlauf & Transaktionen: Ein Zeitzonen-Fehler zeigte Einträge nahe Mitternacht am falschen Tag (z. B. erschien „28.05., 01:29 Uhr" beim Filter „bis 27.05.") — Tagesgrenzen werden jetzt korrekt in lokaler Zeit berechnet
BehobenMobil: Kein horizontales Verschieben der Seite mehr — die Ansicht bleibt auf die Gerätebreite begrenzt und scrollt nur noch nach oben/unten
BehobenMobil: Eingabefelder zoomen auf dem iPhone nicht mehr automatisch hinein (z. B. beim Kontostand verwalten)
BehobenMobil: Produkt anlegen und bearbeiten — Felder (Einheitentyp, Preis, Faktor) überlappten sich; jetzt sauber gestapeltes Layout
BehobenMobil: Kopfzeile der Mitglieder-Ansicht — der „Abmelden"-Button lief aus dem Bildschirm; bricht jetzt sauber um
VerbessertAuth-Bestätigungslinks (Registrierung) laufen jetzt über eine eigene, abgesicherte Weiterleitungs-Route

v0.11.0

Server-seitige Verlauf- und Transaktionssuche, durchgängig einheitliche Navigation, überarbeitete mobile Darstellung und ein nutzerfreundlicher Registrierungs-/Login-Flow.

NeuVerlauf (Mitglieder): Der Zeitraum-Filter durchsucht jetzt die gesamte Historie auf dem Server — auch lange zurückliegende Einträge (z.B. „Mai vor zwei Jahren") sind direkt über das Datum auffindbar, ohne alles nachladen zu müssen
NeuAdmin → Transaktionen: neues Selektionsbild — erst Filter setzen (Mitglied, Art, Zeitraum), dann „Suchen". Es werden nur noch die Treffer geladen statt aller Transaktionen beim Öffnen
NeuRegistrierung & Login: Bei noch nicht bestätigter E-Mail erscheint jetzt ein klarer deutscher Hinweis mit Button „Bestätigungsmail erneut senden" und Support-Kontakt (hallo@strichfrei.de)
VerbessertEinheitlicher „Zurück"-Button in der ganzen App: größeres Touch-Ziel (≥ 44 px), echtes Pfeil-Icon und Rücksprung dorthin, woher man kam
VerbessertBestell- und Kiosk-Ansicht: „Zurück"-Buttons im gleichen einheitlichen Stil
VerbessertDialoge: Der Seiten-Hintergrund scrollt nicht mehr mit, wenn ein Dialog offen ist; Schließen zusätzlich per Escape und Klick außerhalb
VerbessertBereits angemeldet und „Zur App" von der Startseite geöffnet → man landet direkt im Dashboard statt auf der Login-Seite
VerbessertMobile Darstellung überarbeitet: Mitgliederliste, Einladungslink-Panel, Rollen-Auswahl und Dashboard-Karten brechen jetzt sauber um
VerbessertFehlermeldungen bei Anmeldung und Registrierung durchgängig auf Deutsch
VerbessertApp-Icon zentriert und mit glatten Kanten (Browser-Tab, iOS-Homescreen, Android)
BehobenSicherheit: Der Verlauf eines anderen Mitglieds derselben Organisation ließ sich über einen direkten Aufruf auslesen — Eigentümer-Prüfung ergänzt
BehobenMitgliederliste auf dem Handy: Namen fehlten teilweise und Elemente überlagerten sich
Behoben„Zurück" im Profil sprang immer aufs Dashboard statt zur vorherigen Seite

v0.10.0

Produktkachel-Redesign, Performance-Verbesserungen, Verlauf-Fixes und Bugfixes im Statistik-Dashboard.

NeuProduktkacheln: neues kompaktes Layout — Produktbild 64×64 oben rechts, Name und Preis linksbündig, Mengen-Badge direkt auf dem Bild
NeuKiosk (Bestellung + Kiste füllen): identisches neues Kachel-Layout wie Self-Order
VerbessertProduktkacheln: Schriftgröße Name und Preis auf text-sm vergrößert — besser lesbar auf Mobile
VerbessertMitglieder-Seite: Saldo und Bestellbuttons erscheinen sofort — Runden und Verlauf werden gestreamt (Suspense-Streaming)
VerbessertStatistik-Seite: Browser rendert Sektionen nur wenn sie in den Viewport scrollen (contentVisibility: auto) — schnellerer erster Paint
VerbessertVerlauf: „Ausgeführt durch [Name]" erscheint jetzt bei allen Buchungstypen (Einzahlung, Auszahlung, Umlage)
VerbessertVerlauf: Umlage-Gutschrift jetzt grün wie reguläre Einzahlungen — Farbe signalisiert einheitlich Geldeingang
BehobenStatistik: „Gespendete Einheiten" zeigte die angebotene statt die tatsächlich beanspruchte Menge — jetzt korrekt (qty_total − qty_remaining)
BehobenProduktkacheln: Mengen-Badge wurde vom Bild-Container abgeschnitten — Badge liegt jetzt außerhalb von overflow-hidden
BehobenDashboard: Logo wurde auf iOS im Light-Mode weiß auf weißem Hintergrund dargestellt

v0.9.0

Umlage-Funktion für Admins und Kassierer, Auszahlungen im Payment-Modal, überarbeiteter Verlauf mit 4 Buchungstypen und Security-Fixes.

NeuUmlage: Bulk-Buchung für beliebig viele Mitglieder — positiver Betrag = Lastschrift (z.B. Abendessen), negativer Betrag = Gutschrift (z.B. Brandwache-Vergütung)
NeuUmlage: Toggle „Pro Person" (Standard) oder „Gesamt aufteilen" — zeigt Betrag ÷ Anzahl Mitglieder als Vorschau
NeuUmlage: Mitglieder-Auswahl mit Suche, Checkboxen und „Alle auswählen"-Toggle
NeuAuszahlung: negativer Betrag im Kontostand-Modal erfassen — Modal, Hinweis und Button wechseln dynamisch auf Rot
NeuVerlauf: 4 klar unterscheidbare Buchungstypen — Einzahlung (grün), Auszahlung (rot), Umlage Lastschrift (rot), Umlage Gutschrift (amber)
NeuVerlauf: „Ausgeführt durch [Name]" wird bei Umlagen angezeigt
Verbessert„✏ Kontostand"-Button ersetzt die bisherigen kontextabhängigen Einzahlungs-/Guthaben-Buttons — immer sichtbar und einheitlich
BehobenSecurity: Cross-Org-Validierung in createUmlage — verhindert, dass ein Admin einer Organisation Mitglieder einer fremden Organisation belasten kann
BehobenSecurity: Server-seitige Längenprüfung für Umlage-Notizen (max. 200 Zeichen)
BehobenMobile: Navigation zu Funktionen, Preise und FAQ aus Unterseiten (z.B. Release Notes) springt jetzt korrekt zur jeweiligen Sektion

v0.8.0

Automatischer Jugendschutz über Geburtsdatum, überarbeitete Verlaufshistorie mit Pagination und Filterung.

NeuGeburtsdatum am Nutzerprofil — optional, kann jederzeit im Profil gesetzt oder gelöscht werden
NeuAutomatischer Jugendschutz: Alter wird aus dem Geburtsdatum berechnet und FSK-Produkte automatisch geblockt
NeuAdmin kann Geburtsdatum einsehen und Jugendschutz manuell überschreiben (FSK 16 / FSK 18 / Auto)
NeuGeburtsdatum-Feld bei der Registrierung (optional)
NeuVerlaufshistorie auf der Mitglieder-Seite: Bestellungen, Einzahlungen und gesponserte Runden in einer Timeline
NeuPagination im Verlauf: automatisch nachladen — skaliert auch bei mehreren hundert Einträgen
NeuFilterung im Verlauf: Freitextsuche nach Produkt und Datumsbereich
VerbessertFSK-Filterung serverseitig: gesperrte Produkte erreichen den Client gar nicht erst
VerbessertKiosk-Modus berücksichtigt jetzt automatisch das Geburtsdatum des Mitglieds
VerbessertDatenschutzerklärung um Geburtsdatum-Verarbeitung ergänzt

v0.7.0

Komplette UX-Überarbeitung des Self-Order Modals, neue Saldo-Karte und überarbeitete Admin-Mitgliederliste.

NeuSelf-Order Modal: Kategorie-Tabs mit horizontalem Scroll über der Suchleiste
NeuSelf-Order Modal: „Zuletzt bestellt"-Bereich mit Chip-Schnellauswahl (wird lokal gespeichert)
NeuSelf-Order Modal: gesamte Produktkachel ist anklickbar (+1) — Minus-Button bleibt isoliert
NeuSelf-Order Modal: grüner Rahmen und Mengen-Badge auf aktiven Kacheln
VerbessertSelf-Order Modal: Suche und Kategorie-Filter kombinierbar
VerbessertSelf-Order Modal: haptisches Feedback (50ms) bei erfolgreicher Bestellung
VerbessertSelf-Order Modal: Erfolgs-Flash dauert 800ms statt 2s — schnelleres Weitermachen
VerbessertSaldo-Karte: größere Zahl, farbige Hintergrundtönung (rot = Schulden, grün = Guthaben)
VerbessertAdmin-Mitgliederliste: Einzelkarten statt flacher Liste, Farbkodierung der Salden
VerbessertAdmin-Page: orgSettings wird jetzt parallel zur restlichen Seite geladen

v0.6.0

Sicherheits-Audit mit 6 behobenen Lücken, Performance-Verbesserungen und technische Modernisierung.

BehobenSecurity: 6 Server Actions prüften Org-Mitgliedschaft und Admin-Rolle nicht ausreichend — alle geschlossen
BehobenOOM-Crash bei großen Organisationen durch fehlende Paginierung behoben
NeuSEO: Apple Touch Icon, Open Graph Image, sitemap.xml, robots.txt und JSON-LD strukturierte Daten
NeuDashboard-Redirect: Nutzer mit nur einer Organisation landen direkt im Vereins-Dashboard
VerbessertServer-Caching mit unstable_cache — Seiten laden deutlich schneller
VerbessertSuspense-Streaming: Awards-Sektion lädt nicht-blockierend
VerbessertDatenbankabfragen parallelisiert (Promise.all) auf mehreren Seiten
VerbessertMigration von middleware.ts → proxy.ts (Next.js-Konvention)

v0.5.0

Neue Kassierer-Rolle sowie Umbenennung von Handbuch → HowTo und Changelog → Release Notes.

NeuNeue Rolle „Kassierer": Zugriff auf Mitgliederliste, Salden, Zahlungen erfassen, Mitgliederliste exportieren und Statistiken
NeuKassierer-Badge (violett) im Admin-Dashboard sichtbar
NeuKassierer sehen nur die für sie relevanten Schnellzugriffe (kein Produkt-/Inventar-/Einstellungsbereich)
VerbessertMemberManageModal: Kassierer-Rolle als wählbare Option in der Rollenzuweisung
VerbessertExport: Kassierer dürfen nur Mitgliederliste exportieren (Inventur bleibt Admin-only)
VerbessertStatistiken und Transaktionen (Ledger) jetzt auch für Kassierer zugänglich
VerbessertUmbenennung: Handbuch → HowTo, Changelog → Release Notes

v0.4.0

Export-Funktionen und Bugfixes an Runden.

NeuMitgliederliste als CSV und PDF exportieren
NeuInventurliste als CSV und PDF exportieren (Zählliste mit leeren Feldern)
NeuExport-Panel im Admin-Dashboard (klappbar)
BehobenEigene Runden zeigten immer „0 Beanspruchungen" — jetzt korrekte Gesamtzahl
VerbessertTab-Icon: weiße Balken auf dunklem Hintergrund (passend zum Anmeldescreen)

v0.3.0

Gastkonto, Invite-Links und Code-Qualität.

NeuGastkonto pro Organisation — geteilter Zugang ohne persönlichen Account
NeuInvite-Links mit optionalem Ablaufdatum und maximaler Nutzungszahl
NeuSchnellzugriff-Schaltflächen im Admin-Dashboard
VerbessertGeteilte Utility-Funktionen (member-utils, product-utils) zur Vermeidung von Doppelcode
VerbessertServer-seitige Datenbankabfragen parallelisiert — schnelleres Laden der Seiten
BehobenStale-Closure-Bug beim Kisten-Runden-Zähler im Kiosk-Modus

v0.2.0

Bestandsmanagement und Statistiken.

NeuVollständiges Bestandsmanagement mit Lagerbestand je Produkteinheit
NeuBestandsmanager-Rolle: darf nur Inventar verwalten, kein Mitglieder-Zugriff
NeuStatistikseite mit Ranglisten (Monat / Jahr / Gesamt)
NeuAutomatische Awards (Bierkönig, Stammgast, etc.)
NeuTransaktionshistorie im Admin (Ledger-Ansicht)
VerbessertKiosk-UI komplett überarbeitet — schnellere Produktauswahl
VerbessertDunkelmodus-Unterstützung in allen Bereichen der App
April 20261 Release · 0.1.00.1.0

v0.1.0

Erstes öffentliches Beta-Release.

NeuOrganisationen erstellen und verwalten
NeuMitglieder einladen mit Rollen (Admin / Mitglied)
NeuProdukte und Einheiten anlegen (inkl. Gebinde-Umrechnung)
NeuKiosk-Modus mit PIN-Authentifizierung
NeuSelbstbestellung über die Web-App
NeuRunden ausgeben (Getränke- und Kastenrunden)
NeuSaldenübersicht und manuelle Zahlungserfassung
NeuJugendschutz-Markierung für alkoholische Produkte
NeuAdmin-Dashboard mit Schnellübersicht

strichfrei ist in aktiver Entwicklung. Neue Releases erscheinen regelmäßig.

Feedback und Feature-Wünsche: hallo@strichfrei.de