Files
Speisekarte/CHANGELOG.md
T

114 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
Alle nennenswerten Änderungen an diesem Projekt werden hier dokumentiert.
Format angelehnt an [Keep a Changelog](https://keepachangelog.com/de/1.1.0/),
Versionierung nach [Semantic Versioning](https://semver.org/lang/de/).
## [1.4.0] – 2026-07-18
### Hinzugefügt
- Essenszeiten (Brotzeit/Mittagessen/…) vollständig verwaltbar: anlegen,
umbenennen (inkl. EN/PL), Uhrzeit ändern, löschen und per Pfeil-Buttons
neu anordnen – neue Seite „Essenszeiten" im Kantinen-Bereich. Löschen
entfernt zugewiesene Gerichte automatisch aus allen Wochenplänen.
### Geändert
- „Automatisch übersetzen"-Button bei Gerichten/Allergenen/Zusatzstoffen
ist nur noch sichtbar, wenn `DEEPL_API_KEY` gesetzt ist, statt erst
nach Klick auf die fehlende Konfiguration hinzuweisen.
### Behoben
- Sprachumschalter (DE/EN/PL) erschien auf der öffentlichen Speisekarte
in der mobilen Ansicht doppelt.
## [1.3.0] – 2026-07-18
### Hinzugefügt
- Mehrsprachigkeit für die komplette Anwendung (Deutsch, Englisch,
Polnisch): Sprachumschalter (Cookie-basiert, kein Neuladen der
Seite nötig), sämtliche Oberflächentexte übersetzt
- Gerichte, Bereiche, Allergene und Zusatzstoffe zusätzlich mit
englischem/polnischem Namen; öffentliche Speisekarte zeigt je nach
gewählter Sprache automatisch den passenden Namen (Fallback:
Deutsch, falls keine Übersetzung hinterlegt ist)
- Automatische Übersetzung per DeepL: Button „Automatisch übersetzen“
beim Anlegen/Bearbeiten von Gerichten, Allergenen und Zusatzstoffen;
Ergebnis bleibt danach manuell korrigierbar. Aktivierung über die
neue Docker-Variable `DEEPL_API_KEY` – ohne Key bleibt der Button
inaktiv, die Felder lassen sich weiterhin von Hand ausfüllen
- Rezeptvorschläge im öffentlichen Bereich: nicht angemeldete
Besucher können über „Rezept vorschlagen“ ein fehlendes Gericht
vorschlagen (Name + optionale Beschreibung), inkl. Dublettenprüfung
gegen bestehende Gerichte und einfachem Honeypot-Spamschutz
- Neue Seite „Vorschläge“ im Kantinen-Bereich: eingereichte Vorschläge
sichten, als Gericht übernehmen oder ablehnen
### Behoben
- Passwort-wiederholen-Feld beim Bearbeiten eines Benutzers erschien
erst, nachdem im ersten Passwortfeld schon getippt wurde – wirkte
wie ein einzelnes Pflichtfeld
- Anmelden-Button überlappte auf Mobilgeräten mit breiten Logos
(Banner-Format) das Logo, da er absolut in der oberen Ecke
positioniert war
## [1.2.0] – 2026-07-18
### Hinzugefügt
- „Heute"-Button in der Wochennavigation (öffentliche Speisekarte und
Wochenplan-Editor)
- Mobile Ansicht der öffentlichen Speisekarte: umschaltbar zwischen
Tag (Standard) und Woche, unabhängig von der Desktop-Tabelle
- Allergene und Zusatzstoffe wieder pro Gericht auswählbar (Chip-Auswahl
im Formular) und als kleine Kürzel neben dem Gerichtnamen sichtbar –
in Speisekarte, mobiler Ansicht und Wochenplan-Editor
- Passwort-Wiederholung beim Anlegen neuer Benutzer und beim optionalen
Passwort-Reset
- Passwort-Anmeldung pro Konto deaktivierbar (nur wenn mindestens ein
Passkey registriert ist), Durchsetzung im Login-Flow
- `SITE_TITLE`-Umgebungsvariable für Browser-Tab-Titel und Überschrift
ohne Logo
- Austauschbares Favicon über den Admin-Design-Bereich
### Geändert
- Gemeinsame Navigation für Kantinen- und Admin-Bereich statt zwei
getrennter Menüs
- Live-Suche bei den Gerichten
- Mehrfachauswahl zum Batch-Löschen von Gerichten
- App erreichbar auf `0.0.0.0` statt nur `localhost` (Docker und
nativer Betrieb)
- Projekt umbenannt von „Speisekarte“ zu „canteen-menu“ (Docker-,
npm- und Supabase-Namen; deutsche In-App-Texte unverändert)
- Öffentliche URL über `APP_URL` konfigurierbar (CSRF-Origin-Check
hinter Reverse-Proxy, Passkey-Domain)
### Behoben
- Next.js band `app/favicon.ico` zusätzlich zu einem dynamisch
gesetzten Favicon ein – Favicon wird jetzt immer explizit gesetzt
- Weiterleitungen (Logout, Zugriffsschutz) übernahmen nach der
0.0.0.0-Bindung fälschlich die Server-Adresse statt des
aufgerufenen Hosts
## [1.1.0] – 2026-07-17
### Hinzugefügt
- Versionsnummer im Fußbereich jeder Seite
## [1.0.0] – 2026-07-17
Erste vollständige Version.
### Hinzugefügt
- Öffentliche Speisekarte ohne Login: Wochenansicht Mo–Fr mit den
Bereichen Brotzeit, Mittagessen, Mittagessen vegetarisch und Suppe;
Wochen-Navigation; Logo zentriert; Allergene & Zusatzstoffe unterhalb
der Karte
- Anmeldung mit E-Mail/Passwort oder Passkey
- Kantinen-Bereich: Gerichte anlegen/bearbeiten/löschen, Wochenplan
pflegen, globale Allergen-/Zusatzstofflisten verwalten
- Admin-Bereich: Benutzerverwaltung, Farbgebung, Logo-Upload
- Eigenes Konto verwalten: Name, E-Mail, Passwort, Passkeys
- Row-Level-Security, HTTP-Security-Header, CSRF-Origin-Check
- Docker-Setup (App-Image, lokale PostgreSQL-Kopie, Dev-Profil ohne
lokales Node.js)
- Lokale PostgreSQL-Kopie mit Sync-Skript