Zur App

BolYtics Releasenotes

Version v9.2

Änderungen werden pro Commit in Zehntelschritten fortgeschrieben.

Backup

Postgres-Dumps werden verschlüsselt und statusgeführt.

Restore

Wiederherstellung bleibt bewusst servergeführt.

Admin

Owner können Benutzer filtern, Status pflegen und Backups starten.

v9.22026-06-08

Besuchszähler zählt App-Sessions

  • Der öffentliche Besuchszähler wird pro Browser-Session nur noch einmal erhöht.
  • Rücksprünge aus Blog, Admin oder Einstellungen aktualisieren die Statistik, zählen aber keinen neuen Besuch mehr.
  • Die Erfassung bleibt cookie-frei und speichert weiterhin keine IP-Adressen oder personenbezogenen Trackingdaten.
v9.12026-06-08

Admin-Benutzerliste mit Popup-Editor

  • Der Admin-Bereich zeigt Benutzer jetzt als kompakte Liste mit maximal zehn Einträgen pro Seite.
  • Vorname, Nachname, E-Mail, Sperre, E-Mail-Bestätigung und Abo-Status werden in einem eigenen Editor-Popup bearbeitet.
  • Die Benutzerliste unterstützt Suche nach Name oder E-Mail, bestehende Statusfilter und Vor-/Zurückblättern durch Trefferseiten.
v9.02026-06-07

Projektdokumentation nur noch in QA

  • Die Projekt-Dokumentation wird im Live-Web nicht mehr angezeigt und die Docs-Navigation dort ausgeblendet.
  • Die Route /docs bleibt im identischen Codebestand erhalten, ist aber nur im QA-Environment sichtbar.
  • QA und Live bleiben technisch gleich; Unterschiede laufen ueber Environment-Konfiguration, PayPal bleibt in QA weiter Sandbox.
v8.92026-06-07

Blog-Rechtslinks korrigiert

  • Links zu Impressum, Datenschutzerklärung, AGB, Widerruf und Releasenotes verweisen im Blog nun auf die korrekte App-Domain.
  • Die Blog-Subdomain liefert direkte Rechtstext-URLs nicht mehr als Blog-Unterseite aus und vermeidet dadurch 404-Fehler.
  • Der Zur-App-Link auf Rechtstextseiten führt immer zurück zur eigentlichen BolYtics-App.
v8.82026-06-07

Rechtstexte als eigene Druckseiten

  • Impressum, Datenschutzerklärung, AGB und Widerruf werden aus dem Ordner Rechtstexte als eigene Seiten ausgeliefert.
  • Die Entwurfs- und Prüfhinweise wurden aus den öffentlichen Rechtstexten entfernt.
  • App- und Blog-Footer verlinken die Rechtstexte; jede Seite hat eine Druckfunktion und eine druckfreundliche Ansicht.
v8.72026-06-07

Pflicht-Art für eigene Produkte

  • Eigene Produkte müssen beim Erfassen jetzt einer Lebensmittelart zugeordnet werden.
  • Die Art wird verschlüsselt mit dem persönlichen Produkt gespeichert und im Art-Filter bevorzugt ausgewertet.
  • Bei einer späteren Admin-Freigabe in den offenen Katalog wird die geprüfte Art als Katalog-Metadatum übernommen.
v8.62026-06-07

Ladenfilter ohne Suchtext

  • Die Produktsuche lädt jetzt auch dann Treffer, wenn nur ein Laden wie Aldi ausgewählt ist.
  • Laden- und Artfilter gelten als aktive Suchkriterien und zeigen ihre Trefferliste inklusive Pagination.
  • Das X im Suchfeld setzt Suchtext, Ladenfilter, Artfilter und Trefferliste gemeinsam zurück.
v8.52026-06-07

Getränke ohne Oberkategorie-Treffer

  • Der Getränke-Filter nutzt keine generischen Begriffe wie Getränk oder Getränke mehr.
  • Open-Food-Facts-Oberkategorien wie Pflanzliche Lebensmittel und Getränke sortieren Gemüse, Obst oder Tomaten dadurch nicht mehr in Getränke ein.
  • Konkrete Getränkearten wie Wasser, Saft, Cola, Bier, Wein, Smoothie, Tee und Kaffee bleiben filterbar.
v8.42026-06-07

Art-Filter mit Wortgrenzen

  • Lebensmittelarten werden nun anhand ganzer Begriffe und Phrasen erkannt.
  • Kurzbegriffe wie Wein oder Tee treffen dadurch nicht mehr zufällig in Wörtern wie Schwein oder geschnitten.
  • Die Produktsuche bleibt damit bei breiten Ladenabfragen wie Aldi deutlich präziser.
