docs(requirements): R1 intake – backlog, clarifications, KTO-11, QUE-09 #27
4 changed files with 106 additions and 48 deletions
|
|
@ -80,8 +80,8 @@ Konto, Katalog, Sammlung und Partien bilden R1. Stories ohne Zusatz gehören in
|
|||
- **KTO-03** Wohnort per PLZ angeben und festlegen, was andere davon sehen (R2)
|
||||
- **KTO-04** Privatsphäre je Bereich einstellen: privat, Freunde, öffentlich
|
||||
- **Allgemeine Regel (Klärung 19):** Führt ein Release neue Freigaben ein, sind neue Bereiche standardmäßig privat, bis der Nutzer sie freigibt (Privacy by Default). Gilt für alle künftigen Freigabe-Stories (u. a. KTO-03, KTO-06 bis KTO-08, GRP, COM). In R1 besteht KTO-04 nur aus dem Hinweis „alles privat“.
|
||||
- **KTO-05** Konto und Daten löschen, Daten exportieren
|
||||
- **KTO-11** Einstellungsbereich: Sprache, Abmelden, E-Mail und Passwort ändern, Privatsphäre-Hinweis, Einstieg Konto löschen und Export (neu in R1, Klärungen 22, 43)
|
||||
- **KTO-05** Konto und Daten löschen, Daten exportieren (R1: der Einstieg in den Einstellungen gehört zu KTO-05, N14)
|
||||
- **KTO-11** Einstellungsbereich: Sprache, Abmelden, E-Mail und Passwort ändern, Privatsphäre-Hinweis, Rechtstexte, Hinweis und Ausschalter zur anonymen Messung (neu in R1, Klärungen 22, 43, N5, N14)
|
||||
- **KTO-06** Lieblingsspiele im Profil festlegen (R3)
|
||||
- **KTO-07** Youtube-, BGG-, BGA-, Steam- und Discord-Name mit Link hinterlegen (R3)
|
||||
- **KTO-08** Profile anderer Nutzer ansehen (R3)
|
||||
|
|
@ -94,7 +94,7 @@ Konto, Katalog, Sammlung und Partien bilden R1. Stories ohne Zusatz gehören in
|
|||
- **KAT-02** Spieldetailseite mit Cover, Eckdaten und Beschreibung
|
||||
- **KAT-03** Erweiterungen und Editionen eines Spiels abbilden
|
||||
- **KAT-04** Fehlendes Spiel melden oder anlegen
|
||||
- **KAT-05** Katalogdaten aus der Quelle laden und aktuell halten (R1: nur manuelle Pflege durch den Admin über Supabase Studio/SQL, Import erst mit Lizenz; Klärungen 24, 44)
|
||||
- **KAT-05** Katalogdaten aus der Quelle laden und aktuell halten (R1: nur manuelle Pflege durch den Admin über Supabase Studio/SQL, Import erst mit Lizenz; Klärungen 24, 44). Startbestand ca. 200 Spiele, nur Fakten, keine fremden Cover oder Beschreibungstexte, sondern Platzhalter-Cover und eigene Kurztexte (N11)
|
||||
|
||||
### SAM – Sammlung & Listen
|
||||
|
||||
|
|
@ -205,14 +205,15 @@ News und Events bilden R4, Premium ist zurückgestellt. Crowdfunding und Zubehö
|
|||
- **QUE-02** Inhalte und Nutzer melden, Nutzer blockieren
|
||||
- **QUE-03** Moderationsansicht für Admins: Meldungen prüfen, sperren, löschen
|
||||
- **QUE-04** Datenschutz: Einwilligungen, Datenschutzerklärung, Löschfristen
|
||||
- **R1 (Klärung 21/47):** Nur anonyme, cookielose Reichweitenmessung ohne Geräte-IDs und ohne Einwilligung (z. B. selbst gehostet); keine weiteren Analyse- oder Tracking-Dienste. Datenschutzerklärung und Nutzungsbedingungen liefert Chris vor dem Release, rechtliche Prüfung vor dem Release nötig. Löschfrist 30 Tage inkl. Sicherungen (Klärung 20).
|
||||
- **R1 (Klärung 21/47):** Nur anonyme, cookielose Reichweitenmessung ohne Geräte-IDs und ohne Einwilligung (z. B. selbst gehostet); keine weiteren Analyse- oder Tracking-Dienste. Datenschutzerklärung und Nutzungsbedingungen liefert Chris vor dem Release, rechtliche Prüfung vor dem Release nötig. Löschfrist 30 Tage inkl. Sicherungen (Klärung 20). Die anonyme Messung lässt sich freiwillig in den Einstellungen ausschalten (N5).
|
||||
- **QUE-05** Mehrsprachigkeit Deutsch und Englisch
|
||||
- **R1 (N3):** Ohne Anmeldung gilt die Gerätesprache (Fallback Englisch), änderbar; nach der Anmeldung gilt die Profilsprache auf allen Geräten. Keine Option „wie Gerät“.
|
||||
- **QUE-06** Barrierefreiheit
|
||||
- **QUE-07** Rollen und Rechte: Nutzer, Händler, Verein, Admin
|
||||
- **R1 (Klärung 44):** Die Admin-Rolle existiert nur als Datenbankrolle (Zugriffsregeln), ohne eigene Story.
|
||||
- **QUE-08** Admin-Bereich für Katalog, News-Quellen und Verifizierung
|
||||
- **R1 (Klärungen 24, 44):** Kein Admin-Bereich in der App bis QUE-08 (R4). Der Admin pflegt Katalog und Meldungen über Supabase Studio/SQL; der Ablauf wird im Repo dokumentiert.
|
||||
- **QUE-09** Startseite: persönliches Dashboard mit zuletzt gespielt und Wunschliste (neu in R1, Klärung 42; ab R4 ersetzt durch NEW-01)
|
||||
- **QUE-09** Startseite: persönliches Dashboard mit zuletzt gespielt und Wunschliste (neu in R1, Klärung 42; ab R4 ersetzt durch NEW-01). R1 zusätzlich Schnellaktion „Partie erfassen“ und Kurzstatistik, je Bereich 5 Einträge; ohne Anmeldung Katalogsuche und Anmelde-Hinweis (N6–N9)
|
||||
|
||||
## Offene Fragen
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@
|
|||
|
||||
> **Änderungsvermerk 2026-11-02:** Die Klärungen aller 48 offenen Fragen aus `r1-story-entwurf.md` § 5 sind eingearbeitet (verbindliche Entscheidungen: [`r1-klaerungen.md`](r1-klaerungen.md)). Gestrichene Kriterien sind als „~~n.~~ entfällt (Klärung X)“ markiert, damit Nummern und Referenzen wie „SAM-02 Kriterium 3“ stabil bleiben. Neue Kriterien sind hinten angehängt. Bis zur BGG-Lizenz zurückgestellte Kriterien sind als „*zurückgestellt*“ markiert. Neu sind die Stories KTO-11 Einstellungsbereich (Klärung 43) und QUE-09 Startseite (Klärung 42). Verweise der Form „(Klärung X)“ beziehen sich auf die Nummern in `r1-klaerungen.md`.
|
||||
|
||||
> **Änderungsvermerk 2026-11-02 (2):** Die Entscheidungen zu den Folgefragen N1–N14 und die Bestätigung zu PAR-08 Kriterium 6 sind eingearbeitet (Abschnitt „Neue Fragen aus dem Einarbeiten“ in [`r1-klaerungen.md`](r1-klaerungen.md)). Betroffen: KTO-01 (11), KTO-05 (neu 6), KTO-11 (1, 2, 4, 6, 7, neu 9–14), KAT-04 (7), KAT-05 (7, neu 10), SAM-08 (neu 10), PAR-08 (6), QUE-09 (1, 2, 4, neu 9–13), Datenschutz QUE-04 (4) und Sprachen QUE-05 (1). Herkunft ist als „(N…)“ vermerkt. Als „abgeleitet, bitte bestätigen“ markierte Stellen sind Annahmen ohne ausdrückliche Entscheidung.
|
||||
|
||||
Akzeptanzkriterien für die 28 Stories von R1 im Format Gegeben/Wenn/Dann, abgeleitet aus dem [Anforderungsdokument](https://claude.ai/artifact/NvqzTVrcd2aA3uqwwnG1ry) und den dort getroffenen Entscheidungen. Jedes Kriterium soll sich als Test prüfen lassen; Zahlenwerte sind meine Annahmen und änderbar.
|
||||
|
||||
## Geltungsbereich und Annahmen
|
||||
|
|
@ -47,7 +49,7 @@ R1 umfasst 28 Stories aus vier Epics und dem Querschnitt. Alles, was andere Nutz
|
|||
8. Gegeben ich habe das Passwort vergessen, wenn ich das Zurücksetzen anfordere, dann erhalte ich einen zeitlich begrenzten Link, mit dem ich ein neues Passwort setze; der Link funktioniert nur einmal. Die Gültigkeit von Reset- und Bestätigungslink folgt der Supabase-Auth-Konfiguration und ist im Repo dokumentiert (Klärung 18).
|
||||
9. Gegeben ich habe das Passwort zurückgesetzt, dann bin ich auf allen anderen Geräten abgemeldet.
|
||||
10. Gegeben ich registriere mich, wenn der Anzeigename leer ist oder länger als 30 Zeichen, dann kann ich mich nicht registrieren und sehe den Fehler am Feld; es gelten dieselben Regeln wie in KTO-02 Kriterium 1 (Klärung 22).
|
||||
11. Gegeben Shuffle sendet mir eine E-Mail zur Bestätigung oder zum Zurücksetzen des Passworts, dann ist sie in der Sprache meines Profils; andere E-Mails verschickt Shuffle in R1 nicht (Klärung 45).
|
||||
11. Gegeben Shuffle sendet mir eine E-Mail zur Bestätigung oder zum Zurücksetzen des Passworts, dann ist sie in der Sprache meines Profils; andere E-Mails verschickt Shuffle in R1 nicht, außer Bestätigungslink und Info-Mail beim Wechsel der E-Mail-Adresse (KTO-11 Kriterium 4) (Klärung 45, N2).
|
||||
|
||||
Abmelden sowie E-Mail-Adresse und Passwort ändern gehören zu KTO-11 (Klärung 22).
|
||||
|
||||
|
|
@ -76,19 +78,26 @@ Abmelden sowie E-Mail-Adresse und Passwort ändern gehören zu KTO-11 (Klärung
|
|||
3. Gegeben mein Konto ist gelöscht, wenn ich mich anmelden will, dann ist das nicht möglich; dieselbe E-Mail-Adresse kann ich sofort neu registrieren (Klärung 20).
|
||||
4. Gegeben ich fordere in der App einen Datenexport an, wenn er fertig ist, dann sehe ich einen Hinweis in der App (keine E-Mail) und erhalte eine JSON-Datei mit allen meinen Daten, insbesondere Profil mit Avatar-Link, Sammlung, Listen, Partien, Gäste, Wertungsbögen und vorläufige Spiele (Klärungen 20, 45).
|
||||
5. Gegeben der Export ist fertig, dann ist er nur in der App über mein angemeldetes Konto abrufbar und 7 Tage lang gültig; danach ist er nicht mehr abrufbar (Klärung 20).
|
||||
6. Gegeben ich bin angemeldet, wenn ich die Einstellungen (KTO-11) öffne, dann finde ich dort den Einstieg zu „Daten exportieren“ und „Konto löschen“; diese Story ergänzt den Einstieg im Einstellungsbereich selbst (N14).
|
||||
|
||||
### KTO-11 Einstellungsbereich (neu, Klärung 43)
|
||||
|
||||
Als angemeldeter Nutzer möchte ich einen Einstellungsbereich, in dem ich Sprache, Zugangsdaten und Datenschutzthemen an einem Ort finde, damit ich mein Konto selbst verwalten kann.
|
||||
|
||||
1. Gegeben ich bin angemeldet, wenn ich die Einstellungen öffne, dann finde ich dort: Sprache, E-Mail-Adresse ändern, Passwort ändern, Abmelden, den Privatsphäre-Hinweis (KTO-04 Kriterium 1) und den Einstieg zu Datenexport und Konto löschen (KTO-05).
|
||||
2. Gegeben ich wähle in den Einstellungen Deutsch oder Englisch, dann wechselt die Oberfläche sofort in diese Sprache; die Wahl bleibt nach einem Neustart erhalten und wird als Sprache meines Profils gespeichert, die auch für System-E-Mails gilt (QUE-05 Kriterium 1, Klärung 45).
|
||||
1. Gegeben ich bin angemeldet, wenn ich die Einstellungen öffne, dann finde ich dort: Sprache, E-Mail-Adresse ändern, Passwort ändern, Abmelden, den Privatsphäre-Hinweis (KTO-04 Kriterium 1), die Rechtstexte (Kriterium 13) und den Hinweis zur anonymen Messung (Kriterium 14). Den Einstieg zu Datenexport und Konto löschen ergänzt KTO-05 selbst (KTO-05 Kriterium 6, N14).
|
||||
2. Gegeben ich bin angemeldet und wähle in den Einstellungen Deutsch oder Englisch, dann wechselt die Oberfläche sofort in diese Sprache; die Wahl wird als Sprache meines Profils gespeichert, gilt nach einem Neustart und auf allen Geräten, auf denen ich angemeldet bin, und auch für System-E-Mails (QUE-05 Kriterium 1, Klärung 45, N3). Eine Option „wie Gerät“ gibt es nicht (N3).
|
||||
3. Gegeben ich wähle „Abmelden“, dann bin ich auf diesem Gerät abgemeldet und die App zeigt keine privaten Daten meines Kontos mehr.
|
||||
4. Gegeben ich will meine E-Mail-Adresse ändern, wenn ich eine neue Adresse eingebe, dann erhalte ich an die neue Adresse eine Bestätigungs-E-Mail; erst nach der Bestätigung gilt die neue Adresse für die Anmeldung, bis dahin die alte (Klärung 22).
|
||||
4. Gegeben ich will meine E-Mail-Adresse ändern, wenn ich mein aktuelles Passwort und eine neue Adresse eingebe, dann erhalte ich an die neue Adresse eine E-Mail mit Bestätigungslink und an die alte Adresse eine Info-Mail über die Änderung; erst nach der Bestätigung gilt die neue Adresse für die Anmeldung, bis dahin die alte (Klärung 22, N2, N13).
|
||||
5. Gegeben die neue E-Mail-Adresse ist schon für ein anderes Konto registriert, wenn ich sie eintrage, dann erfahre ich nicht, ob dazu ein Konto existiert (wie KTO-01 Kriterium 4), und meine Adresse bleibt unverändert.
|
||||
6. Gegeben ich will mein Passwort ändern, wenn ich mein aktuelles Passwort und ein neues Passwort eingebe, das die Regeln aus KTO-01 Kriterium 3 erfüllt, dann gilt ab sofort das neue Passwort (Klärung 22; Abfrage des aktuellen Passworts ist Annahme, offene Frage N13 in `backlog.md`).
|
||||
7. Gegeben das aktuelle Passwort ist falsch oder das neue erfüllt die Regeln nicht, wenn ich speichere, dann wird nichts geändert und ich sehe den Fehler am Feld.
|
||||
6. Gegeben ich will mein Passwort ändern, wenn ich mein aktuelles Passwort und ein neues Passwort eingebe, das die Regeln aus KTO-01 Kriterium 3 erfüllt, dann gilt ab sofort das neue Passwort (Klärung 22, N13).
|
||||
7. Gegeben ich ändere Passwort oder E-Mail-Adresse, wenn das aktuelle Passwort falsch ist oder das neue Passwort die Regeln nicht erfüllt, dann wird nichts geändert und ich sehe den Fehler am Feld (N13).
|
||||
8. Gegeben ich bin offline, wenn ich E-Mail-Adresse oder Passwort ändern will, dann sehe ich einen Hinweis, dass dafür eine Verbindung nötig ist.
|
||||
9. Gegeben ich habe mein Passwort geändert oder den Wechsel meiner E-Mail-Adresse über den Link bestätigt, dann bin ich auf allen anderen Geräten abgemeldet, wie nach dem Zurücksetzen (KTO-01 Kriterium 9) (N1).
|
||||
10. Gegeben ich bin nicht angemeldet, dann folgt die Sprache der Geräteeinstellung (Deutsch oder Englisch, sonst Englisch) und ich kann sie ändern; wenn ich mich anmelde, gilt die Sprache meines Profils, auch wenn sie von der Geräte- oder der vorher gewählten Sprache abweicht (N3).
|
||||
11. Gegeben ich registriere mich, dann wird die zu diesem Zeitpunkt aktive Sprache der Oberfläche als Sprache meines Profils gespeichert und gilt auch für die Bestätigungs-E-Mail (KTO-01 Kriterium 11) (N3, Klärung 45; bestätigt 2026-11-02).
|
||||
12. Gegeben ich nutze die iOS- oder Android-App und habe nicht synchronisierte Partien, wenn ich mich abmelde, dann bleiben diese Partien lokal auf dem Gerät erhalten und werden übertragen, sobald ich mich mit demselben Konto wieder anmelde und eine Verbindung besteht; solange ich abgemeldet bin oder ein anderes Konto auf dem Gerät angemeldet ist, sind sie nicht sichtbar und werden nicht diesem anderen Konto zugeordnet (N4; Datenschutz).
|
||||
13. Gegeben ich öffne die Einstellungen, dann finde ich Links zu Datenschutzerklärung, Nutzungsbedingungen und Impressum (N5).
|
||||
14. Gegeben ich öffne die Einstellungen, dann sehe ich einen kurzen Hinweis zur anonymen Reichweitenmessung (Datenschutz QUE-04 Kriterium 4) mit einem Ausschalter; ist er ausgeschaltet, sendet die App keine Messdaten mehr, und die Wahl bleibt nach einem Neustart erhalten (N5).
|
||||
|
||||
## KAT – Spielekatalog
|
||||
|
||||
|
|
@ -131,7 +140,7 @@ Als angemeldeter Nutzer möchte ich einen Einstellungsbereich, in dem ich Sprach
|
|||
4. Gegeben die Meldung wurde freigegeben, dann ersetzt der Katalogeintrag meinen vorläufigen Eintrag, ohne dass meine eigenen Angaben verloren gehen, und ich sehe das als Hinweis in der App am Eintrag (Klärung 26).
|
||||
5. Gegeben die Meldung wurde mit einem anderen Eintrag zusammengeführt oder unter Verweis auf einen vorhandenen Eintrag abgelehnt, dann sehe ich das als Hinweis in der App am vorläufigen Eintrag (keine E-Mail), und mein vorläufiger Eintrag verweist auf den richtigen Eintrag (Klärungen 26, 45).
|
||||
6. Gegeben die Meldung wurde ohne Zieleintrag abgelehnt, dann bleibt mein vorläufiger Eintrag privat bestehen und ist als „abgelehnt“ markiert (Klärung 26).
|
||||
7. Gegeben ich habe heute schon 10 Meldungen abgeschickt, wenn ich eine weitere melden will, dann wird sie nicht gespeichert und ich sehe einen Hinweis auf das Tageslimit (Klärung 27).
|
||||
7. Gegeben ich habe heute schon 10 Meldungen abgeschickt, wenn ich eine weitere melden will, dann wird sie nicht gespeichert und ich sehe einen Hinweis auf das Tageslimit (Klärung 27). Meldungen, die der BGG-Import automatisch anlegt (SAM-08 Kriterium 4), zählen nicht auf dieses Limit (N12).
|
||||
8. Gegeben ich habe eine Meldung abgeschickt, dann bleibt sie im Status „offen“, bis der Admin sie manuell bearbeitet; eine automatische Freigabe gibt es nicht (Klärungen 6, 27, 44).
|
||||
|
||||
### KAT-05 Katalogdaten laden und aktuell halten
|
||||
|
|
@ -144,9 +153,10 @@ In R1 wird der Katalog nur manuell gepflegt; ein Import kommt erst mit einer zug
|
|||
4. Gegeben der Admin bearbeitet, blendet aus oder führt Einträge zusammen (in R1 über Supabase Studio/SQL), dann sind ausgeblendete Einträge in der App nicht mehr auffindbar, und manuell gepflegte Felder sind als solche gekennzeichnet, damit ein späterer Import sie nicht überschreibt (Klärungen 7, 44).
|
||||
5. Gegeben Meldungen aus KAT-04, dann kann der Admin sie über Supabase Studio/SQL freigeben, mit einem Eintrag zusammenführen oder ablehnen; Status (offen, freigegeben, abgelehnt, zusammengeführt) und gegebenenfalls der Zieleintrag werden gespeichert (Klärungen 6, 44).
|
||||
6. *Zurückgestellt bis zur Lizenz (Klärung 24):* Gegeben Cover und Texte einer Quelle, dann werden sie nur angezeigt, wenn deren Nutzungsbedingungen es erlauben; die Erlaubnis ist je Quelle vermerkt. Das Feld für die Erlaubnis je Quelle ist ab R1 im Datenmodell vorhanden (Klärung 7).
|
||||
7. Gegeben R1 geht live, dann enthält der Katalog einen manuell gepflegten Startbestand (Klärung 24; Umfang offen, siehe `backlog.md`).
|
||||
7. Gegeben R1 geht live, dann enthält der Katalog einen manuell gepflegten Startbestand von etwa 200 Spielen, den der Admin (Chris) per Supabase Studio bzw. Seed einpflegt (Klärung 24, N11).
|
||||
8. Gegeben die Admin-Pflege über Supabase Studio/SQL, dann ist der Ablauf für Bearbeiten, Ausblenden, Zusammenführen und das Bearbeiten von Meldungen im Repo dokumentiert (Klärung 44).
|
||||
9. Gegeben ein Nutzer ohne Admin-Rolle, wenn er über die App oder direkt über die Schnittstelle Katalogeinträge oder fremde Meldungen ändern will, dann wird der Zugriff verweigert; die Admin-Rolle existiert in R1 nur als Datenbankrolle (Klärung 44).
|
||||
10. Gegeben ein Spiel aus dem Startbestand, dann enthält es nur Fakten (Titel, Verlag, Erscheinungsjahr, Spielerzahl, Spieldauer, Mindestalter, Genre, Mechanik); fremde Cover und fremde Beschreibungstexte werden nicht übernommen, stattdessen zeigt die App ein Platzhalter-Cover und einen eigenen Kurztext (N11).
|
||||
|
||||
## SAM – Sammlung & Listen
|
||||
|
||||
|
|
@ -225,6 +235,7 @@ In R1 wird der Katalog nur manuell gepflegt; ein Import kommt erst mit einer zug
|
|||
7. Gegeben der Importdialog, dann zeigt er „Powered by BGG“ mit Link.
|
||||
8. Gegeben ein Spiel meiner BGG-Wunschliste hat eine BGG-Priorität, dann wird sie so übernommen: 1–2 → hoch, 3 → mittel, 4–5 → niedrig (Klärung 34).
|
||||
9. Gegeben meine BGG-Sammlung oder -Wunschliste enthält Erweiterungen, dann werden sie ebenfalls importiert (Klärung 34).
|
||||
10. Gegeben der Import legt nach Kriterium 4 automatisch Meldungen an, dann zählen sie nicht auf das Tageslimit aus KAT-04 Kriterium 7, sind als „aus Import“ gekennzeichnet und je Spiel (BGG-Kennung) dedupliziert: Für ein Spiel, zu dem schon eine offene Meldung aus einem Import besteht, entsteht keine weitere (N12). Die Deduplizierung gilt **je Nutzer**: Jeder Nutzer hat höchstens eine offene Import-Meldung je BGG-Spiel; Meldungen verschiedener Nutzer zum selben Spiel bleiben getrennt und werden beim Konto-Löschen mit dem jeweiligen Nutzer gelöscht (N12a).
|
||||
|
||||
### SAM-09 BGG-Import wiederholen und abgleichen
|
||||
|
||||
|
|
@ -318,22 +329,27 @@ In R1 wird der Katalog nur manuell gepflegt; ein Import kommt erst mit einer zug
|
|||
3. Gegeben ein Spiel ohne Punkte, dann wird kein Bestwert angezeigt.
|
||||
4. Gegeben das Spiel, dann sehe ich die fünf häufigsten Mitspieler; Gäste zählen dazu (Klärung 41).
|
||||
5. Gegeben die Detailseite eines Spiels (KAT-02), dann komme ich von dort zur Statistik des Spiels.
|
||||
6. Gegeben Partien dieses Spiels, in denen ich nicht Mitspieler bin, dann zählen sie wie in PAR-07 Kriterium 8 nicht in die Statistik je Spiel (abgeleitet aus Klärungen 37, 40, 41).
|
||||
6. Gegeben Partien dieses Spiels, in denen ich nicht Mitspieler bin, dann zählen sie wie in PAR-07 Kriterium 8 nicht in die Statistik je Spiel (Klärungen 37, 40, 41; von Chris bestätigt, siehe „PAR-08“ in `r1-klaerungen.md`).
|
||||
|
||||
## QUE – Querschnitt-Stories
|
||||
|
||||
### QUE-09 Startseite: persönliches Dashboard (neu, Klärung 42)
|
||||
|
||||
Als angemeldeter Nutzer möchte ich beim Öffnen der App eine persönliche Startseite mit meinen zuletzt gespielten Partien und meiner Wunschliste sehen, damit ich schnell dort weitermache, wo ich zuletzt war (F18). Nächste Termine (F18) kommen erst mit den Gruppen in R2.
|
||||
Als angemeldeter Nutzer möchte ich beim Öffnen der App eine persönliche Startseite mit meinen zuletzt gespielten Partien, meiner Wunschliste, einer Kurzstatistik und einer Schnellaktion zum Erfassen einer Partie sehen, damit ich schnell dort weitermache, wo ich zuletzt war (F18, N8). Nächste Termine (F18) kommen erst mit den Gruppen in R2; die Einkaufsliste erscheint nicht auf dem Dashboard (N8).
|
||||
|
||||
1. Gegeben ich bin angemeldet, wenn ich die App öffne, dann sehe ich als Startseite mein persönliches Dashboard mit den Bereichen „Zuletzt gespielt“ und „Wunschliste“.
|
||||
2. Gegeben ich habe Partien erfasst, dann zeigt „Zuletzt gespielt“ meine neuesten Partien, neueste zuerst, mit Spiel, Datum und Sieger wie im Partienverlauf (PAR-06 Kriterium 1).
|
||||
1. Gegeben ich bin angemeldet, wenn ich die App öffne, dann sehe ich als Startseite mein persönliches Dashboard mit den Bereichen „Zuletzt gespielt“, „Wunschliste“ und „Kurzstatistik“ sowie der Schnellaktion „Partie erfassen“ (N8).
|
||||
2. Gegeben ich habe Partien erfasst, dann zeigt „Zuletzt gespielt“ meine 5 neuesten Partien, neueste zuerst, mit Spiel, Datum und Sieger wie im Partienverlauf (PAR-06 Kriterium 1) (N6).
|
||||
3. Gegeben ich tippe eine Partie unter „Zuletzt gespielt“ an, dann sehe ich ihre Details (PAR-06 Kriterium 3); über „Alle anzeigen“ gelange ich zum Partienverlauf.
|
||||
4. Gegeben meine Wunschliste enthält Spiele, dann zeigt der Bereich „Wunschliste“ Spiele daraus mit Titel, Cover und Priorität; ein Tipp auf ein Spiel öffnet seine Detailseite (KAT-02), „Alle anzeigen“ öffnet die Wunschliste.
|
||||
4. Gegeben meine Wunschliste enthält Spiele, dann zeigt der Bereich „Wunschliste“ bis zu 5 Spiele daraus mit Titel, Cover und Priorität, sortiert nach Priorität (hoch zuerst) und bei gleicher Priorität die zuletzt hinzugefügten zuerst; ein Tipp auf ein Spiel öffnet seine Detailseite (KAT-02), „Alle anzeigen“ öffnet die Wunschliste (N6, N7).
|
||||
5. Gegeben ich habe noch keine Partie erfasst, dann zeigt „Zuletzt gespielt“ einen Hinweis mit dem Weg zur ersten Partie.
|
||||
6. Gegeben meine Wunschliste ist leer, dann zeigt der Bereich „Wunschliste“ einen Hinweis mit dem Weg zur Katalogsuche.
|
||||
7. Gegeben ich habe eine Partie erfasst, bearbeitet oder gelöscht oder meine Wunschliste geändert, wenn ich zur Startseite zurückkehre, dann sind die Änderungen ohne manuelles Neuladen sichtbar.
|
||||
8. Gegeben ich bin in der App offline, dann zeigt „Zuletzt gespielt“ auch nicht synchronisierte Partien, gekennzeichnet wie in PAR-01 Kriterium 8; der Bereich „Wunschliste“ zeigt einen Hinweis, dass eine Verbindung nötig ist.
|
||||
9. Gegeben ich wähle auf dem Dashboard die Schnellaktion „Partie erfassen“, dann öffnet sich die Erfassung einer neuen Partie (PAR-01); in der App funktioniert das auch offline (PAR-01 Kriterium 4), im Browser sehe ich offline den Hinweis „Verbindung nötig“ (PAR-01 Kriterium 10) (N8).
|
||||
10. Gegeben ich habe Partien erfasst, dann zeigt die „Kurzstatistik“ die Anzahl meiner Partien im laufenden Monat und meine Siegquote über alle meine Partien (Zeitraum „gesamt“), gezählt wie in PAR-07 Kriterien 2 und 8, und einen Link zur persönlichen Statistik (PAR-07) (N8, N8a).
|
||||
11. Gegeben ich habe im laufenden Monat keine Partie mit mir als Mitspieler, dann zeigt die „Kurzstatistik“ für den Monat einen Hinweis statt einer Null; die Siegquote gesamt bleibt sichtbar, sofern es Partien mit Ergebnis gibt, sonst zeigt die ganze Kurzstatistik einen Leerzustand (wie PAR-07 Kriterium 7); der Link zur persönlichen Statistik bleibt sichtbar (N8, N8a).
|
||||
12. Gegeben ich habe nicht synchronisierte Partien, dann zählen sie in der „Kurzstatistik“ mit und sind gekennzeichnet wie in PAR-01 Kriterium 8.
|
||||
13. Gegeben ich bin nicht angemeldet, wenn ich die App oder die Web-Adresse öffne, dann zeigt die Startseite statt des Dashboards die Katalogsuche (KAT-01) und einen Hinweis mit dem Weg zum Anmelden und Registrieren (KTO-01); private Bereiche werden nicht angezeigt (N9).
|
||||
|
||||
## Querschnitt für R1
|
||||
|
||||
|
|
@ -346,7 +362,7 @@ Datenschutzerklärung und Nutzungsbedingungen liefert Chris vor dem Release; ein
|
|||
1. Gegeben ich registriere mich, dann sehe ich vorher Datenschutzerklärung und Nutzungsbedingungen und stimme ihnen ausdrücklich zu.
|
||||
2. Gegeben optionale Dienste, die personenbeziehbare Daten verarbeiten, dann sind sie standardmäßig aus und werden erst nach meiner Einwilligung aktiv. Ausgenommen ist die anonyme Reichweitenmessung nach Kriterium 4 (Klärung 21/47).
|
||||
3. Gegeben die Datenschutzerklärung, dann nennt sie Zwecke, Speicherdauer, Empfänger und die Löschfrist von 30 Tagen aus KTO-05 (Klärung 20).
|
||||
4. Gegeben die Reichweitenmessung in R1, dann ist sie anonym und cookielos, nutzt keine Geräte-IDs und braucht keine Einwilligung; andere Analyse- oder Tracking-Dienste gibt es in R1 nicht (Klärung 21/47).
|
||||
4. Gegeben die Reichweitenmessung in R1, dann ist sie anonym und cookielos, nutzt keine Geräte-IDs und braucht keine Einwilligung; andere Analyse- oder Tracking-Dienste gibt es in R1 nicht (Klärung 21/47). Ich kann sie freiwillig in den Einstellungen ausschalten; danach sendet die App keine Messdaten mehr (KTO-11 Kriterium 14, N5).
|
||||
|
||||
### Sicherheit der Daten
|
||||
|
||||
|
|
@ -356,7 +372,7 @@ Datenschutzerklärung und Nutzungsbedingungen liefert Chris vor dem Release; ein
|
|||
|
||||
### Sprachen (QUE-05)
|
||||
|
||||
1. Gegeben die App startet, dann folgt die Sprache der Geräteeinstellung (Deutsch oder Englisch, sonst Englisch) und lässt sich in den Einstellungen (KTO-11) ändern.
|
||||
1. Gegeben ich bin nicht angemeldet, dann folgt die Sprache der Geräteeinstellung (Deutsch oder Englisch, sonst Englisch) und lässt sich ändern; bin ich angemeldet, gilt die Sprache meines Profils auf allen Geräten und lässt sich in den Einstellungen (KTO-11) ändern (N3).
|
||||
2. Gegeben jeder sichtbare Text, dann kommt er aus den Übersetzungsdateien, nicht aus dem Code.
|
||||
3. Gegeben Datum, Zahlen und Währung, dann werden sie nach Sprache und Region formatiert.
|
||||
4. Gegeben eine Übersetzung fehlt, dann erscheint der englische Text, niemals ein technischer Schlüssel.
|
||||
|
|
@ -381,7 +397,7 @@ Datenschutzerklärung und Nutzungsbedingungen liefert Chris vor dem Release; ein
|
|||
|
||||
## Entscheidungen zu den offenen Punkten
|
||||
|
||||
Beim Schreiben sind zehn Fragen entstanden, die R1 selbst betreffen. Alle zehn sind am 2. November 2026 entschieden; die Spalte „Entscheidung“ gilt als verbindlich. Die 48 Folgefragen aus dem Story-Schnitt sind ebenfalls entschieden, siehe [`r1-klaerungen.md`](r1-klaerungen.md).
|
||||
Beim Schreiben sind zehn Fragen entstanden, die R1 selbst betreffen. Alle zehn sind am 2. November 2026 entschieden; die Spalte „Entscheidung“ gilt als verbindlich. Die 48 Folgefragen aus dem Story-Schnitt und die Fragen N1–N14 aus dem Einarbeiten sind ebenfalls entschieden, siehe [`r1-klaerungen.md`](r1-klaerungen.md).
|
||||
|
||||
| Nr | Frage | Entscheidung | Betrifft |
|
||||
| --- | --- | --- | --- |
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Backlog R1
|
||||
|
||||
Stand: 2026-11-02 (Klärungen eingearbeitet) · Pflege: requirements-analyst · Quelle: `requirements/r1-story-entwurf.md` (freigegeben durch Chris am 2026-11-02), Akzeptanzkriterien in `requirements/20-r1-akzeptanzkriterien.md`, verbindliche Entscheidungen zu den 48 offenen Fragen in `requirements/r1-klaerungen.md`.
|
||||
Stand: 2026-11-02 (Klärungen 1–48 und N1–N14 eingearbeitet) · Pflege: requirements-analyst · Quelle: `requirements/r1-story-entwurf.md` (freigegeben durch Chris am 2026-11-02), Akzeptanzkriterien in `requirements/20-r1-akzeptanzkriterien.md`, verbindliche Entscheidungen zu den 48 offenen Fragen und zu N1–N14 in `requirements/r1-klaerungen.md`.
|
||||
|
||||
Repo: [cschlaefke/Shuffle](https://git.cshomelabs.work/cschlaefke/Shuffle/issues) · Milestone: **R1** (ID 1, alle Story-Issues zugeordnet) · 4 Epics + Querschnitt, 28 Stories, 28 Issues (#1–#26, #28, #29; #27 ist der PR zum Intake).
|
||||
|
||||
|
|
@ -13,10 +13,10 @@ Status: `offen` = Issue angelegt, noch keine Spec. Clarification = Label `needs-
|
|||
| Story-ID | Issue | Titel | Epic | Prio | Größe | Etappe | Status | Clarification |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| KTO-01 | [#1](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/1) | Registrieren, anmelden und Passwort zurücksetzen | Konto | Must | XL | R1.1 | offen | nein |
|
||||
| KAT-05 | [#2](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/2) | Katalogdaten laden und aktuell halten | Katalog | Must | XL | R1.1 (Datenmodell, Startbestand), R1.2 (Admin-Pflege per Studio, Meldungen); Import erst mit Lizenz | offen | **ja** (N11) |
|
||||
| KAT-05 | [#2](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/2) | Katalogdaten laden und aktuell halten | Katalog | Must | XL | R1.1 (Datenmodell, Startbestand), R1.2 (Admin-Pflege per Studio, Meldungen); Import erst mit Lizenz | offen | nein (N11 entschieden) |
|
||||
| KAT-01 | [#3](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/3) | Spiele suchen | Katalog | Must | L | R1.1 | offen | nein |
|
||||
| KAT-02 | [#4](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/4) | Spieldetailseite | Katalog | Must | M | R1.1 | offen | nein |
|
||||
| KTO-11 | [#28](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/28) | Einstellungsbereich (neu) | Konto | Must | L | R1.1 | offen | **ja** (N1–N5, N13, N14) |
|
||||
| KTO-11 | [#28](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/28) | Einstellungsbereich (neu) | Konto | Must | L | R1.1 | offen | nein (N1–N5, N13, N14 entschieden) |
|
||||
| KTO-04 | [#5](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/5) | Privatsphäre (in R1 nur der Hinweis) | Konto | Must | S | R1.1 | offen | nein |
|
||||
| SAM-01 | [#6](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/6) | Spiel zur Sammlung hinzufügen | Sammlung | Must | S | R1.2 | offen | nein |
|
||||
| SAM-02 | [#7](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/7) | Eigene Angaben pro Spiel | Sammlung | Must | M | R1.2 | offen | nein |
|
||||
|
|
@ -35,10 +35,10 @@ Status: `offen` = Issue angelegt, noch keine Spec. Clarification = Label `needs-
|
|||
| PAR-06 | [#20](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/20) | Partienverlauf | Partien | Must | M | R1.3 | offen | nein |
|
||||
| PAR-07 | [#21](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/21) | Persönliche Statistik | Partien | Must | L | R1.3 | offen | nein |
|
||||
| PAR-08 | [#22](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/22) | Statistik je Spiel | Partien | Must | M | R1.3 | offen | nein |
|
||||
| QUE-09 | [#29](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/29) | Startseite: persönliches Dashboard (neu) | Querschnitt (Labels Partien + Sammlung) | Must | M | R1.3 | offen | **ja** (N6–N10) |
|
||||
| QUE-09 | [#29](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/29) | Startseite: persönliches Dashboard (neu) | Querschnitt | Must | M | R1.3 | offen | nein (N6–N10 entschieden) |
|
||||
| KTO-05 | [#23](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/23) | Konto löschen und Daten exportieren | Konto | Must | XL | R1.4 | offen | nein |
|
||||
| SAM-07 | [#24](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/24) | BGG-Konto verknüpfen | Sammlung | Should | S | R1.4 (nur mit BGG-Lizenz) | offen | nein |
|
||||
| SAM-08 | [#25](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/25) | Sammlung und Wunschliste aus BGG importieren | Sammlung | Should | XL | R1.4 (nur mit BGG-Lizenz) | offen | **ja** (N12) |
|
||||
| SAM-08 | [#25](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/25) | Sammlung und Wunschliste aus BGG importieren | Sammlung | Should | XL | R1.4 (nur mit BGG-Lizenz) | offen | nein |
|
||||
| SAM-09 | [#26](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/26) | BGG-Import wiederholen und abgleichen | Sammlung | Should | L | R1.4 (nur mit BGG-Lizenz) | offen | nein |
|
||||
|
||||
## Epics
|
||||
|
|
@ -49,7 +49,7 @@ Status: `offen` = Issue angelegt, noch keine Spec. Clarification = Label `needs-
|
|||
| KAT Spielekatalog | `epic/katalog` | KAT-01 (#3), KAT-02 (#4), KAT-03 (#12), KAT-04 (#13), KAT-05 (#2) |
|
||||
| SAM Sammlung & Listen | `epic/sammlung` | SAM-01 (#6), SAM-02 (#7), SAM-03 (#11), SAM-04 (#8), SAM-05 (#9), SAM-06 (#10), SAM-07 (#24), SAM-08 (#25), SAM-09 (#26) |
|
||||
| PAR Partien & Statistik | `epic/partien` | PAR-01 (#15), PAR-02 (#16), PAR-03 (#17), PAR-04 (#18), PAR-05 (#19), PAR-06 (#20), PAR-07 (#21), PAR-08 (#22) |
|
||||
| QUE Querschnitt | – (kein eigenes Label; #29 trägt `epic/partien` + `epic/sammlung`, siehe N10) | QUE-09 (#29) |
|
||||
| QUE Querschnitt | `epic/querschnitt` (neu, N10) | QUE-09 (#29) |
|
||||
|
||||
## Etappen (im Milestone R1)
|
||||
|
||||
|
|
@ -95,7 +95,7 @@ In Forgejo als blockierende Abhängigkeiten gesetzt (Issue hängt ab von …). N
|
|||
| #25 SAM-08 | #2, #6, #8, #9 *(neu, „preordered“ → Einkaufsliste)*, #13, #24 |
|
||||
| #26 SAM-09 | #7, #25 |
|
||||
| #28 KTO-11 *(neu)* | #1 |
|
||||
| #29 QUE-09 *(neu)* | #8, #20 |
|
||||
| #29 QUE-09 *(neu)* | #8, #20, #15 *(neu, N8 Schnellaktion)*, #21 *(neu, N8 Kurzstatistik)* |
|
||||
|
||||
Nur im Issue-Text vermerkt (kriterienbezogene Rückverweise, die als blockierende Abhängigkeit Zyklen erzeugen würden):
|
||||
|
||||
|
|
@ -104,7 +104,9 @@ Nur im Issue-Text vermerkt (kriterienbezogene Rückverweise, die als blockierend
|
|||
- KAT-03 (#12) Kriterium 6 (Edition bei Partien) → PAR-01 (#15)
|
||||
- SAM-01 (#6) Kriterium 5 → SAM-06 (#10)
|
||||
- SAM-05 (#9) Kriterium 3 → SAM-06 (#10)
|
||||
- KTO-11 (#28) Kriterium 1 (Einstieg Datenexport/Konto löschen) → KTO-05 (#23, R1.4); umgekehrt hängt #23 blockierend von #28 ab
|
||||
- ~~KTO-11 (#28) Kriterium 1 → KTO-05 (#23)~~ entfällt (N14): Den Einstieg zu Export/Konto löschen ergänzt KTO-05 selbst (KTO-05 Kriterium 6); #23 hängt weiterhin blockierend von #28 ab
|
||||
- KAT-04 (#13) Kriterium 7 (Import-Meldungen zählen nicht aufs Limit) ↔ SAM-08 (#25) Kriterium 10 (N12)
|
||||
- KTO-11 (#28, R1.1) Kriterium 12 (nicht synchronisierte Partien beim Abmelden) → PAR-01 (#15, R1.3); wird mit PAR-01 geprüft (N4)
|
||||
- KTO-05 (#23) inhaltlich → alle Daten-Stories (u. a. #6–#11, #13, #14, #15–#18)
|
||||
- Externe Voraussetzung BGG-Lizenz (S1) für #24, #25, #26 sowie für die zurückgestellten Kriterien KAT-05 1, 2 (Quellenteil), 3, 6
|
||||
|
||||
|
|
@ -112,28 +114,38 @@ Nur im Issue-Text vermerkt (kriterienbezogene Rückverweise, die als blockierend
|
|||
|
||||
Alle 48 Fragen aus `r1-story-entwurf.md` § 5 sind am 2026-11-02 von Chris entschieden; die verbindlichen Antworten stehen in [`r1-klaerungen.md`](r1-klaerungen.md) und sind in `20-r1-akzeptanzkriterien.md` und den Issues (Abschnitt „Klärungen“) eingearbeitet.
|
||||
|
||||
### Neue offene Punkte (Stand 2026-11-02)
|
||||
### Neue offene Punkte N1–N14 – erledigt (2026-11-02)
|
||||
|
||||
Beim Einarbeiten und beim Schneiden der zwei neuen Stories sind diese Fragen entstanden. Der Wortlaut steht als Kommentar im jeweiligen Issue, das Label `needs-clarification` ist gesetzt.
|
||||
Alle 14 Fragen aus dem Einarbeiten und die PAR-08-Annahme sind von Chris entschieden; verbindlich ist der Abschnitt „Neue Fragen aus dem Einarbeiten (N1–N14 …)“ in [`r1-klaerungen.md`](r1-klaerungen.md). Eingearbeitet in `20-r1-akzeptanzkriterien.md` und die Issues (je Kommentar „Klärungen N… eingearbeitet (2026-11-02)“).
|
||||
|
||||
| Nr | Thema | Issue |
|
||||
| --- | --- | --- |
|
||||
| N1 | Andere Geräte abmelden nach Passwort- oder E-Mail-Änderung? | #28 |
|
||||
| N2 | E-Mail-Änderung: Bestätigung nur an neue oder auch Info/Bestätigung an alte Adresse? | #28 |
|
||||
| N3 | Sprache: Option „wie Gerät“, Vorrang Profilsprache vor Gerätesprache auf neuem Gerät, Sprachwahl ohne Anmeldung? | #28 |
|
||||
| N4 | Abmelden mit nicht synchronisierten Partien: warnen, blockieren oder lokal behalten? | #28 |
|
||||
| N5 | Datenschutzerklärung/Nutzungsbedingungen/Impressum in den Einstellungen verlinken; Info oder Opt-out zur anonymen Messung? | #28 |
|
||||
| N6 | Anzahl der Einträge je Dashboard-Bereich | #29 |
|
||||
| N7 | Reihenfolge der Wunschliste auf dem Dashboard | #29 |
|
||||
| N8 | Weitere R1-Inhalte auf der Startseite (Einkaufsliste, Kurzstatistik, Schnellaktionen)? | #29 |
|
||||
| N9 | Startseite für nicht angemeldete Nutzer (Web, Katalog ohne Anmeldung lesbar) | #29 |
|
||||
| N10 | Story-ID QUE-09 und Epic-Label (eigenes `epic/querschnitt`?) | #29 |
|
||||
| N11 | Startbestand des Katalogs: Umfang, wer pflegt ein, Herkunft und Rechte von Covern und Texten ohne BGG-Lizenz | #2 |
|
||||
| N12 | Zählen automatisch beim BGG-Import erzeugte Meldungen auf das Tageslimit von 10 (KAT-04 Kriterium 7)? | #25 (betrifft #13) |
|
||||
| N13 | Aktuelles Passwort beim Passwortwechsel (und ggf. E-Mail-Änderung) abfragen? (KTO-11 Kriterium 6 ist Annahme) | #28 |
|
||||
| N14 | Einstieg Export/Konto löschen in KTO-11 (R1.1), solange KTO-05 (R1.4) fehlt: ausblenden oder nachträglich ergänzen? | #28 |
|
||||
| Nr | Thema | Issue | Status | Eingearbeitet in |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| N1 | Andere Geräte abmelden nach Passwort-/E-Mail-Wechsel | #28 | erledigt | KTO-11 Kriterium 9 |
|
||||
| N2 | Secure email change: Link an neue, Info-Mail an alte Adresse | #28 (#1) | erledigt | KTO-11 Kriterium 4, KTO-01 Kriterium 11 |
|
||||
| N3 | Sprache ohne/mit Anmeldung, keine Option „wie Gerät“ | #28 | erledigt | KTO-11 Kriterien 2, 10, 11; QUE-05 Kriterium 1 |
|
||||
| N4 | Abmelden mit nicht synchronisierten Partien: lokal behalten, nur für dasselbe Konto | #28 | erledigt | KTO-11 Kriterium 12 |
|
||||
| N5 | Rechtstexte verlinken; Hinweis + freiwilliger Ausschalter für anonyme Messung | #28 | erledigt | KTO-11 Kriterien 13, 14; QUE-04 Kriterium 4 |
|
||||
| N6 | 5 Einträge je Dashboard-Bereich | #29 | erledigt | QUE-09 Kriterien 2, 4 |
|
||||
| N7 | Wunschliste nach Priorität, dann neueste | #29 | erledigt | QUE-09 Kriterium 4 |
|
||||
| N8 | Schnellaktion „Partie erfassen“, Kurzstatistik; keine Einkaufsliste | #29 | erledigt | QUE-09 Kriterien 1, 9–12 |
|
||||
| N9 | Ohne Anmeldung: Katalogsuche + Anmelde-Hinweis | #29 | erledigt | QUE-09 Kriterium 13 |
|
||||
| N10 | Story-ID QUE-09, Label `epic/querschnitt` | #29 | erledigt | Labels #29 |
|
||||
| N11 | Startbestand ca. 200 Spiele, nur Fakten, Platzhalter-Cover, eigene Kurztexte | #2 | erledigt | KAT-05 Kriterien 7, 10 |
|
||||
| N12 | Import-Meldungen zählen nicht aufs Tageslimit, dedupliziert je BGG-ID, Kennzeichen „aus Import“ | #25, #13 | erledigt (N12a: je Nutzer) | KAT-04 Kriterium 7, SAM-08 Kriterium 10 |
|
||||
| N13 | Aktuelles Passwort für Passwort- und E-Mail-Wechsel | #28 | erledigt | KTO-11 Kriterien 4, 6, 7 |
|
||||
| N14 | Einstieg Export/Löschen gehört zu KTO-05 | #28, #23 | erledigt | KTO-11 Kriterium 1, KTO-05 Kriterium 6 |
|
||||
| PAR-08 | Partien ohne mich zählen nicht in die Statistik je Spiel | #22 | bestätigt | PAR-08 Kriterium 6 |
|
||||
|
||||
Zur Kenntnis, ohne eigenes Label: PAR-08 (#22) Kriterium 6 („Partien ohne mich zählen nicht in die Statistik je Spiel“) ist aus den Klärungen 37, 40 und 41 abgeleitet, nicht ausdrücklich entschieden. Bitte widersprechen, falls es anders gemeint ist.
|
||||
### Offen nach N1–N14
|
||||
|
||||
| Nr | Thema | Issue | Label |
|
||||
| --- | --- | --- | --- |
|
||||
| N12a | Deduplizierung der Import-Meldungen „je Spiel (BGG-ID)“: je Nutzer oder über alle Nutzer? Bei globaler Deduplizierung kollidiert die harte Löschung „meiner offenen Meldungen“ (KTO-05 Kriterium 2) mit Meldungen, an denen auch andere Nutzer hängen, und der Ergebnishinweis (KAT-04 Kriterien 4–5) muss alle betroffenen vorläufigen Einträge erreichen. | #25 | erledigt: je Nutzer (siehe `r1-klaerungen.md`) |
|
||||
|
||||
Bestätigt bzw. korrigiert durch Chris (2026-11-02):
|
||||
|
||||
- KTO-11 (#28) Kriterium 11: Bei der Registrierung wird die gerade aktive Oberflächensprache zur Profilsprache – bestätigt.
|
||||
- QUE-09 (#29) Kriterium 10: Die Siegquote in der Kurzstatistik gilt **gesamt**, die Partienzahl für den laufenden Monat (N8a).
|
||||
|
||||
## Datenmodell-Änderungen für architect
|
||||
|
||||
|
|
@ -164,3 +176,9 @@ Zur Kenntnis, ohne eigenes Label: PAR-08 (#22) Kriterium 6 („Partien ohne mich
|
|||
| 44 | Admin-Rolle nur als Datenbankrolle (RLS); Pflege über Supabase Studio/SQL, Ablauf im Repo dokumentieren | #2, #13 |
|
||||
| 45 | Sprache im Profil speichern (für Systemmails und Sprachwahl in KTO-11) | #1, #28 |
|
||||
| 48 | Sprache von Katalogtexten (Titel/Beschreibung) speichern, um den Sprachhinweis zu zeigen | #4 |
|
||||
| N3 | Sprache vor der Anmeldung lokal auf dem Gerät halten (Gerätesprache als Vorgabe, änderbar); nach der Anmeldung gilt die Profilsprache aus Klärung 45 auf allen Geräten; bei Registrierung wird die aktive Sprache als Profilsprache übernommen (abgeleitet) | #28, #1 |
|
||||
| N5 | Opt-out-Flag für die anonyme Reichweitenmessung; Speicherort (Gerät oder Profil) in der Spec entscheiden, die Messung selbst bleibt ohne Konto- oder Gerätebezug | #28 |
|
||||
| N4 | Lokale Offline-Daten (nicht synchronisierte Partien inkl. Gäste/Wertungsbögen) je Konto getrennt auf dem Gerät halten; beim Abmelden nicht löschen, für andere Konten nicht sichtbar, Übertragung erst nach erneuter Anmeldung desselben Kontos | #28, #15 |
|
||||
| N11 | Startbestand ca. 200 Spiele als Seed bzw. per Studio; Platzhalter-Cover und eigener Kurztext je Spiel (keine fremden Cover/Texte) | #2 |
|
||||
| N12 | Meldungen: Kennzeichen „aus Import“ (Herkunft Nutzer/Import), BGG-Kennung an der Meldung für die Deduplizierung; Tageslimit zählt nur Nutzer-Meldungen. Deduplizierung je Nutzer und BGG-ID (N12a), also eine Meldung je vorläufigem Eintrag | #13, #25 |
|
||||
| N1, N2, N13 | Keine Tabellenänderung erwartet; Supabase „secure email change“ und Abmelden anderer Sitzungen in der Auth-Konfiguration aktivieren und im Repo dokumentieren | #28 |
|
||||
|
|
|
|||
|
|
@ -57,3 +57,26 @@ Stand: 2026-11-02 – **alle 48 Fragen beantwortet**. Als Nächstes werden Akzep
|
|||
| 45 | KTO-01 #1, KAT-04 #13, KTO-05 #23 | E-Mails nur für Bestätigung und Passwort-Reset (Supabase-Systemmails) in der Sprache des Profils. Export fertig und Meldungsergebnis nur als Hinweis in der App. |
|
||||
| 46 | PAR-07 #21 | Diagramme bekommen eine Tabellenansicht als Alternative und eine Zusammenfassung als Screenreader-Text. |
|
||||
| 48 | KAT-02 #4 | Katalogtexte in anderer Sprache als die Oberfläche bekommen einen sichtbaren Sprachhinweis (z. B. „Beschreibung auf Englisch“). |
|
||||
|
||||
## Neue Fragen aus dem Einarbeiten (N1–N14, entschieden 2026-11-02)
|
||||
|
||||
| Nr | Story/Issue | Entscheidung |
|
||||
|---|---|---|
|
||||
| N1 | KTO-11 #28 | Nach Passwort- oder E-Mail-Wechsel werden **alle anderen Geräte abgemeldet** (wie beim Reset, KTO-01 Kriterium 9). |
|
||||
| N2 | KTO-11 #28 | E-Mail-Wechsel: **Bestätigungslink an die neue Adresse, Info-Mail an die alte Adresse** (Supabase „secure email change“). |
|
||||
| N3 | KTO-11 #28 | Ohne Anmeldung gilt die **Gerätesprache** (Fallback Englisch), änderbar. Nach Anmeldung gilt die **Profilsprache** auf allen Geräten. Keine Option „wie Gerät“. |
|
||||
| N4 | KTO-11 #28 | Abmelden mit nicht synchronisierten Partien: Partien **bleiben lokal** und werden beim nächsten Anmelden **desselben Kontos** übertragen. Sie sind für andere Konten auf dem Gerät nicht sichtbar. |
|
||||
| N5 | KTO-11 #28 | Einstellungen verlinken Datenschutzerklärung, Nutzungsbedingungen und Impressum; kurzer Hinweis zur anonymen Messung **mit freiwilligem Ausschalter**. |
|
||||
| N6 | QUE-09 #29 | **5 Einträge** je Dashboard-Bereich. |
|
||||
| N7 | QUE-09 #29 | Wunschliste auf dem Dashboard nach **Priorität** (hoch zuerst), bei Gleichstand neueste zuerst. |
|
||||
| N8 | QUE-09 #29 | Zusätzlich: **Schnellaktion „Partie erfassen“** und **Kurzstatistik** (z. B. Partien diesen Monat, Siegquote, Link zu PAR-07). Keine Einkaufsliste. |
|
||||
| N9 | QUE-09 #29 | Nicht angemeldet: Startseite zeigt **Katalogsuche und Hinweis zum Anmelden/Registrieren**, kein Dashboard. |
|
||||
| N10 | QUE-09 #29 | Story-ID bleibt **QUE-09**; neues Label **`epic/querschnitt`** statt `epic/partien` + `epic/sammlung`. |
|
||||
| N11 | KAT-05 #2 | Startbestand **ca. 200 Spiele**, von Chris per Supabase Studio/Seed gepflegt. Nur Fakten (Titel, Verlag, Jahr, Spielerzahl, Dauer, Alter, Genre, Mechanik); **keine fremden Cover oder Beschreibungstexte** – Platzhalter-Cover und eigene Kurztexte. |
|
||||
| N12 | SAM-08 #25, KAT-04 #13 | Automatisch beim BGG-Import erzeugte Meldungen **zählen nicht** auf das Tageslimit; sie sind je Spiel (BGG-ID) dedupliziert und als „aus Import“ gekennzeichnet. |
|
||||
| N13 | KTO-11 #28 | Das **aktuelle Passwort** wird für Passwort- und E-Mail-Wechsel abgefragt. |
|
||||
| N14 | KTO-11 #28, KTO-05 #23 | Der Einstieg zu Export/Konto löschen gehört **nicht** zu KTO-11; KTO-05 ergänzt ihn in den Einstellungen selbst. |
|
||||
| PAR-08 | PAR-08 #22 | Bestätigt: **Partien ohne mich zählen nicht** in die Statistik je Spiel (Kriterium 6). |
|
||||
| N12a | SAM-08 #25 | Deduplizierung der Import-Meldungen **je Nutzer** und BGG-ID; Meldungen verschiedener Nutzer bleiben getrennt. |
|
||||
| N8a | QUE-09 #29 | Kurzstatistik: Partienzahl im laufenden Monat, **Siegquote gesamt**. |
|
||||
| N3a | KTO-11 #28 | Bestätigt: Bei der Registrierung wird die aktive Oberflächensprache zur Profilsprache. |
|
||||
|
|
|
|||
Loading…
Reference in a new issue