Anmeldung und Haushalt #1

Closed
opened 2026-10-07 22:22:35 +02:00 by lena · 8 comments
Collaborator

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

  • AK-1: Ohne Anmeldung zeigt jede Adresse der App nur die Anmeldeseite.
    Kein Rezept, keine Person und keine Liste ist ohne Anmeldung abrufbar –
    auch nicht über die Server-Schnittstelle direkt.
  • AK-2: Wer das richtige Haushaltspasswort eingibt, ist angemeldet. Bei
    falschem Passwort erscheint ein verständlicher Hinweis; es wird nicht
    verraten, ob es „fast richtig“ war.
  • AK-3: Ein angemeldetes Gerät bleibt angemeldet: Nach Schließen der App,
    Neustart des Geräts oder einem Update der App muss das Passwort nicht
    erneut eingegeben werden.
  • AK-4: Das Haushaltspasswort wird auf dem Server nur verschlüsselt
    (als Hash) gespeichert und nirgends im Klartext angezeigt.
  • AK-5: Viele falsche Passwort-Versuche hintereinander werden gebremst
    (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.

  • AK-6 Startwert: Der Admin trägt ein Startpasswort in die
    Server-Einstellungen ein (z. B. HOUSEHOLD_INITIAL_PASSWORD, mindestens 8
    Zeichen). 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.
  • AK-7 Ändern: In den Einstellungen kann jede angemeldete Person das
    Haushaltspasswort ändern. Dafür muss sie das alte Passwort eingeben; das
    neue hat mindestens 8 Zeichen und wird zur Sicherheit zweimal eingegeben.
  • AK-8 Andere Geräte abmelden: Nach einer Änderung sind alle anderen
    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

  • AK-9: Nach der ersten Anmeldung auf einem Gerät fragt die App „Wer bist
    du?“ und zeigt die angelegten Namen (z. B. „Lena / Kim / Küche“).
  • AK-10: Der gewählte Name ist jederzeit sichtbar und mit höchstens zwei
    Tipps wechselbar, ohne das Passwort erneut einzugeben.
  • AK-11: In den Einstellungen können Namen angelegt und umbenannt werden.
    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).
  • AK-12 Ausblenden statt löschen (entschieden 07.10.2026): Ein Name
    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.
  • AK-13: Favoriten (#14) und die Einstellung „Rückmeldung nach dem
    Kochen ein/aus“ (#13) gelten pro Name: Wechselt man auf demselben
    Gerät von „Lena“ zu „Kim“, sieht man Kims Favoriten.
  • AK-14: Alles andere ist gemeinsam: Rezepte, Haus-Liste,
    Zutatenverzeichnis, Grundvorrat und Personenprofile sind für alle Namen
    gleich.

Abmelden

  • AK-15: Ein Gerät kann sich bewusst abmelden; danach wird wieder das
    Haushaltspasswort verlangt.

Nicht in dieser Stufe

  • mehrere Haushalte mit eigenem Passwort (Später)
  • eigene Passwörter pro Person (bewusst nicht vorgesehen)
  • Anmeldung mit dem Checkly-Konto oder Verwaltung über Checklys
    Admin-Oberfläche (bewusst nicht vorgesehen, Entscheidung 07.10.2026)

Offene Fragen

  1. 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).
  2. Namen entfernen – entschieden 07.10.2026: Ausblenden statt
    löschen (AK-12).

Alle offenen Fragen sind geklärt; das Issue ist bereit zum Bau.

## 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 - **AK-1:** Ohne Anmeldung zeigt jede Adresse der App nur die Anmeldeseite. Kein Rezept, keine Person und keine Liste ist ohne Anmeldung abrufbar – auch nicht über die Server-Schnittstelle direkt. - **AK-2:** Wer das richtige Haushaltspasswort eingibt, ist angemeldet. Bei falschem Passwort erscheint ein verständlicher Hinweis; es wird nicht verraten, ob es „fast richtig“ war. - **AK-3:** Ein angemeldetes Gerät bleibt angemeldet: Nach Schließen der App, Neustart des Geräts oder einem Update der App muss das Passwort **nicht** erneut eingegeben werden. - **AK-4:** Das Haushaltspasswort wird auf dem Server nur verschlüsselt (als Hash) gespeichert und nirgends im Klartext angezeigt. - **AK-5:** Viele falsche Passwort-Versuche hintereinander werden gebremst (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. - **AK-6 Startwert:** Der Admin trägt ein Startpasswort in die Server-Einstellungen ein (z. B. `HOUSEHOLD_INITIAL_PASSWORD`, mindestens 8 Zeichen). 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. - **AK-7 Ändern:** In den Einstellungen kann jede angemeldete Person das Haushaltspasswort ändern. Dafür muss sie das alte Passwort eingeben; das neue hat mindestens 8 Zeichen und wird zur Sicherheit zweimal eingegeben. - **AK-8 Andere Geräte abmelden:** Nach einer Änderung sind **alle anderen** 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 - **AK-9:** Nach der ersten Anmeldung auf einem Gerät fragt die App „Wer bist du?“ und zeigt die angelegten Namen (z. B. „Lena / Kim / Küche“). - **AK-10:** Der gewählte Name ist jederzeit sichtbar und mit höchstens zwei Tipps wechselbar, ohne das Passwort erneut einzugeben. - **AK-11:** In den Einstellungen können Namen angelegt und umbenannt werden. 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). - **AK-12 Ausblenden statt löschen** (entschieden 07.10.2026): Ein Name 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. - **AK-13:** Favoriten (#14) und die Einstellung „Rückmeldung nach dem Kochen ein/aus“ (#13) gelten pro Name: Wechselt man auf demselben Gerät von „Lena“ zu „Kim“, sieht man Kims Favoriten. - **AK-14:** Alles andere ist gemeinsam: Rezepte, Haus-Liste, Zutatenverzeichnis, Grundvorrat und Personenprofile sind für alle Namen gleich. ### Abmelden - **AK-15:** Ein Gerät kann sich bewusst abmelden; danach wird wieder das Haushaltspasswort verlangt. ## Nicht in dieser Stufe - mehrere Haushalte mit eigenem Passwort (Später) - eigene Passwörter pro Person (bewusst nicht vorgesehen) - Anmeldung mit dem Checkly-Konto oder Verwaltung über Checklys Admin-Oberfläche (bewusst nicht vorgesehen, Entscheidung 07.10.2026) ## Offene Fragen 1. ~~**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). 2. ~~**Namen entfernen**~~ – entschieden 07.10.2026: Ausblenden statt löschen (AK-12). Alle offenen Fragen sind geklärt; das Issue ist bereit zum Bau.
Author
Collaborator

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 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.
Author
Collaborator

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.

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.
lena self-assigned this 2026-10-07 22:32:11 +02:00
Author
Collaborator

Claimed by session "Go [7041ff]"

Baue das Grundgeruest (Technik-Stapel wie Checkly) zusammen mit Anmeldung und Haushalt.

Claimed by session "Go [7041ff]" Baue das Grundgeruest (Technik-Stapel wie Checkly) zusammen mit Anmeldung und Haushalt.
Author
Collaborator

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?

  • A: .NET-10-SDK und Node.js (LTS) per winget auf diesem Rechner installieren. Datenbank-Tests brauchen dann noch Docker Desktop oder ein lokales PostgreSQL.
  • B: In derselben Docker-Entwicklungsumgebung wie Checkly arbeiten (auf dem Server oder einem Rechner mit Docker).
  • C: Code ohne lokalen Build schreiben und nur von der CI pruefen lassen. Nicht empfohlen: Fehler fallen erst spaet auf, und eine CI gibt es fuer dieses Repo noch nicht.

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.

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? - A: .NET-10-SDK und Node.js (LTS) per winget auf diesem Rechner installieren. Datenbank-Tests brauchen dann noch Docker Desktop oder ein lokales PostgreSQL. - B: In derselben Docker-Entwicklungsumgebung wie Checkly arbeiten (auf dem Server oder einem Rechner mit Docker). - C: Code ohne lokalen Build schreiben und nur von der CI pruefen lassen. Nicht empfohlen: Fehler fallen erst spaet auf, und eine CI gibt es fuer dieses Repo noch nicht. 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.
Author
Collaborator

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.

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.
Author
Collaborator

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, PasswordChangedAtUtc
  • Member: MemberId, MemberName (max. 40 Zeichen), IsHidden, CreatedAtUtc. Favoriten und Einstellungen pro Name (spaeter in #13 und #14) haengen an der MemberId, nicht am Text - eine Umbenennung wirkt dort automatisch.
  • SessionCacheEntry: Sitzungen in PostgreSQL wie in Checkly

Aktionen: LoginCommand, LogoutCommand, GetSessionQuery, GetMembersQuery, SelectMemberCommand, CreateMemberCommand, RenameMemberCommand, SetMemberHiddenCommand, ChangeHouseholdPasswordCommand; intern EnsureHouseholdCommand (Startwert aus HOUSEHOLD_INITIAL_PASSWORD).

Sicherheit:

  • Berechtigung zentral und standardmaessig verweigert: ein Decorator um jede Aktion verlangt eine Anmeldung; nur Login, Logout und GetSession sind ausdruecklich ohne Anmeldung erlaubt. Neue Aktionen sind damit automatisch geschuetzt (AK-1).
  • Passwort als PBKDF2-Hash mit Salt wie in Checkly (AK-4).
  • Bremse: hoechstens 5 Versuche pro Minute und IP fuer Login und Passwort-Aendern (AK-5).
  • Sitzungs-Cookie HttpOnly, SameSite=Strict, Secure, rollierend 365 Tage (AK-3).
  • Andere Geraete abmelden: Jede Sitzung kennt ihren Ausstellungszeitpunkt; liegt er vor der letzten Passwortaenderung, wird sie beim naechsten Aufruf beendet. Das aendernde Geraet bekommt einen neuen Zeitpunkt (AK-8).
  • Ohne Startpasswort und ohne gespeichertes Passwort startet der Server nicht, mit klarer Meldung im Protokoll (AK-6).

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).

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, PasswordChangedAtUtc - `Member`: MemberId, MemberName (max. 40 Zeichen), IsHidden, CreatedAtUtc. Favoriten und Einstellungen pro Name (spaeter in `#13` und `#14`) haengen an der MemberId, nicht am Text - eine Umbenennung wirkt dort automatisch. - `SessionCacheEntry`: Sitzungen in PostgreSQL wie in Checkly **Aktionen:** LoginCommand, LogoutCommand, GetSessionQuery, GetMembersQuery, SelectMemberCommand, CreateMemberCommand, RenameMemberCommand, SetMemberHiddenCommand, ChangeHouseholdPasswordCommand; intern EnsureHouseholdCommand (Startwert aus `HOUSEHOLD_INITIAL_PASSWORD`). **Sicherheit:** - Berechtigung zentral und standardmaessig verweigert: ein Decorator um **jede** Aktion verlangt eine Anmeldung; nur Login, Logout und GetSession sind ausdruecklich ohne Anmeldung erlaubt. Neue Aktionen sind damit automatisch geschuetzt (AK-1). - Passwort als PBKDF2-Hash mit Salt wie in Checkly (AK-4). - Bremse: hoechstens 5 Versuche pro Minute und IP fuer Login und Passwort-Aendern (AK-5). - Sitzungs-Cookie HttpOnly, SameSite=Strict, Secure, rollierend 365 Tage (AK-3). - Andere Geraete abmelden: Jede Sitzung kennt ihren Ausstellungszeitpunkt; liegt er vor der letzten Passwortaenderung, wird sie beim naechsten Aufruf beendet. Das aendernde Geraet bekommt einen neuen Zeitpunkt (AK-8). - Ohne Startpasswort und ohne gespeichertes Passwort startet der Server nicht, mit klarer Meldung im Protokoll (AK-6). **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`).
Author
Collaborator

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.

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.
Author
Collaborator

Fertig (Session "Go [7041ff]").

Was gebaut wurde

  • Das Grundgeruest der App nach dem Muster von Checkly: Server (.NET, PostgreSQL) und Oberflaeche (React).
  • Anmeldeseite mit dem Haushaltspasswort. Ohne Anmeldung zeigt jede Adresse nur diese Seite, und der Server gibt keine Daten heraus. Neue Funktionen sind automatisch geschuetzt.
  • Ein Geraet bleibt ein Jahr angemeldet; jede Benutzung verlaengert die Frist.
  • "Wer bist du?" nach der Anmeldung. Gibt es noch keinen Namen, legt man hier den ersten an.
  • Oben rechts steht immer der gewaehlte Name; zwei Tipps genuegen zum Wechseln.
  • Einstellungen: Namen anlegen, umbenennen, aus- und einblenden (der letzte sichtbare bleibt), Haushaltspasswort aendern (danach sind alle anderen Geraete abgemeldet), dieses Geraet abmelden.

Wie getestet

  • 40 Server-Tests gegen eine echte PostgreSQL-Datenbank, mindestens einer je Kriterium. Ein Test ruft jede vorhandene und kuenftige Funktion ohne Anmeldung auf und erwartet eine Ablehnung.
  • 15 Tests der Oberflaeche (Abdeckung rund 92 Prozent).
  • Sicherheitspruefung ohne schwere Funde; die zwei kleinen Haertungen sind umgesetzt (Cookie-Name mit __Host-, 600.000 Runden beim Verschluesseln des Passworts).
  • Von Hand im Test-Container: anmelden, Namen anlegen, neu laden.

Wichtige Entscheidungen

  • Startpasswort aus der Einstellung HOUSEHOLD_INITIAL_PASSWORD. Fehlt sie beim ersten Start, startet der Server nicht und sagt im Protokoll, warum.
  • Hoechstens 5 Passwort-Versuche pro Minute (beim Anmelden und beim Aendern).
  • Zwei gleiche Namen (auch in anderer Gross-/Kleinschreibung) sind nicht erlaubt.
  • Favoriten und die Einstellung "Rueckmeldung nach dem Kochen" (AK-13) gibt es noch nicht. Sie kommen mit #14 und #13 und haengen dann am Namen; alles andere ist gemeinsam (AK-14).

So probierst du es aus

  1. Docker Desktop starten, im Ordner Kochbuch: docker compose -p kochbuch-test -f docker-compose.test.yml up -d --build
  2. http://localhost:8090 oeffnen, Passwort kochbuch-test.
  3. Deinen Namen anlegen, unter Einstellungen (Zahnrad) einen zweiten anlegen und oben rechts wechseln.
  4. In einem zweiten Browser (oder privaten Fenster) ebenfalls anmelden, dann im ersten das Passwort aendern: Das zweite Fenster zeigt beim naechsten Klick die Anmeldeseite.

Noch nicht drin: Betrieb auf dem echten Server und automatische Pruefungen, siehe #18 (Entwurf).

Fertig (Session "Go [7041ff]"). **Was gebaut wurde** - Das Grundgeruest der App nach dem Muster von Checkly: Server (.NET, PostgreSQL) und Oberflaeche (React). - Anmeldeseite mit dem Haushaltspasswort. Ohne Anmeldung zeigt jede Adresse nur diese Seite, und der Server gibt keine Daten heraus. Neue Funktionen sind automatisch geschuetzt. - Ein Geraet bleibt ein Jahr angemeldet; jede Benutzung verlaengert die Frist. - "Wer bist du?" nach der Anmeldung. Gibt es noch keinen Namen, legt man hier den ersten an. - Oben rechts steht immer der gewaehlte Name; zwei Tipps genuegen zum Wechseln. - Einstellungen: Namen anlegen, umbenennen, aus- und einblenden (der letzte sichtbare bleibt), Haushaltspasswort aendern (danach sind alle anderen Geraete abgemeldet), dieses Geraet abmelden. **Wie getestet** - 40 Server-Tests gegen eine echte PostgreSQL-Datenbank, mindestens einer je Kriterium. Ein Test ruft jede vorhandene und kuenftige Funktion ohne Anmeldung auf und erwartet eine Ablehnung. - 15 Tests der Oberflaeche (Abdeckung rund 92 Prozent). - Sicherheitspruefung ohne schwere Funde; die zwei kleinen Haertungen sind umgesetzt (Cookie-Name mit `__Host-`, 600.000 Runden beim Verschluesseln des Passworts). - Von Hand im Test-Container: anmelden, Namen anlegen, neu laden. **Wichtige Entscheidungen** - Startpasswort aus der Einstellung `HOUSEHOLD_INITIAL_PASSWORD`. Fehlt sie beim ersten Start, startet der Server nicht und sagt im Protokoll, warum. - Hoechstens 5 Passwort-Versuche pro Minute (beim Anmelden und beim Aendern). - Zwei gleiche Namen (auch in anderer Gross-/Kleinschreibung) sind nicht erlaubt. - Favoriten und die Einstellung "Rueckmeldung nach dem Kochen" (AK-13) gibt es noch nicht. Sie kommen mit #14 und #13 und haengen dann am Namen; alles andere ist gemeinsam (AK-14). **So probierst du es aus** 1. Docker Desktop starten, im Ordner Kochbuch: `docker compose -p kochbuch-test -f docker-compose.test.yml up -d --build` 2. http://localhost:8090 oeffnen, Passwort `kochbuch-test`. 3. Deinen Namen anlegen, unter Einstellungen (Zahnrad) einen zweiten anlegen und oben rechts wechseln. 4. In einem zweiten Browser (oder privaten Fenster) ebenfalls anmelden, dann im ersten das Passwort aendern: Das zweite Fenster zeigt beim naechsten Klick die Anmeldeseite. **Noch nicht drin:** Betrieb auf dem echten Server und automatische Pruefungen, siehe #18 (Entwurf).
lena 2026-10-08 10:23:44 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
robert/rezeptbuch#1
No description provided.