v8.32026-06-07

Getränke-Filter finalisiert

  • Der Art-Filter Getränke verlässt sich nicht mehr auf generische Open-Food-Facts-Beverage-Tags.
  • Aldi-Produkte wie Tomaten, Pilze oder Trockenobst erscheinen dadurch nicht mehr nur wegen breiter Quellkategorien im Getränkefilter.
  • Eindeutige Getränkebegriffe wie Saft, Cola, Bier, Wasser, Wein, Smoothie, Tee und Kaffee bleiben weiterhin auffindbar.
v8.22026-06-07

Art-Filter geschärft

  • Der Getränke-Filter ignoriert jetzt breite Open-Food-Facts-Sammelkategorien wie Lebensmittel und Getränke.
  • Produkttexte wie in Saft führen nicht mehr automatisch zu Getränketreffern.
  • QA und Live bleiben damit bei der Produktsuche funktional identisch, während QA weiterhin PayPal Sandbox nutzt.
v8.12026-06-07

Produktsuche mit Art-Filter und Pagination

  • Die Produktsuche unterstützt nun Vor- und Zurückblättern mit Ergebnisbereich und Gesamtzahl.
  • Ein neuer Art-Filter gruppiert Produkte nach Gemüse, Obst, Fleisch, Backwaren, Milchprodukten, Getränken, Fertiggerichten und weiteren Alltagskategorien.
  • Bekannte Ladenbegriffe wie Aldi werden bei der Suche als impliziter Ladenfilter erkannt; die Statistikbox zeigt statt privater Werte jetzt Katalogfreigaben und offene Prüfkandidaten.
v8.02026-06-07

Bestandsprodukte in der Katalogprüfung

  • Der Admin-Bereich zieht bestehende eigene Produkte ohne Katalogvorschlag automatisch als offene Prüfkandidaten nach.
  • Private Produkte werden dadurch nicht automatisch veröffentlicht; erst die Admin-Aktion Übernehmen erzeugt einen globalen Produktdatensatz.
  • Die Katalogübersicht erklärt nun klarer, dass bestehende eigene Produkte im Prüf-Popup erscheinen können.
v7.92026-06-07

Katalogprüfung im Admin-Popup

  • Der Admin-Bereich zeigt offene Produktvorschläge nun als kompakte Zusammenfassung.
  • Die eigentliche Prüfung läuft in einem Popup mit Produktbild, Nährwerten, Einsender, Notiz und den Aktionen Übernehmen oder Ablehnen.
  • So bleibt der Benutzerstatus übersichtlich, während Katalogfreigaben weiterhin kontrolliert und nachvollziehbar bleiben.
v7.82026-06-07

Eigene Produkte in den offenen Katalog vorschlagen

  • Eigene Produkte bleiben privat, können aber beim Speichern bewusst zur Prüfung für den offenen BolYtics-Katalog vorgeschlagen werden.
  • Der Admin-Bereich zeigt offene Katalogvorschläge mit Bild, Nährwerten, Einsender und Notizfeld.
  • Owner können Vorschläge ablehnen oder nach Prüfung als globalen Produktdatensatz mit Quellenvermerk übernehmen.
v7.72026-06-06

Admin-Benutzerkarten professioneller gestaltet

  • Der Benutzerstatus im Admin-Bereich nutzt jetzt klarere Karten mit Initialen, Name, Status-Badges und Abo-Zusammenfassung.
  • Bearbeitbare Nutzer- und Billing-Felder sind optisch gruppiert und umbrechen sauber, statt rechts aus dem Panel zu laufen.
  • Sperr- und Speicheraktionen sind kompakter und bleiben in derselben Farblogik wie das gewählte BolYtics-Farbschema.
v7.62026-06-06

Produktimport erweitert

  • Der produktive Open-Food-Facts-Katalog wurde um 10.000 weitere neue Produkte erweitert.
  • Der Dump-Importer lädt vorhandene Produkt-IDs im `--new-only`-Modus jetzt erst nach dem Deutschland- und Zielgruppenfilter, damit Nachlade- und Nachtläufe nicht leer laufen.
  • Ein neuer Coverage-Snapshot dokumentiert 64.288 globale Produkte im Live-Katalog.
v7.52026-06-06

Live-Statistik für Nutzung und Vertrauen

  • Der Produktbereich zeigt zusätzlich aggregierte Live-Werte zu Besuchen, registrierten Nutzern, gespeicherten Mahlzeiten, Produktabfragen, eigenen Produkten und persönlichen Werten.
  • Besuche werden als globaler Seitenaufrufzähler ohne Cookies, IP-Speicherung oder personenbezogenes Tracking erfasst.
  • Der Blog nutzt dieselbe öffentliche Statistikbox als Marketing- und Vertrauenssignal.
