Anmeldung und Haushalt #1
Labels
No labels
status/blocked
status/claimed
status/entwurf
stufe/mvp-1
stufe/mvp-2
stufe/prio-b
stufe/spaeter
type/bug
type/feature
type/infra
type/tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
robert/rezeptbuch#1
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ziel
Die App ist aus dem Internet erreichbar und enthält Gesundheitsangaben. Sie
ist deshalb nur nach Anmeldung nutzbar – aber so einfach wie möglich: ein
gemeinsames Haushaltspasswort einmal pro Gerät, danach nur noch „Wer bist
du?“. Am gewählten Namen hängen Favoriten, persönliche Einstellungen und
„wer hat geändert“.
Grundlage
PRD Kapitel 04 (Anmeldung, Haushalt), 18 (Datenschutz, Mehrfachnutzung),
19 (Rahmenbedingungen)
Abhängig von
– (erstes Feature; legt zusammen mit dem Grundgerüst aus Checkly den
Technik-Stapel an)
Akzeptanzkriterien
Haushaltspasswort
Kein Rezept, keine Person und keine Liste ist ohne Anmeldung abrufbar –
auch nicht über die Server-Schnittstelle direkt.
falschem Passwort erscheint ein verständlicher Hinweis; es wird nicht
verraten, ob es „fast richtig“ war.
Neustart des Geräts oder einem Update der App muss das Passwort nicht
erneut eingegeben werden.
(als Hash) gespeichert und nirgends im Klartext angezeigt.
(Schutz gegen Ausprobieren).
Passwort festlegen und ändern (entschieden 07.10.2026, Option C)
Eigene kleine Verwaltung im Kochbuch nach dem Muster von Checklys
Admin-Konto (
Checkly/Features/Admin/EnsureAdminAccountCommandHandler.cs);Checkly selbst wird dafür nicht geändert.
Server-Einstellungen ein (z. B.
HOUSEHOLD_INITIAL_PASSWORD, mindestens 8Zeichen). Es wird nur beim ersten Start übernommen, wenn noch kein
Haushaltspasswort gespeichert ist. Ein späteres Ändern dieser Einstellung
ändert das gespeicherte Passwort nicht (wie bei Checkly). Fehlt die
Einstellung beim ersten Start, startet die App mit einer klaren Meldung im
Server-Protokoll, statt ohne Passwort erreichbar zu sein.
Haushaltspasswort ändern. Dafür muss sie das alte Passwort eingeben; das
neue hat mindestens 8 Zeichen und wird zur Sicherheit zweimal eingegeben.
Geräte abgemeldet und müssen beim nächsten Öffnen das neue Passwort
eingeben. Das Gerät, auf dem geändert wurde, bleibt angemeldet. Prüfung:
Handy und Tablet angemeldet, auf dem Handy ändern → Tablet zeigt beim
nächsten Laden die Anmeldeseite, das alte Passwort funktioniert nicht mehr.
Namensauswahl
du?“ und zeigt die angelegten Namen (z. B. „Lena / Kim / Küche“).
Tipps wechselbar, ohne das Passwort erneut einzugeben.
Eine Umbenennung ändert den Namen auch an bestehenden Einträgen (z. B.
Favoriten), nicht aber an bereits geschriebenen Tipps und Kommentaren (dort
steht der Name aus dem Feld „als: …“, siehe #13).
kann in den Einstellungen ausgeblendet und wieder eingeblendet werden.
Ausgeblendete Namen erscheinen nicht bei „Wer bist du?“, bleiben aber im
Änderungsverlauf, in der Kochhistorie und an Tipps und Kommentaren
sichtbar; ihre Favoriten und Einstellungen bleiben gespeichert. Ein Gerät,
das gerade mit diesem Namen angemeldet ist, muss beim nächsten Öffnen einen
anderen Namen wählen. Der letzte sichtbare Name kann nicht ausgeblendet
werden. Endgültiges Löschen gibt es nicht.
Kochen ein/aus“ (#13) gelten pro Name: Wechselt man auf demselben
Gerät von „Lena“ zu „Kim“, sieht man Kims Favoriten.
Zutatenverzeichnis, Grundvorrat und Personenprofile sind für alle Namen
gleich.
Abmelden
Haushaltspasswort verlangt.
Nicht in dieser Stufe
Admin-Oberfläche (bewusst nicht vorgesehen, Entscheidung 07.10.2026)
Offene Fragen
Erstes Passwort und Ändern– entschieden 07.10.2026: Startwertüber die Server-Einstellungen, Ändern in den Kochbuch-Einstellungen mit
altem Passwort, danach alle anderen Geräte abgemeldet (AK-6 bis AK-8).
Namen entfernen– entschieden 07.10.2026: Ausblenden stattlöschen (AK-12).
Alle offenen Fragen sind geklärt; das Issue ist bereit zum Bau.
Entscheidung 07.10.2026 zu offener Frage 1 (Passwort festlegen und ändern): Option C - eigene kleine Verwaltung im Kochbuch nach dem Muster von Checklys Admin-Konto. Startwert über die Server-Einstellungen, Ändern in den Kochbuch-Einstellungen mit altem Passwort, danach werden alle anderen Geräte abgemeldet. Nicht über Checklys Admin-Oberfläche und nicht mit Checkly-Konten, damit beide Apps unabhängig bleiben. Neue Kriterien AK-6 bis AK-8, die übrigen sind entsprechend neu nummeriert.
Entscheidung 07.10.2026 zu offener Frage 2 (Namen entfernen): Ausblenden statt löschen (neues AK-12, nachfolgende Kriterien neu nummeriert). Damit sind alle offenen Fragen geklärt; Lena hat die Kriterien durchgesehen, status/entwurf entfernt - das Issue ist bereit zum Bau.
Claimed by session "Go [7041ff]"
Baue das Grundgeruest (Technik-Stapel wie Checkly) zusammen mit Anmeldung und Haushalt.
Blockiert (Session "Go [7041ff]"): Auf Lenas Windows-Rechner fehlen die Werkzeuge zum Bauen und Testen. Installiert ist nur die ASP.NET-Laufzeit, nicht das .NET-SDK; Node.js, Docker und PostgreSQL fehlen ganz. Checkly wird in einer Docker-Entwicklungsumgebung gebaut (Dockerfile.dev, setup-claude.sh).
Frage an Lena: Wo soll gebaut werden?
Empfehlung: A fuer den Anfang (schnell, Lena entscheidet nur einmal), spaeter B wie bei Checkly.
Claim bleibt bei dieser Session; sobald die Werkzeuge da sind, geht es hier weiter.
Session "Go [7041ff]": Lena hat Moeglichkeit A gewaehlt. .NET-SDK 10.0.401 und Node.js 24.19 sind installiert, Blockade aufgehoben. Docker fehlt weiter: Tests, die echtes PostgreSQL brauchen, werden ohne Docker uebersprungen; Handler- und Schnittstellen-Tests laufen mit einer Datenbank im Speicher.
Entwurf (Architekt + Sicherheit, Session "Go [7041ff]")
Aufbau wie Checkly: Common (CQS, IoC, Vogen-Typen), Kochbuch (Fachlogik, EF Core + PostgreSQL), Kochbuch.WebApi (jede Aktion als
POST /api/<Name>, OpenAPI), Kochbuch.Tests (NUnit + Shouldly), ReactUi (React + TypeScript + Vite + Tailwind, Vitest).Daten:
Household(genau eine Zeile): PasswordHash, PasswordSalt, PasswordChangedAtUtcMember: MemberId, MemberName (max. 40 Zeichen), IsHidden, CreatedAtUtc. Favoriten und Einstellungen pro Name (spaeter in#13und#14) haengen an der MemberId, nicht am Text - eine Umbenennung wirkt dort automatisch.SessionCacheEntry: Sitzungen in PostgreSQL wie in ChecklyAktionen: LoginCommand, LogoutCommand, GetSessionQuery, GetMembersQuery, SelectMemberCommand, CreateMemberCommand, RenameMemberCommand, SetMemberHiddenCommand, ChangeHouseholdPasswordCommand; intern EnsureHouseholdCommand (Startwert aus
HOUSEHOLD_INITIAL_PASSWORD).Sicherheit:
Erste Namen: Gibt es noch keinen Namen, bietet "Wer bist du?" direkt an, den ersten Namen anzulegen.
Nicht in diesem Issue: Docker-Image, CI und Offline-Bausteine (
#2).Zwischenstand (Session "Go [7041ff]"): Server und Oberflaeche sind gebaut und lokal committet (2 Commits). 40 Server-Tests gegen echtes PostgreSQL und 15 Oberflaechen-Tests sind gruen. Noch offen: Push (die Anmeldung beim Push ist fehlgeschlagen), Sicherheitspruefung, Test-Container, Abschluss. Claim bleibt bei dieser Session.
Fertig (Session "Go [7041ff]").
Was gebaut wurde
Wie getestet
__Host-, 600.000 Runden beim Verschluesseln des Passworts).Wichtige Entscheidungen
HOUSEHOLD_INITIAL_PASSWORD. Fehlt sie beim ersten Start, startet der Server nicht und sagt im Protokoll, warum.So probierst du es aus
docker compose -p kochbuch-test -f docker-compose.test.yml up -d --buildkochbuch-test.Noch nicht drin: Betrieb auf dem echten Server und automatische Pruefungen, siehe #18 (Entwurf).