v7.42026-06-06

Mehr Farbschemas und stärkere KH-Kachel

  • Die Darstellung bietet zusätzlich Blau, Beere und Graphit als gespeicherte Farbschemas.
  • Die Kohlenhydrat-Kachel hebt sich jetzt mit Akzent-Rand, feinem Verlauf und schemafarbigem Schatten klarer ab.
  • Header-Control, Settings und Preference-API akzeptieren dieselben sechs Farbschemas.
v7.32026-06-06

Admin-Filter und manuelle Statuspflege

  • Der Admin-Bereich filtert Benutzer nach nicht aktivierter E-Mail, Sperre, Testzeitraum, aktivem Abo, gekündigtem Abo, offenem Zahlungsstatus, Lifetime und fehlendem Abo.
  • Owner können E-Mail-Bestätigung, Sperre, Zugang, Abo-Status, Quelle, Laufzeitdaten und Admin-Notiz direkt je Benutzer bearbeiten.
  • Gekündigte Abos behalten Zugriff bis zum bezahlten Ablaufdatum und werden erst danach als abgelaufen bewertet.
v7.22026-06-06

Manuelle Backups entprellt

  • Der Admin-Backup-Trigger nutzt jetzt eine einmalige Request-Datei mit systemd PathExists.
  • Die Trigger-Datei wird root-seitig vor dem Backup entfernt, damit ein Klick nur einen Backup-Lauf ausloest.
  • Offene Backup-Anforderungen werden nicht ueberschrieben, sondern als bereits angefordert gemeldet.
v7.12026-06-06

Admin-Backup-Start gehärtet

  • Der Admin-Button startet Backups nicht mehr per sudo aus der Web-App heraus.
  • Ein fester systemd-Path-Trigger nimmt manuelle Backup-Anforderungen entgegen und startet die Backup-Unit root-seitig.
  • Das App-Hardening mit NoNewPrivileges bleibt dadurch erhalten.
v7.02026-06-06

Mahlzeiten ohne Therapieprofil

  • Der aktive Mahlzeitenfluss zeigt und speichert nur noch KH, KE, BE und den nachvollziehbaren Rechenweg.
  • Therapieprofil, Korrekturwert, aktueller Glukosewert, aktives Insulin und technische Insulin-Vorschau wurden aus der UI entfernt.
  • Die Blog-Erklaerung grenzt BolYtics jetzt klarer als Mahlzeitenplanung und Archivierung ohne medizinische Therapieempfehlung ab.
v6.92026-06-06

Popups leichter schliessbar

  • Popup-Kopfzeilen bleiben beim Scrollen sichtbar, damit das X immer erreichbar ist.
  • Mahlzeitdetails, Rezeptsuche, Produktbild und Einstellungen haben zusaetzliche Schliessen-Aktionen am unteren Rand.
  • Die Druckansicht der Mahlzeitdetails blendet diese Bedienaktionen weiterhin aus.
v6.82026-06-06

OFF-Laenderfilter aktualisiert

  • Der Dump-Importer wertet jetzt auch `countries_en` aus, weil der aktuelle Open-Food-Facts-Dump Deutschland dort fuehrt.
  • Breite Produktnachlade-Laeufe finden dadurch wieder deutsche OFF-Produkte mit KH-Werten.
v6.72026-06-06

Breiterer Produktimport

  • Der Open-Food-Facts-Dump-Importer kann mit `--new-only` gezielt nur neue globale Produkte laden.
  • Grosse Importlaeufe koennen jetzt bis zu 50.000 Produkte in einem Durchlauf sammeln.
  • Die naechtliche Produktpflege sucht breiter nach Getraenken, Fertiggerichten, Gewuerzen, Fleisch, Suppen und weiteren Alltagsprodukten.
v6.62026-06-06

Therapiegrenze sichtbar gemacht

  • Login und Registrierung zeigen jetzt deutlich, dass BolYtics keine Therapievorschlaege und keinen medizinischen Rat erteilt.
  • Der Mahlzeiten-Rechner erklaert direkt im Arbeitsbereich, dass KH/KE/BE eine Planungs- und Archivierungshilfe sind.
  • Blog und App-Footer beschreiben die Nutzungsgrenze: Werte muessen immer mit dem persoenlichen Therapieplan abgeglichen werden.
v6.52026-06-06

Admin-Status optisch aufgeraeumt

  • Der Admin-Benutzerstatus zeigt Abo- und Trial-Zustaende jetzt mit deutschen Labels statt technischen Enum-Werten.
  • Die frueheren gelben Status-Pills wurden durch ruhigere Statuskarten mit Hauptzeile und Detailzeile ersetzt.
  • Benutzerzeilen im Admin-Bereich wirken durch hellere Flaechen, konsistentere Abstaende und stabilere Aktionsspalten professioneller.
v6.42026-06-06

Sicherheits-Haertung

  • Produktion startet nicht mehr mit lokalen oder zu kurzen Verschluesselungs-Secrets.
  • Neue Verschluesselungen nutzen HKDF-abgeleitete Schluessel; bestehende Daten bleiben ueber Legacy-Key-Kandidaten lesbar.
  • Login, Registrierung, Passwort-Reset, E-Mail-Bestaetigung und 2FA sind gegen zu viele Versuche gedrosselt.
  • Security-Header und Origin-Pruefung schuetzen zusaetzlich gegen Clickjacking, unsichere Einbettung und Cross-Site-Requests.
v6.32026-06-05

Produktwerte und Abo-Regeln

  • Produkt-Naehrwerte wie Salz, Zucker, Fett, Eiweiss und KH akzeptieren jetzt deutsche Kommawerte.
  • Eigene KH-Overrides und Produkt-APIs normalisieren Kommawerte serverseitig robust.
  • Aktive Monats- und Jahresabos koennen ueber PayPal gewechselt werden; Lifetime sperrt weitere Zahlungsoptionen.
  • Der Abo-Bereich erklaert Widerrufsfrist, Testzeitraum und Laufzeit bei Jahresabo-Kuendigung.
v6.22026-06-05

QA-PayPal-Ruecksprung

  • Billing-Rueckspruenge nutzen jetzt konsequent die oeffentliche App-URL statt interner localhost-Ports.
  • QA-PayPal-Abos landen nach Abschluss wieder auf `qa.bolytics.eu`.
v6.12026-06-05

PayPal-Sandbox-Link fuer QA

  • PayPal-Orders lesen jetzt auch `payer-action` als Freigabelink, damit Lifetime-Checkout in der Sandbox geoeffnet werden kann.
  • QA ist fuer PayPal Sandbox mit Client, Secret und Webhook-ID vorbereitet; Monats- und Jahresabo warten noch auf Sandbox-Plan-IDs.
v6.02026-06-05

Projektbewertung und Billing-Tests

  • Die Projektbewertung wurde auf den aktuellen CI-, QA-, Backup- und Monitoring-Stand gebracht.
  • Der Web-Workspace nutzt jetzt Vitest fuer erste automatisierte Billing-Tests.
  • PayPal-Webhook-Tests decken ungueltige Signaturen, doppelte Events und Lifetime-Zahlungen ab.
v5.92026-06-05

Blog-Statuskarten und QA-Branding

  • Der Blog stellt `2FA aktiv` und `E-Mail bestätigt` grün hinterlegt dar.
  • Die Konto-Statuskarten im Blog haben im Raster eine einheitliche Höhe.
  • QA-Instanzen zeigen einen roten Akzent und den Titel `BolYtics | QA Environment`.
v5.82026-06-05

Build-Env fuer QA und Produktion

  • Deploy-Skripte verlinken die Environment-Datei jetzt auch in `apps/web`, damit Next.js statische Links mit der jeweiligen Domain baut.
  • QA bleibt dadurch intern auf `qa.bolytics.eu` verlinkt, waehrend Produktion weiter die Live-Domains nutzt.
v5.72026-06-05

QA-Katalog-Sync korrigiert

  • Der QA-Katalog-Sync nutzt serverseitiges Postgres-COPY und kann den oeffentlichen Produktkatalog robust nach `qa.bolytics.eu` uebertragen.
  • Der temporäre Export wird nach dem Lauf sauber entfernt, ohne Nutzer-, Session- oder Mahlzeitdaten zu beruehren.
v5.62026-06-05

QA-Spiegel

  • QA-Deployment fuer `qa.bolytics.eu` nutzt eigene Datenbank, eigene Environment-Datei, eigenen Service und eigenen Port.
  • PayPal ist in QA auf Sandbox ausgelegt; Live-Zahlungsdaten werden nicht uebernommen.
  • Ein Katalog-Sync kopiert nur oeffentliche globale Produktdaten nach QA, keine Nutzer- oder Gesundheitsdaten.
v5.52026-06-05

Kampagnen-Landingpage

  • Die Launch-Landingpage aus dem Kampagnenordner wird jetzt unter `/kampagne` öffentlich ausgeliefert.
  • Der Blog verlinkt die Landingpage oben im Hero als klaren Marketing-Einstieg.
  • Die Landingpage führt mit Rücklink zum Blog und Startlinks zurück in die Web-App.
v5.42026-06-05

Monitoring-Timer robuster

  • Monotonic systemd-Timer wie der RSS-Refresh werden jetzt auch ohne festen Kalendertermin korrekt als aktiv erkannt.
  • Das Monitoring meldet dadurch nur echte Warnungen statt sauber wartende Timer zu markieren.
v5.32026-06-05

Monitoring und Alerting

  • VPS-Monitoring prüft Dienste, Timer, HTTPS, Zertifikate, Platte, Backup-Alter und Backup-Key.
  • Admin-Bereich zeigt Monitoring-Status, wichtigste Checks und Alerting-Zustand.
  • Kritische Fehler können per SMTP gemeldet und per Fingerprint gedrosselt werden.
  • Backup-Key-Runbook bestätigt nur den Fingerprint nach externer Sicherung, nicht den Key selbst.
v5.22026-06-05

Restore-Test robuster

  • Restore-Skript kann Testdatenbanken jetzt per RESTORE_DATABASE_NAME sicher aus der Produktions-URL ableiten.
  • Die Restore-Dokumentation nutzt keinen fehleranfaelligen Bash-Stringersatz mehr.
v5.12026-06-05

Backup-URL-Fix

  • Backup- und Restore-Skripte normalisieren Prisma-Datenbank-URLs vor pg_dump und pg_restore.
  • Das Prisma-Schema-Query `schema=public` wird als Postgres-search_path gesetzt, statt pg_dump zu blockieren.
v5.02026-06-05

Verschlüsselte Backups und Admin-Status

  • VPS-Setup kann tägliche verschlüsselte Postgres-Backups per systemd-Timer installieren.
  • Admin-Bereich zeigt Backup-Status, Dateigröße, Verschlüsselung und Timer-Status.
  • Owner-Konten koennen ein manuelles Backup starten; Restore bleibt bewusst SSH/root-gefuehrt.
  • Restore-Skript verweigert produktive Wiederherstellung ohne expliziten Schutzschalter.
v4.92026-06-05

Safety-Gate, CI und Betriebsplan

  • MVP-Intended-Use, Nicht-Ziele und Gate-D-Freigaberegel sind in der Safety-Dokumentation festgehalten.
  • GitHub Actions prüft Pushes und Pull Requests mit Prisma, Typecheck, Tests und Build.
  • QA-Spiegel für qa.bolytics.eu ist mit eigener Datenbank und PayPal-Sandbox im Betriebsplan dokumentiert.
  • Backup- und Restore-Mindestanforderungen für produktive Postgres-Daten sind beschrieben.
v4.82026-06-05

Persistente Darstellung, Druckliste und Konto-Status

  • Farbschema wird jetzt als Benutzerpräferenz gespeichert und beim Session-Laden wiederhergestellt.
  • Rezept-Einkaufslisten können mit Einkaufsmenge, pro-Person-Menge und KH pro Person gedruckt werden.
  • Blog erklärt die Statusmeldungen 2FA offen/aktiv sowie E-Mail offen/bestätigt.
v4.72026-06-05

Kontopflege, Sperren, Farbschemas und Releasenotes

  • Registrierung und Profil verlangen jetzt Vorname und Nachname.
  • Admin kann Nutzer korrigieren, E-Mail-Adressen anpassen und Konten sperren.
  • Nutzereinstellungen bieten Farbschemas in Türkis, Lila und Orange.
  • Blog erklärt 2FA mit Links zu Authenticator Apps für iOS und Android.
  • Footer zeigt die App-Version mit Link zu diesen Releasenotes.
v4.62026-06-05

Sichtbare Version im Footer

  • Footer unter dem Impressum zeigt die sichtbare Web-App-Version.
v4.52026-06-05

VPS auf Node 22

  • Produktiver VPS läuft mit Node.js 22 LTS und sauberem Production-Build.
v4.42026-06-05

Store-Coverage wieder 2x2

  • Die vier Laden-Chips in der Produktdatenbank stehen wieder als kompakter 2x2-Block.
v4.32026-06-05

Coverage-Trends und Safety-Härtung

  • Produktdatenbank speichert Coverage-Snapshots und Trenddaten.
  • Nächtlicher Import lädt zusätzliche Getränke und Alltagslebensmittel.
  • Rezeptskalierung und Insulin-Vorschau wurden mit zusätzlichen Safety-Tests gehärtet.