docs(requirements): add R1 backlog and story draft
Intake of the 26 R1 stories from requirements/20-r1-akzeptanzkriterien.md into Forgejo issues #1-#26. backlog.md maps story IDs to issues, stages R1.1-R1.4, dependencies and the 48 open questions. Refs #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12, #13, #14, #15, #16, #17, #18, #19, #20, #21, #22, #23, #24, #25, #26 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
317634dac5
commit
56e57afd43
2 changed files with 470 additions and 0 deletions
173
requirements/backlog.md
Normal file
173
requirements/backlog.md
Normal file
|
|
@ -0,0 +1,173 @@
|
||||||
|
# Backlog R1
|
||||||
|
|
||||||
|
Stand: 2026-11-02 · Pflege: requirements-analyst · Quelle: `requirements/r1-story-entwurf.md` (freigegeben durch Chris am 2026-11-02), Akzeptanzkriterien in `requirements/20-r1-akzeptanzkriterien.md`.
|
||||||
|
|
||||||
|
Repo: [cschlaefke/Shuffle](https://git.cshomelabs.work/cschlaefke/Shuffle/issues) · Milestone: **R1** (in Forgejo noch nicht angelegt, Issues aktuell ohne Milestone) · 4 Epics, 26 Stories, 26 Issues.
|
||||||
|
|
||||||
|
Akzeptanzkriterien stehen 1:1 als nummerierte Checkliste in den Issues und werden als „KTO-01 Kriterium 3“ referenziert. Die Querschnittskriterien (Datenschutz, Sicherheit, Sprachen, Barrierefreiheit, Zustände/Netz, Plattformen) gelten für jede Story.
|
||||||
|
|
||||||
|
## Stories nach Umsetzungsreihenfolge
|
||||||
|
|
||||||
|
Status: `offen` = Issue angelegt, noch keine Spec. Clarification = Label `needs-clarification` gesetzt (offene Fragen als Kommentar im Issue).
|
||||||
|
|
||||||
|
| 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 | ja |
|
||||||
|
| KAT-05 | [#2](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/2) | Katalogdaten laden und aktuell halten | Katalog | Must | XL | R1.1 (Import), R1.2 (Admin-Pflege, Meldungen) | offen | ja |
|
||||||
|
| KAT-01 | [#3](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/3) | Spiele suchen | Katalog | Must | L | R1.1 | offen | ja |
|
||||||
|
| KAT-02 | [#4](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/4) | Spieldetailseite | Katalog | Must | M | R1.1 | offen | ja |
|
||||||
|
| KTO-04 | [#5](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/5) | Privatsphäre (in R1 nur der Hinweis) | Konto | Must | S | R1.1 | offen | ja |
|
||||||
|
| 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 | ja |
|
||||||
|
| SAM-04 | [#8](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/8) | Wunschliste mit Priorität | Sammlung | Must | M | R1.2 | offen | ja |
|
||||||
|
| SAM-05 | [#9](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/9) | Einkaufsliste führen | Sammlung | Must | M | R1.2 | offen | ja |
|
||||||
|
| SAM-06 | [#10](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/10) | In die Sammlung übernehmen | Sammlung | Must | S | R1.2 | offen | ja |
|
||||||
|
| SAM-03 | [#11](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/11) | Sammlung durchsuchen, filtern und sortieren | Sammlung | Must | L | R1.2 | offen | ja |
|
||||||
|
| KAT-03 | [#12](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/12) | Erweiterungen und Editionen | Katalog | Must | M | R1.2 | offen | ja |
|
||||||
|
| KAT-04 | [#13](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/13) | Fehlendes Spiel melden | Katalog | Must | L | R1.2 | offen | ja |
|
||||||
|
| KTO-02 | [#14](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/14) | Profil bearbeiten | Konto | Must | L | R1.2 | offen | ja |
|
||||||
|
| PAR-01 | [#15](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/15) | Partie erfassen | Partien | Must | XL | R1.3 | offen | ja |
|
||||||
|
| PAR-02 | [#16](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/16) | Mitspieler hinzufügen | Partien | Must | M | R1.3 | offen | ja |
|
||||||
|
| PAR-03 | [#17](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/17) | Ergebnis erfassen | Partien | Must | L | R1.3 | offen | ja |
|
||||||
|
| PAR-04 | [#18](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/18) | Wertungsbogen je Spiel | Partien | Must | M | R1.3 | offen | ja |
|
||||||
|
| PAR-05 | [#19](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/19) | Partie bearbeiten und löschen | Partien | Must | M | R1.3 | offen | ja |
|
||||||
|
| PAR-06 | [#20](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/20) | Partienverlauf | Partien | Must | M | R1.3 | offen | ja |
|
||||||
|
| PAR-07 | [#21](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/21) | Persönliche Statistik | Partien | Must | L | R1.3 | offen | ja |
|
||||||
|
| PAR-08 | [#22](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/22) | Statistik je Spiel | Partien | Must | M | R1.3 | offen | ja |
|
||||||
|
| KTO-05 | [#23](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/23) | Konto löschen und Daten exportieren | Konto | Must | XL | R1.4 | offen | ja |
|
||||||
|
| 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 | ja |
|
||||||
|
| 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 |
|
||||||
|
| 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 | ja |
|
||||||
|
|
||||||
|
## Epics
|
||||||
|
|
||||||
|
| Epic | Label | Stories (Issues) |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| KTO Konto & Profil | `epic/konto` | KTO-01 (#1), KTO-02 (#14), KTO-04 (#5), KTO-05 (#23) |
|
||||||
|
| 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) |
|
||||||
|
|
||||||
|
## Etappen (im Milestone R1)
|
||||||
|
|
||||||
|
| Etappe | Issues |
|
||||||
|
| --- | --- |
|
||||||
|
| R1.1 Fundament | #1, #2 (Import), #3, #4, #5 |
|
||||||
|
| R1.2 Sammlung | #6, #7, #8, #9, #10, #11, #12, #13, #2 (Admin-Pflege, Meldungen), #14 |
|
||||||
|
| R1.3 Partien | #15, #16, #17, #18, #19, #20, #21, #22 |
|
||||||
|
| R1.4 Abschluss | #23, #24, #25, #26 (BGG-Block nur mit Lizenz, S1) |
|
||||||
|
|
||||||
|
## XL-Stories
|
||||||
|
|
||||||
|
Nicht geteilt (Entscheidung Chris, Label `size/xl`). Die Schnittvorschläge stehen im Issue unter „Mögliche Schnitte für die Spec“ und werden in der Spec (architect) entschieden: KTO-01 (#1), KTO-05 (#23), KAT-05 (#2), SAM-08 (#25), PAR-01 (#15).
|
||||||
|
|
||||||
|
## Abhängigkeiten
|
||||||
|
|
||||||
|
In Forgejo als blockierende Abhängigkeiten gesetzt (Issue hängt ab von …):
|
||||||
|
|
||||||
|
| Issue | hängt ab von |
|
||||||
|
| --- | --- |
|
||||||
|
| #3 KAT-01 | #2 |
|
||||||
|
| #4 KAT-02 | #3 |
|
||||||
|
| #5 KTO-04 | #1 |
|
||||||
|
| #6 SAM-01 | #1, #3, #4 |
|
||||||
|
| #7 SAM-02 | #6 |
|
||||||
|
| #8 SAM-04 | #1, #4 |
|
||||||
|
| #9 SAM-05 | #1, #4 |
|
||||||
|
| #10 SAM-06 | #6, #8, #9 |
|
||||||
|
| #11 SAM-03 | #6, #7 |
|
||||||
|
| #12 KAT-03 | #4, #6 |
|
||||||
|
| #13 KAT-04 | #1, #2, #3 |
|
||||||
|
| #14 KTO-02 | #1, #3 |
|
||||||
|
| #15 PAR-01 | #1, #3, #6 |
|
||||||
|
| #16 PAR-02 | #15 |
|
||||||
|
| #17 PAR-03 | #16 |
|
||||||
|
| #18 PAR-04 | #17 |
|
||||||
|
| #19 PAR-05 | #15, #16, #17, #18 |
|
||||||
|
| #20 PAR-06 | #15, #16, #17 |
|
||||||
|
| #21 PAR-07 | #17, #20 |
|
||||||
|
| #22 PAR-08 | #4, #17 |
|
||||||
|
| #23 KTO-05 | #1 |
|
||||||
|
| #24 SAM-07 | #1 |
|
||||||
|
| #25 SAM-08 | #2, #6, #8, #13, #24 |
|
||||||
|
| #26 SAM-09 | #7, #25 |
|
||||||
|
|
||||||
|
Nur im Issue-Text vermerkt (kriterienbezogene Rückverweise, die als blockierende Abhängigkeit Zyklen erzeugen würden):
|
||||||
|
|
||||||
|
- KAT-01 (#3) Kriterium 6 → KAT-04 (#13)
|
||||||
|
- KAT-02 (#4) Kriterien 3–4 → SAM-01 (#6), SAM-04 (#8), SAM-05 (#9); Kriterium 6 → PAR-08 (#22)
|
||||||
|
- SAM-05 (#9) Kriterium 3 → SAM-06 (#10)
|
||||||
|
- 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; Admin-Rolle für #2 und #13
|
||||||
|
|
||||||
|
## Offene Fragen
|
||||||
|
|
||||||
|
Nummerierung wie in `requirements/r1-story-entwurf.md` § 5. Der Wortlaut steht als Kommentar im jeweiligen Issue.
|
||||||
|
|
||||||
|
### A. Widersprüche zwischen Akzeptanzkriterien und Datenmodell/Migrationen
|
||||||
|
|
||||||
|
| Nr | Thema | Issues |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| 1 | Spiel gleichzeitig in Sammlung, Wunsch- und Einkaufsliste? (`unique (owner_id, game_id)`) | #8, #10, #25 |
|
||||||
|
| 2 | Felder für SAM-02/04/05 fehlen im Datenmodell | #7, #8, #9 |
|
||||||
|
| 3 | Deutscher und englischer Titel (alternative Titel) | #3 |
|
||||||
|
| 4 | Verlagsfeld fehlt | #3, #4 |
|
||||||
|
| 5 | Beziehung Erweiterung ↔ Basisspiel fehlt | #12 |
|
||||||
|
| 6 | Tabelle für Meldungen fehlt | #13 |
|
||||||
|
| 7 | Ausblenden, manuell gepflegte Felder, Erlaubnis je Quelle | #2 |
|
||||||
|
| 8 | Profil-Genres fehlen, gleiche Liste wie Katalog? | #14 |
|
||||||
|
| 9 | Stadt im Profil vs. „alles privat“ | #5 |
|
||||||
|
| 10 | Löschumfang Partien, private Katalogeinträge, Meldungen | #23 |
|
||||||
|
| 11 | Ort, Gästeliste, kooperativ/Teams fehlen im Modell | #15, #16, #17, #20 |
|
||||||
|
| 12 | BGG-Import: „nicht gefunden“ vs. automatische private Einträge | #25 |
|
||||||
|
|
||||||
|
### B. Unklare oder nicht testbare Kriterien
|
||||||
|
|
||||||
|
| Nr | Thema | Issues |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| 13 | KAT-01 Kriterium 8 unvollständig, Filterumfang | #3 |
|
||||||
|
| 14 | „Normale Verbindung“ für 2 s | #3 |
|
||||||
|
| 15 | Wann ist ein Eintrag „sehr ähnlich“? | #13 |
|
||||||
|
| 16 | „Flüssig“ bei 1000 Spielen – Zielwert | #11 |
|
||||||
|
| 17 | „Einige Sekunden“ für Rückgängig | #8, #9, #10 |
|
||||||
|
| 18 | Drosselung, Gültigkeit Reset- und Bestätigungslink | #1 |
|
||||||
|
| 19 | KTO-04 Kriterium 2 in R1 nicht testbar | #5 |
|
||||||
|
| 20 | Löschfrist, Exportformat und -umfang, Benachrichtigung, Neuregistrierung | #23 |
|
||||||
|
| 21 | Datenschutzerklärung/AGB, Prüfung Mindestalter, optionale Dienste | #1 |
|
||||||
|
|
||||||
|
### C. Fachliche Lücken je Story
|
||||||
|
|
||||||
|
| Nr | Thema | Issues |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| 22 | Regeln Anzeigename bei Registrierung, Abmelden/E-Mail/Passwort ändern | #1 |
|
||||||
|
| 23 | Vorläufige Spiele als Lieblingsspiele, Reihenfolge ändern | #14 |
|
||||||
|
| 24 | Zugelassene Datenquellen ohne BGG-Lizenz (kritisch für R1) | #2, #4 |
|
||||||
|
| 25 | Admin-Bereich in der App oder internes Werkzeug, wer ist Admin | #2 |
|
||||||
|
| 26 | Rückmeldung zu Meldungen, Ablehnung ohne Zieleintrag | #13 |
|
||||||
|
| 27 | Moderation und Spam-Limit für Meldungen | #13 |
|
||||||
|
| 28 | Edition Pflicht/optional, auch für Listen und Partien | #12 |
|
||||||
|
| 29 | Werte der Zustandsliste, Verwaltung von Tags/Standorten | #7 |
|
||||||
|
| 30 | Suche/Filter auch für Wunsch- und Einkaufsliste, Leerzustand ohne Lizenz | #11 |
|
||||||
|
| 31 | Summe der Einkaufsliste, Verhalten bei abgelehnter Übernahme | #9 |
|
||||||
|
| 32 | Umgang mit Listen-Notiz bei vorhandener Sammlungsnotiz | #10 |
|
||||||
|
| 33 | Eine BGG-Verknüpfung je Konto, mehrfach verknüpfter BGG-Name | #24 |
|
||||||
|
| 34 | Zählende BGG-Status, Prioritätsabbildung, Erweiterungen | #25 |
|
||||||
|
| 35 | „In Shuffle selbst hinzugefügt“, Dauer der Hervorhebung | #26 |
|
||||||
|
| 36 | Datum/Uhrzeit, wählbare Spiele, Offline-Konflikte, Offline im Web | #15, #19 |
|
||||||
|
| 37 | Selbst entfernen, Namensvergleich, Gäste löschen, Längenbegrenzung | #16 |
|
||||||
|
| 38 | Kooperativer Sieg in Siegquote, Teampunkte, niedrigste Punktzahl gewinnt | #17, #21 |
|
||||||
|
| 39 | Mehrere Wertungsbögen, Kategorien löschen, Minus-Kategorien | #18 |
|
||||||
|
| 40 | Siegquote ohne eigene Teilnahme, Diagrammzeitraum, Spielzeit | #21 |
|
||||||
|
| 41 | Definition Bestwert, Gäste als häufigste Mitspieler | #22 |
|
||||||
|
|
||||||
|
### D. Querschnitt und fehlende Stories
|
||||||
|
|
||||||
|
| Nr | Thema | Issues |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| 42 | Startseite/Dashboard (F18) – keine Story | keinem Issue zugeordnet, Entscheidung Chris offen |
|
||||||
|
| 43 | Einstellungsbereich (Sprachwechsel, Abmelden, Hinweis, Konto löschen) – keine Story | keinem Issue zugeordnet, Entscheidung Chris offen |
|
||||||
|
| 44 | Admin-Rolle (QUE-07) und Admin-Bereich (QUE-08) – keine Story, von KAT-04/KAT-05 vorausgesetzt | keinem Issue zugeordnet, Entscheidung Chris offen |
|
||||||
|
| 45 | E-Mails in R1, Sprache der Mails | #1, #13, #23 |
|
||||||
|
| 46 | Diagramme für Screenreader | #21 |
|
||||||
|
| 47 | Selbstbestätigung Mindestalter 16 ausreichend? | #1 |
|
||||||
|
| 48 | Kennzeichnung fremdsprachiger Katalogtexte | #4 |
|
||||||
297
requirements/r1-story-entwurf.md
Normal file
297
requirements/r1-story-entwurf.md
Normal file
|
|
@ -0,0 +1,297 @@
|
||||||
|
# R1 – Story-Entwurf (zur Freigabe durch Chris)
|
||||||
|
|
||||||
|
> **Überführt in backlog.md am 2026-11-02.** Freigegeben durch Chris; die 26 Stories sind als Forgejo-Issues #1–#26 angelegt. Maßgeblich für den aktuellen Stand ist `requirements/backlog.md`.
|
||||||
|
|
||||||
|
Stand: 2026-11-02 · Ersteller: requirements-analyst · Status: **Entwurf, nicht freigegeben**
|
||||||
|
|
||||||
|
Quellen: `requirements/20-r1-akzeptanzkriterien.md` (Akzeptanzkriterien, maßgeblich), `requirements/10-anforderungen.md` (Kontext, Entscheidungen F1–F18, S1–S3), `docs/datenmodell-r1.md` und `supabase/migrations/` (Abgleich auf Lücken).
|
||||||
|
|
||||||
|
Noch keine Forgejo-Issues, Labels oder `backlog.md`. Nach Freigabe wird dieser Entwurf in `requirements/backlog.md` überführt und je Story ein Issue nach `.forgejo/issue_template/user-story.md` angelegt. Die Akzeptanzkriterien werden 1:1 aus dem Quelldokument übernommen (Referenz „KTO-01 Kriterium 3“), hier nur als Anzahl referenziert.
|
||||||
|
|
||||||
|
**Anzahl:** 4 Epics, 26 Stories (KTO 4 + KAT 5 + SAM 9 + PAR 8). Das entspricht exakt dem Quelldokument, keine Abweichung.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Epics
|
||||||
|
|
||||||
|
| Epic | Label | Beschreibung | Stories in R1 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| KTO Konto & Profil | `epic/konto` | Registrierung, Anmeldung, eigenes Profil, Privatsphäre-Hinweis, Konto löschen und Datenexport (DSGVO) | KTO-01, KTO-02, KTO-04, KTO-05 |
|
||||||
|
| KAT Spielekatalog | `epic/katalog` | BGG-unabhängiger Katalog mit eigenen IDs: Suche, Detailseite, Erweiterungen/Editionen, Meldung fehlender Spiele, Import und Admin-Pflege | KAT-01 bis KAT-05 |
|
||||||
|
| SAM Sammlung & Listen | `epic/sammlung` | Private Sammlung mit eigenen Angaben, Wunsch- und Einkaufsliste, Übernahme in die Sammlung, BGG-Verknüpfung und -Import (lizenzabhängig, zuletzt gebaut) | SAM-01 bis SAM-09 |
|
||||||
|
| PAR Partien & Statistik | `epic/partien` | Partien erfassen (auch offline), Gäste als Mitspieler, Ergebnisse inkl. kooperativ/Team, Wertungsbögen, Verlauf, persönliche Statistik und Statistik je Spiel | PAR-01 bis PAR-08 |
|
||||||
|
|
||||||
|
Querschnitt (QUE-04 Datenschutz, QUE-05 Sprachen, QUE-06 Barrierefreiheit, Sicherheit, Zustände/Netz, Plattformen) ist **keine eigene Story**, sondern gilt laut Quelldokument für jede Story und wird in jedem Issue als Abschnitt „Querschnitt“ referenziert.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Story-Übersicht
|
||||||
|
|
||||||
|
Prioritäten und Größen sind Vorschläge. Größen: S ≈ 1 Tag, M ≈ 2 Tage, L ≈ 3 Tage, XL = größer als 3 Tage, sollte vor der Umsetzung geteilt werden (Schnittvorschlag in Abschnitt 3).
|
||||||
|
|
||||||
|
| ID | Titel | Epic | Prio | Größe | Abhängigkeiten | Vorgeschlagene Labels |
|
||||||
|
| --- | --- | --- | --- | --- | --- | --- |
|
||||||
|
| KTO-01 | Registrieren, anmelden und Passwort zurücksetzen | KTO | Must | XL | – (Fundament; QUE-04 Einwilligung) | type/story, epic/konto, prio/must, size/xl, needs-clarification |
|
||||||
|
| KTO-02 | Profil bearbeiten | KTO | Must | L | KTO-01, KAT-01 (Lieblingsspiele per Katalogsuche) | type/story, epic/konto, prio/must, size/l, needs-clarification |
|
||||||
|
| KTO-04 | Privatsphäre (in R1 nur der Hinweis) | KTO | Must | S | KTO-01 | type/story, epic/konto, prio/must, size/s, needs-clarification |
|
||||||
|
| KTO-05 | Konto löschen und Daten exportieren | KTO | Must | XL | KTO-01; inhaltlich alle Daten-Stories (SAM, PAR, KAT-04) | type/story, epic/konto, prio/must, size/xl, needs-clarification |
|
||||||
|
| KAT-01 | Spiele suchen | KAT | Must | L | KAT-05 (Katalogdaten), KAT-04 (Kriterium 6) | type/story, epic/katalog, prio/must, size/l, needs-clarification |
|
||||||
|
| KAT-02 | Spieldetailseite | KAT | Must | M | KAT-01; SAM-01/04/05 (Kriterien 3–4); PAR-08 (Kriterium 6) | type/story, epic/katalog, prio/must, size/m, needs-clarification |
|
||||||
|
| KAT-03 | Erweiterungen und Editionen | KAT | Must | M | KAT-02, SAM-01 | type/story, epic/katalog, prio/must, size/m, needs-clarification |
|
||||||
|
| KAT-04 | Fehlendes Spiel melden | KAT | Must | L | KTO-01, KAT-01; KAT-05 (Freigabe durch Admin) | type/story, epic/katalog, prio/must, size/l, needs-clarification |
|
||||||
|
| KAT-05 | Katalogdaten laden und aktuell halten | KAT | Must | XL | – (Fundament); Admin-Rolle | type/story, epic/katalog, prio/must, size/xl, needs-clarification |
|
||||||
|
| SAM-01 | Spiel zur Sammlung hinzufügen | SAM | Must | S | KTO-01, KAT-01, KAT-02 | type/story, epic/sammlung, prio/must, size/s |
|
||||||
|
| SAM-02 | Eigene Angaben pro Spiel | SAM | Must | M | SAM-01 | type/story, epic/sammlung, prio/must, size/m, needs-clarification |
|
||||||
|
| SAM-03 | Sammlung durchsuchen, filtern und sortieren | SAM | Must | L | SAM-01, SAM-02 | type/story, epic/sammlung, prio/must, size/l, needs-clarification |
|
||||||
|
| SAM-04 | Wunschliste mit Priorität | SAM | Must | M | KTO-01, KAT-02 | type/story, epic/sammlung, prio/must, size/m, needs-clarification |
|
||||||
|
| SAM-05 | Einkaufsliste führen | SAM | Must | M | KTO-01, KAT-02, SAM-06 (Kriterium 3) | type/story, epic/sammlung, prio/must, size/m, needs-clarification |
|
||||||
|
| SAM-06 | In die Sammlung übernehmen | SAM | Must | S | SAM-01, SAM-04, SAM-05 | type/story, epic/sammlung, prio/must, size/s, needs-clarification |
|
||||||
|
| SAM-07 | BGG-Konto verknüpfen | SAM | Should | S | KTO-01; BGG-Lizenz (S1) | type/story, epic/sammlung, prio/should, size/s, needs-clarification |
|
||||||
|
| SAM-08 | Sammlung und Wunschliste aus BGG importieren | SAM | Should | XL | SAM-07, SAM-01, SAM-04, KAT-05 (bgg_id), KAT-04; BGG-Lizenz | type/story, epic/sammlung, prio/should, size/xl, needs-clarification |
|
||||||
|
| SAM-09 | BGG-Import wiederholen und abgleichen | SAM | Should | L | SAM-08, SAM-02 | type/story, epic/sammlung, prio/should, size/l, needs-clarification |
|
||||||
|
| PAR-01 | Partie erfassen | PAR | Must | XL | KTO-01, KAT-01, SAM-01 | type/story, epic/partien, prio/must, size/xl, needs-clarification |
|
||||||
|
| PAR-02 | Mitspieler hinzufügen | PAR | Must | M | PAR-01 | type/story, epic/partien, prio/must, size/m, needs-clarification |
|
||||||
|
| PAR-03 | Ergebnis erfassen | PAR | Must | L | PAR-02 | type/story, epic/partien, prio/must, size/l, needs-clarification |
|
||||||
|
| PAR-04 | Wertungsbogen je Spiel | PAR | Must | M | PAR-03 | type/story, epic/partien, prio/must, size/m, needs-clarification |
|
||||||
|
| PAR-05 | Partie bearbeiten und löschen | PAR | Must | M | PAR-01 bis PAR-04 | type/story, epic/partien, prio/must, size/m, needs-clarification |
|
||||||
|
| PAR-06 | Partienverlauf | PAR | Must | M | PAR-01 bis PAR-03 | type/story, epic/partien, prio/must, size/m, needs-clarification |
|
||||||
|
| PAR-07 | Persönliche Statistik | PAR | Must | L | PAR-03, PAR-06 (Kriterium 6) | type/story, epic/partien, prio/must, size/l, needs-clarification |
|
||||||
|
| PAR-08 | Statistik je Spiel | PAR | Must | M | PAR-03, KAT-02 | type/story, epic/partien, prio/must, size/m, needs-clarification |
|
||||||
|
|
||||||
|
**Entscheidung Chris (2026-11-02):** Neues Label `size/xl` wird eingeführt; die fünf XL-Stories bleiben ungeteilt (26 Issues). Schnittvorschläge unten dienen als Orientierung für die Spec.
|
||||||
|
|
||||||
|
**Priorität:** Alle Stories außer dem BGG-Block sind Must, weil R1 sie ausdrücklich umfasst. SAM-07 bis SAM-09 sind Should, weil R1 laut S1 auch ohne Import starten darf, wenn die Lizenz fehlt. Nur SAM-01 hat derzeit keine offene Frage.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Stories im Einzelnen
|
||||||
|
|
||||||
|
Format je Story: User-Story-Satz · Akzeptanzkriterien (Referenz) · Nicht im Scope · ggf. Schnittvorschlag. Offene Fragen gesammelt in Abschnitt 5.
|
||||||
|
|
||||||
|
### KTO – Konto & Profil
|
||||||
|
|
||||||
|
**KTO-01 Registrieren, anmelden und Passwort zurücksetzen**
|
||||||
|
Als Brettspieler ohne Konto möchte ich mich mit E-Mail und Passwort registrieren, anmelden und mein Passwort zurücksetzen können, damit meine Sammlung und Partien sicher an mein Konto gebunden sind.
|
||||||
|
- AK: 9 Kriterien (`20-r1-akzeptanzkriterien.md` § KTO-01) + Querschnitt Datenschutz Kriterium 1 (Zustimmung zu Datenschutzerklärung/AGB).
|
||||||
|
- Nicht im Scope: Apple-/Google-Login (O1), Zwei-Faktor, Abmelden aller Geräte außer nach Passwort-Reset.
|
||||||
|
- Schnittvorschlag: KTO-01a Registrierung inkl. Alters- und Einwilligungsbestätigung, E-Mail-Bestätigung (Krit. 1–4, 6) · KTO-01b Anmelden/Abmelden mit Drosselung (Krit. 5, 7) · KTO-01c Passwort zurücksetzen (Krit. 8–9).
|
||||||
|
|
||||||
|
**KTO-02 Profil bearbeiten**
|
||||||
|
Als angemeldete Nutzerin möchte ich Anzeigename, Avatar, Kurzbeschreibung, Lieblingsspiele und Genres pflegen, damit mein Profil meine Spielvorlieben zeigt.
|
||||||
|
- AK: 7 Kriterien (§ KTO-02).
|
||||||
|
- Nicht im Scope: Wohnort/PLZ (KTO-03, R2), externe Konten (KTO-07, R3), Profil für andere sichtbar (KTO-08, R3), eindeutiger Anzeigename (O2).
|
||||||
|
|
||||||
|
**KTO-04 Privatsphäre (in R1 nur der Hinweis)**
|
||||||
|
Als Nutzer möchte ich in den Einstellungen sehen, dass alle meine Daten privat sind, damit ich der App meine Daten anvertraue.
|
||||||
|
- AK: 2 Kriterien (§ KTO-04).
|
||||||
|
- Nicht im Scope: echte Freigabe-Einstellungen privat/Freunde/öffentlich (R2, O3).
|
||||||
|
|
||||||
|
**KTO-05 Konto löschen und Daten exportieren**
|
||||||
|
Als Nutzer möchte ich mein Konto endgültig löschen und vorher meine Daten exportieren können, damit ich meine Rechte nach DSGVO wahrnehmen kann.
|
||||||
|
- AK: 5 Kriterien (§ KTO-05) + Querschnitt Datenschutz Kriterium 3.
|
||||||
|
- Nicht im Scope: Daten-Import aus dem Export, Konto pausieren.
|
||||||
|
- Schnittvorschlag: KTO-05a Konto löschen (Krit. 1–3) · KTO-05b Datenexport (Krit. 4–5).
|
||||||
|
|
||||||
|
### KAT – Spielekatalog
|
||||||
|
|
||||||
|
**KAT-01 Spiele suchen**
|
||||||
|
Als Nutzer (auch ohne Anmeldung, O6) möchte ich Spiele nach Titel und Verlag suchen und nach Spielerzahl, Dauer und Alter filtern, damit ich ein Spiel schnell finde oder neue entdecke.
|
||||||
|
- AK: 8 Kriterien (§ KAT-01); Kriterium 8 ist unvollständig formuliert (siehe Frage 12).
|
||||||
|
- Nicht im Scope: Barcode-Suche, Offline-Katalog (O7), Empfehlungen.
|
||||||
|
|
||||||
|
**KAT-02 Spieldetailseite**
|
||||||
|
Als Nutzer möchte ich alle Eckdaten eines Spiels auf einer Seite sehen und von dort meinen Listenstatus ändern, damit ich entscheiden kann, ob und wo ich es eintrage.
|
||||||
|
- AK: 6 Kriterien (§ KAT-02).
|
||||||
|
- Nicht im Scope: Reviews (COM, R3), Zubehör/Sleeves (ZUB).
|
||||||
|
|
||||||
|
**KAT-03 Erweiterungen und Editionen**
|
||||||
|
Als Sammler möchte ich Erweiterungen dem Basisspiel zugeordnet sehen und die Edition wählen, die ich besitze, damit meine Sammlung genau abbildet, was im Regal steht.
|
||||||
|
- AK: 5 Kriterien (§ KAT-03).
|
||||||
|
- Nicht im Scope: Mehrfachbesitz derselben Edition (O8), mehrsprachige Katalogtexte.
|
||||||
|
|
||||||
|
**KAT-04 Fehlendes Spiel melden**
|
||||||
|
Als Nutzer möchte ich ein fehlendes Spiel melden und sofort als vorläufigen privaten Eintrag nutzen, damit mich ein Katalogloch nicht beim Erfassen blockiert.
|
||||||
|
- AK: 5 Kriterien (§ KAT-04).
|
||||||
|
- Nicht im Scope: öffentliche Anzeige gemeldeter Spiele, Bild-Upload zur Meldung (nicht gefordert).
|
||||||
|
|
||||||
|
**KAT-05 Katalogdaten laden und aktuell halten**
|
||||||
|
Als Admin möchte ich Katalogdaten aus zugelassenen Quellen importieren und manuell pflegen, ausblenden, zusammenführen sowie Meldungen bearbeiten, damit der Katalog vollständig und korrekt bleibt.
|
||||||
|
- AK: 6 Kriterien (§ KAT-05).
|
||||||
|
- Nicht im Scope: Admin-Bereich für News-Quellen und Verifizierung (QUE-08, R4).
|
||||||
|
- Schnittvorschlag: KAT-05a Import aus einer Quelle inkl. Fehlerverhalten und Quellenvermerk (Krit. 1–3, 6) · KAT-05b Admin-Pflege: bearbeiten, ausblenden, zusammenführen (Krit. 4) · KAT-05c Meldungen bearbeiten (Krit. 5).
|
||||||
|
|
||||||
|
### SAM – Sammlung & Listen
|
||||||
|
|
||||||
|
**SAM-01 Spiel zur Sammlung hinzufügen**
|
||||||
|
Als Sammler möchte ich ein Spiel aus Suche oder Detailseite mit einem Schritt in meine Sammlung aufnehmen, damit ich meine Sammlung schnell aufbaue.
|
||||||
|
- AK: 4 Kriterien (§ SAM-01).
|
||||||
|
- Nicht im Scope: Mehrfachbesitz (O8), Offline-Hinzufügen (F3).
|
||||||
|
|
||||||
|
**SAM-02 Eigene Angaben pro Spiel**
|
||||||
|
Als Sammler möchte ich Zustand, Kaufdatum, Kaufpreis, Notiz, Standort und Tags je Spiel erfassen, damit ich meine Sammlung verwalten und wiederfinden kann.
|
||||||
|
- AK: 5 Kriterien (§ SAM-02).
|
||||||
|
- Nicht im Scope: andere Währungen als Euro, Fotos des eigenen Exemplars.
|
||||||
|
|
||||||
|
**SAM-03 Sammlung durchsuchen, filtern und sortieren**
|
||||||
|
Als Sammler möchte ich meine Sammlung durchsuchen, filtern und sortieren, damit ich auch bei vielen Spielen das passende finde.
|
||||||
|
- AK: 5 Kriterien (§ SAM-03).
|
||||||
|
- Nicht im Scope: gespeicherte Filter, Teilen der Sammlung.
|
||||||
|
|
||||||
|
**SAM-04 Wunschliste mit Priorität**
|
||||||
|
Als Spieler möchte ich Spiele mit Priorität und Notiz auf eine Wunschliste setzen, damit ich weiß, was ich gern hätte.
|
||||||
|
- AK: 4 Kriterien (§ SAM-04).
|
||||||
|
- Nicht im Scope: Wunschliste teilen, Preisalarme.
|
||||||
|
|
||||||
|
**SAM-05 Einkaufsliste führen**
|
||||||
|
Als Spieler möchte ich geplante Käufe mit Händler, Preis und Link festhalten und die Summe sehen, damit ich meine Einkäufe plane.
|
||||||
|
- AK: 4 Kriterien (§ SAM-05).
|
||||||
|
- Nicht im Scope: Preisvergleich, Händler-Verknüpfung (R4).
|
||||||
|
|
||||||
|
**SAM-06 In die Sammlung übernehmen**
|
||||||
|
Als Spieler möchte ich ein Spiel von der Wunsch- oder Einkaufsliste mit einer Aktion in die Sammlung übernehmen, damit ich nichts doppelt eintippen muss.
|
||||||
|
- AK: 4 Kriterien (§ SAM-06).
|
||||||
|
- Nicht im Scope: Übernahme aus Crowdfunding (KSG-05).
|
||||||
|
|
||||||
|
**SAM-07 BGG-Konto verknüpfen**
|
||||||
|
Als BGG-Nutzer möchte ich meinen BGG-Namen hinterlegen, damit ich meine Sammlung von dort importieren kann.
|
||||||
|
- AK: 5 Kriterien (§ SAM-07).
|
||||||
|
- Nicht im Scope: BGG-Login/Passwort, Anzeige des BGG-Namens für andere (KTO-07, R3), Zurückschreiben nach BGG (F9).
|
||||||
|
|
||||||
|
**SAM-08 Sammlung und Wunschliste aus BGG importieren**
|
||||||
|
Als BGG-Nutzer möchte ich Sammlung und Wunschliste von BGG übernehmen, damit ich meine bestehende Sammlung nicht abtippen muss.
|
||||||
|
- AK: 7 Kriterien (§ SAM-08).
|
||||||
|
- Nicht im Scope: automatischer Hintergrund-Abgleich (F9), Import von Partien (Plays) aus BGG (nicht gefordert).
|
||||||
|
- Schnittvorschlag: SAM-08a Import Sammlung inkl. Zuordnung und Zusammenfassung (Krit. 1–4, 7) · SAM-08b Import Wunschliste · SAM-08c Abbruch, Fehler, Rate-Limit (Krit. 5–6).
|
||||||
|
|
||||||
|
**SAM-09 BGG-Import wiederholen und abgleichen**
|
||||||
|
Als BGG-Nutzer möchte ich einen erneuten Import als Änderungsliste sehen und bestätigen, damit meine Shuffle-Daten nicht ungefragt überschrieben werden.
|
||||||
|
- AK: 6 Kriterien (§ SAM-09).
|
||||||
|
- Nicht im Scope: automatischer Abgleich, Export nach BGG.
|
||||||
|
|
||||||
|
### PAR – Partien & Statistik
|
||||||
|
|
||||||
|
**PAR-01 Partie erfassen**
|
||||||
|
Als Spieler möchte ich eine Partie mit Spiel, Datum, Dauer, Ort und Notiz erfassen, auch ohne Netz, damit ich direkt am Spieltisch nichts vergesse.
|
||||||
|
- AK: 7 Kriterien (§ PAR-01).
|
||||||
|
- Nicht im Scope: Offline-Katalogsuche (O7), Fotos zur Partie, Timer.
|
||||||
|
- Schnittvorschlag: PAR-01a Partie online erfassen (Krit. 1–3) · PAR-01b Offline-Erfassung und Synchronisation (Krit. 4–7).
|
||||||
|
|
||||||
|
**PAR-02 Mitspieler hinzufügen**
|
||||||
|
Als Spieler möchte ich mich und Gäste mit Namen als Mitspieler eintragen, damit die Partie vollständig ist, auch wenn Mitspieler kein Konto haben.
|
||||||
|
- AK: 6 Kriterien (§ PAR-02).
|
||||||
|
- Nicht im Scope: verknüpfte Nutzer und Bestätigung (F11, R2), Gruppenmitglieder (R2).
|
||||||
|
|
||||||
|
**PAR-03 Ergebnis erfassen**
|
||||||
|
Als Spieler möchte ich Punkte, Platzierungen, Sieger sowie kooperative und Team-Ergebnisse erfassen, damit die Statistik stimmt.
|
||||||
|
- AK: 7 Kriterien (§ PAR-03).
|
||||||
|
- Nicht im Scope: Spielerranking (PAR-10, R3), Elo o. Ä.
|
||||||
|
|
||||||
|
**PAR-04 Wertungsbogen je Spiel**
|
||||||
|
Als Spieler möchte ich eigene Wertungskategorien je Spiel anlegen und wiederverwenden, damit die Endabrechnung schnell und fehlerfrei geht.
|
||||||
|
- AK: 5 Kriterien (§ PAR-04).
|
||||||
|
- Nicht im Scope: geteilte Vorlagen im Katalog (O9).
|
||||||
|
|
||||||
|
**PAR-05 Partie bearbeiten und löschen**
|
||||||
|
Als Spieler möchte ich erfasste Partien korrigieren oder löschen, damit Verlauf und Statistik stimmen.
|
||||||
|
- AK: 4 Kriterien (§ PAR-05).
|
||||||
|
- Nicht im Scope: Papierkorb/Wiederherstellen.
|
||||||
|
|
||||||
|
**PAR-06 Partienverlauf**
|
||||||
|
Als Spieler möchte ich meine Partien als filterbare Liste sehen, damit ich nachschauen kann, was ich wann mit wem gespielt habe.
|
||||||
|
- AK: 5 Kriterien (§ PAR-06).
|
||||||
|
- Nicht im Scope: Export einzelner Partien (Export nur über KTO-05).
|
||||||
|
|
||||||
|
**PAR-07 Persönliche Statistik**
|
||||||
|
Als Spieler möchte ich Kennzahlen, Ranglisten und einen Monatsverlauf meiner Partien für einen Zeitraum sehen, damit ich mein Spielverhalten verstehe.
|
||||||
|
- AK: 7 Kriterien (§ PAR-07).
|
||||||
|
- Nicht im Scope: Gruppenstatistik (PAR-09, R2), Ranking (PAR-10, R3).
|
||||||
|
|
||||||
|
**PAR-08 Statistik je Spiel**
|
||||||
|
Als Spieler möchte ich je Spiel Partien, Dauer, Siegquote, Bestwert und häufigste Mitspieler sehen, damit ich meine Entwicklung in einem Spiel verfolge.
|
||||||
|
- AK: 5 Kriterien (§ PAR-08).
|
||||||
|
- Nicht im Scope: Vergleich mit anderen Nutzern.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Umsetzungsreihenfolge und Milestones (Vorschlag)
|
||||||
|
|
||||||
|
Chris hat noch keine Milestones vorgegeben. Vorschlag: ein Milestone **R1** für alle 26 Stories, intern in vier Etappen gegliedert (alternativ als eigene Milestones R1.1 bis R1.4):
|
||||||
|
|
||||||
|
| Etappe | Stories | Begründung |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| R1.1 Fundament | KTO-01, KAT-05 (a: Import), KAT-01, KAT-02, KTO-04 | Ohne Konto und Katalogdaten ist keine andere Story testbar. Querschnitt (Sprachen, Theme, Zustände) entsteht hier mit. |
|
||||||
|
| R1.2 Sammlung | SAM-01, SAM-02, SAM-04, SAM-05, SAM-06, SAM-03, KAT-03, KAT-04, KAT-05 (b/c: Admin), KTO-02 | Kern des Solo-Nutzens; KAT-04 braucht die Admin-Freigabe aus KAT-05. KTO-02 nach KAT-01 wegen Lieblingsspielen. |
|
||||||
|
| R1.3 Partien | PAR-01, PAR-02, PAR-03, PAR-04, PAR-05, PAR-06, PAR-07, PAR-08 | Strikt in dieser Reihenfolge; PAR-01b (Offline) als eigener Block mit hohem Testaufwand. |
|
||||||
|
| R1.4 Abschluss | KTO-05, SAM-07, SAM-08, SAM-09 | KTO-05 erst, wenn alle Datenarten existieren (Export/Löschung vollständig). BGG zuletzt und nur mit Lizenz (S1). |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Offene fachliche Fragen, Widersprüche und Lücken
|
||||||
|
|
||||||
|
### A. Widersprüche zwischen Akzeptanzkriterien und Datenmodell/Migrationen
|
||||||
|
|
||||||
|
1. **SAM-04 Krit. 2 / SAM-06 Krit. 3 / SAM-08 vs. O8 und Migration:** SAM-04 erlaubt ein Spiel gleichzeitig in Sammlung und auf der Wunschliste („andere Edition“). `collection_items` hat aber `unique (owner_id, game_id)` und genau einen Wert `list`, also ein Spiel nur in einer der drei Listen. Annahme 7 spricht nur von „höchstens einmal in der Sammlung“. Was gilt: Darf ein Spiel gleichzeitig in Sammlung, Wunsch- und Einkaufsliste stehen?
|
||||||
|
2. **SAM-02 / SAM-04 / SAM-05 vs. Datenmodell:** Zustand, Kaufpreis, Standort, Tags (SAM-02), Priorität (SAM-04), Händler, geplanter Preis, Link (SAM-05) fehlen im Modell. Datenmodell-Entscheidung 3 sagt „Preis und Laden können später ergänzt werden“ – gehören sie in R1 (laut Akzeptanzkriterien ja) oder werden die Kriterien gekürzt?
|
||||||
|
3. **KAT-01 Krit. 2 vs. Datenmodell:** Suche nach deutschem und englischem Titel – das Modell hat nur `title` und „eine Sprache je Spiel in R1“. Sind alternative Titel in R1 gefordert?
|
||||||
|
4. **KAT-01 Krit. 3 / KAT-02 Krit. 1:** Verlag ist gefordert, im Modell gibt es kein Verlagsfeld.
|
||||||
|
5. **KAT-03 Krit. 1 und 4:** Erweiterung ↔ Basisspiel ist gefordert, im Modell gibt es keine solche Beziehung (nur Varianten). Ist eine Erweiterung ein eigenes Spiel mit Verweis auf das Basisspiel?
|
||||||
|
6. **KAT-04:** Für Meldungen (Status offen/freigegeben/abgelehnt/zusammengeführt, Link, Verweis auf Zieleintrag) gibt es keine Tabelle. Bitte bestätigen, dass dies in R1 neu dazukommt (Umsetzung: architect).
|
||||||
|
7. **KAT-05 Krit. 4 und 6:** „Ausblenden“, „manuell gepflegte Felder“ und „Erlaubnis je Quelle“ sind im Modell nicht abgebildet.
|
||||||
|
8. **KTO-02 Krit. 6:** Genres im Profil – im Modell nur Lieblingsspiele, keine Profil-Genres. Ist die „feste Liste“ dieselbe Genre-Liste wie im Katalog?
|
||||||
|
9. **KTO-04 Krit. 1 / Annahme 2 vs. Datenmodell:** Akzeptanzkriterien sagen „in R1 ist alles privat“, das Datenmodell sagt „alles privat außer der Stadt im Profil“ und erlaubt Fremden das Lesen von Anzeigename, Avatar und Stadt. Zudem ist KTO-03 (Wohnort) R2. Gehört die Stadt überhaupt in R1, und was zeigt der Hinweis in KTO-04?
|
||||||
|
10. **KTO-05 Krit. 2 vs. Datenmodell-Entscheidung 2:** Akzeptanzkriterium: Partien und Gast-Namen werden gelöscht. Datenmodell: Partien bleiben für andere Mitspieler erhalten („Gelöschter Nutzer“). Für R1 (keine verknüpften Mitspieler) bitte klarstellen: Werden die eigenen Partien des Gelöschten vollständig gelöscht? Ebenso: Was passiert mit seinen privaten Katalogeinträgen und offenen Meldungen (KAT-04)?
|
||||||
|
11. **PAR-01 Krit. 1 / PAR-06 Krit. 2:** Ort einer Partie fehlt im Modell (`plays` hat kein Ort-Feld). **PAR-02 Krit. 3 und 6:** Eine Gästeliste mit Umbenennen über alle Partien setzt eine eigene Gast-Liste voraus, das Modell speichert Gäste nur als Text je Partie. **PAR-03 Krit. 4 und 5:** Kooperativ und Teams fehlen im Modell.
|
||||||
|
12. **SAM-08 Krit. 4 vs. Datenmodell:** Akzeptanzkriterium: fehlende BGG-Spiele landen in „nicht gefunden“ und können gemeldet werden. Datenmodell: Import legt fehlende Spiele automatisch als private Einträge an. Was gilt?
|
||||||
|
|
||||||
|
### B. Unklare oder nicht testbare Kriterien
|
||||||
|
|
||||||
|
13. **KAT-01 Krit. 8** ist unvollständig (kein Wenn/Dann) und nennt Genre als Filter, der in Krit. 4 fehlt. Gewünschte Filter: Spielerzahl, Dauer, Alter, Genre – auch Mechanik/Kategorie? Funktioniert der Filter auch ohne Suchbegriff (Entdecken)?
|
||||||
|
14. **KAT-01 Krit. 7:** Was ist eine „normale Verbindung“ (Messbedingung für 2 s)?
|
||||||
|
15. **KAT-04 Krit. 2:** Ab wann ist ein Eintrag „sehr ähnlich“ (gleicher Titel, Titel + Jahr …)?
|
||||||
|
16. **SAM-03 Krit. 4:** „Flüssig“ ist nicht messbar – Zielwert (z. B. Filterergebnis in x ms)?
|
||||||
|
17. **SAM-04 Krit. 4 / SAM-05 Krit. 4 / SAM-06 Krit. 4:** „Einige Sekunden“ – konkreter Wert?
|
||||||
|
18. **KTO-01 Krit. 7:** Ab wie vielen Fehlversuchen und für wie lange wird gebremst? **Krit. 8:** Gültigkeit des Reset-Links? Gilt auch für den Bestätigungslink aus Krit. 1 eine Frist?
|
||||||
|
19. **KTO-04 Krit. 2** betrifft künftige Releases und ist in R1 nicht testbar. Als Regel ins Anforderungsdokument verschieben?
|
||||||
|
20. **KTO-05:** Konkrete Löschfrist (Krit. 2)? Format JSON oder CSV oder beides (Krit. 4)? Gehören Wertungsbögen, Gästeliste, Avatar und private Katalogeinträge in den Export? Wie erfährt der Nutzer, dass der Export fertig ist (E-Mail, In-App)? Wie lange ist er abrufbar (Krit. 5)? Krit. 3: Ist die Neuregistrierung mit derselben E-Mail sofort möglich oder erst nach Ablauf der Löschfrist?
|
||||||
|
21. **KTO-01 / QUE-04:** Liegen Datenschutzerklärung und Nutzungsbedingungen (inkl. Löschfrist) vor, und gibt es einen Termin für die rechtliche Prüfung des Mindestalters 16 (F8)? Gibt es in R1 überhaupt optionale Dienste wie Nutzungsanalyse (QUE-04 Krit. 2)?
|
||||||
|
|
||||||
|
### C. Fachliche Lücken je Story
|
||||||
|
|
||||||
|
22. **KTO-01:** Gelten für den Anzeigenamen bei der Registrierung dieselben Regeln wie in KTO-02 (1–30 Zeichen)? Gibt es eine eigene Story für Abmelden und E-Mail-Adresse/Passwort ändern (bei angemeldetem Nutzer)? Aktuell nicht gefordert.
|
||||||
|
23. **KTO-02 Krit. 5:** Dürfen vorläufige private Spiele (KAT-04) Lieblingsspiele sein? Wie wird die Reihenfolge geändert?
|
||||||
|
24. **KAT-02 Krit. 5 / KAT-05 Krit. 6:** Welche Datenquelle(n) außer BGG sind für R1 „zugelassen“? Falls die BGG-Lizenz nicht kommt: Woher kommen Katalogdaten, Cover und Beschreibungen zum Start (Handpflege, Seed, andere Quelle)? Das ist für R1 kritisch.
|
||||||
|
25. **KAT-05 Krit. 4–5:** Gibt es in R1 einen Admin-Bereich in der App (QUE-08 ist sonst R4) oder reicht Pflege über ein internes Werkzeug? Wer ist Admin (nur Chris)?
|
||||||
|
26. **KAT-04 Krit. 5:** Wie erfährt der Nutzer von Freigabe/Ablehnung/Zusammenführung? Benachrichtigungen (QUE-01) sind erst R2 – reicht ein Hinweis in der App? Was passiert mit dem vorläufigen Eintrag bei Ablehnung ohne Zieleintrag?
|
||||||
|
27. **KAT-04 / Moderation:** Gemeldete Titel und Links sind Nutzerinhalte. Prüft Chris jede Meldung manuell? Gibt es ein Limit gegen Spam-Meldungen?
|
||||||
|
28. **KAT-03 Krit. 3:** Ist die Wahl der Edition Pflicht oder optional? Gilt die Editionswahl auch für Wunsch-/Einkaufsliste und Partien (Modell hat `variant_id` in `plays`)?
|
||||||
|
29. **SAM-02 Krit. 1:** Welche Werte hat die feste Zustandsliste? Werden Tags/Standorte verwaltet (umbenennen, löschen)?
|
||||||
|
30. **SAM-03:** Sind Wunsch- und Einkaufsliste ebenfalls durchsuchbar/filterbar? Krit. 5 nennt den BGG-Import – welcher Leerzustand gilt ohne Lizenz?
|
||||||
|
31. **SAM-05 Krit. 2:** Summe nur über Einträge mit Preis? Krit. 3: Was passiert, wenn der Nutzer nach „gekauft“ die Übernahme ablehnt – bleibt das Spiel als „gekauft“ markiert auf der Liste oder wird es entfernt?
|
||||||
|
32. **SAM-06 Krit. 2:** Wenn das Spiel in der Sammlung schon eine Notiz hat (Krit. 3), was passiert mit der Listen-Notiz?
|
||||||
|
33. **SAM-07 Krit. 1:** Darf es nur eine BGG-Verknüpfung je Konto geben (Modell: ja)? Darf derselbe BGG-Name von mehreren Shuffle-Konten verknüpft werden?
|
||||||
|
34. **SAM-08 Krit. 2:** Welche BGG-Status zählen (owned, want to buy, want to play, wishlist mit Priorität 1–5, preordered)? Wie wird die BGG-Wunschlistenpriorität auf hoch/mittel/niedrig abgebildet? Was geschieht, wenn ein Spiel bei BGG zugleich besessen und gewünscht ist? Werden Erweiterungen importiert?
|
||||||
|
35. **SAM-09 Krit. 1 und 6:** Was zählt als „in Shuffle selbst hinzugefügt“ – auch Spiele, die importiert und danach manuell geändert wurden? Ist die Hervorhebung (Krit. 6) dauerhaft in der Sammlung oder nur im Abgleichsdialog?
|
||||||
|
36. **PAR-01:** Datum mit oder ohne Uhrzeit (Modell: Zeitstempel)? Sind private Spiele (KAT-04) und Spiele von der Wunschliste wählbar? Was gilt bei widersprüchlichen Änderungen, wenn eine Partie offline auf zwei Geräten bearbeitet wurde (PAR-05 Krit. 4)? Werden nicht synchronisierte Partien schon in Verlauf und Statistik gezählt? Funktionieren Gastvorschläge (PAR-02) und Wertungsbögen (PAR-04) offline? Bei Web: Gilt Offline-Erfassung auch im Browser (F7 vs. F3)?
|
||||||
|
37. **PAR-02 Krit. 1:** Wenn ich mich als Mitspieler entferne – zählt die Partie in meiner Statistik (Anzahl, Spielzeit, Siegquote)? Krit. 4: Ist der Namensvergleich unabhängig von Groß-/Kleinschreibung, und darf ein Gast so heißen wie ich? Kann ich Gäste aus der Gästeliste löschen, und was passiert dann mit bisherigen Partien? Gibt es eine Längenbegrenzung für Gastnamen?
|
||||||
|
38. **PAR-03:** Zählt ein kooperativer Sieg in der Siegquote (PAR-07 Krit. 2 spricht nur von Platz 1)? Bei Teams: Punkte je Team oder je Person mit Summe? Ist bei niedrigster Punktzahl gewinnt (z. B. Golf-artige Spiele) eine Umkehr der Platzierung nötig?
|
||||||
|
39. **PAR-04:** Mehrere Wertungsbögen je Spiel erlaubt? Darf man Kategorien löschen, und wie wird eine Partie mit gelöschter Kategorie angezeigt (Krit. 3)? Gibt es Minus-Kategorien?
|
||||||
|
40. **PAR-07:** Siegquote bei Partien ohne mich als Mitspieler (siehe 37)? Diagramm „Partien pro Monat“ – für welchen Zeitraum bei „gesamt“? Zählt die Spielzeit einer Partie voll, auch wenn ich nicht mitgespielt habe?
|
||||||
|
41. **PAR-08 Krit. 2:** Bestwert = meine höchste Punktzahl oder höchste Punktzahl aller Mitspieler in meinen Partien? Gilt „höchster Wert ist am besten“ immer? Krit. 4: Zählen Gäste zu den häufigsten Mitspielern (in R1 gibt es nur Gäste)?
|
||||||
|
|
||||||
|
### D. Querschnitt und fehlende Stories
|
||||||
|
|
||||||
|
42. **Startseite/Dashboard (F18):** Für R1 ist ein persönliches Dashboard entschieden (zuletzt gespielt, Wunschliste, nächste Termine), aber keine der 26 Stories deckt es ab. Eigene Story in R1 oder später?
|
||||||
|
43. **Einstellungen:** Sprachwechsel (QUE-05 Krit. 1), Abmelden, Privatsphäre-Hinweis (KTO-04), Konto löschen hängen an einem Einstellungsbereich, der keine eigene Story hat. Als Teil von KTO-04 schneiden oder eigene Story?
|
||||||
|
44. **Admin-Rolle:** Rollen und Rechte (QUE-07) und Admin-Bereich (QUE-08) sind nicht als R1-Story geschnitten, werden aber von KAT-04/KAT-05 vorausgesetzt.
|
||||||
|
45. **Benachrichtigungen:** E-Mails in R1 (Bestätigung, Reset, Export fertig, ggf. Meldungsergebnis) – reichen Systemmails, Sprache der Mails nach Profil-`locale`?
|
||||||
|
46. **Barrierefreiheit:** Wie werden Diagramme (PAR-07 Krit. 5) für Screenreader zugänglich gemacht (z. B. Tabelle als Alternative)? Fachlich zu bestätigen.
|
||||||
|
47. **Jugendschutz:** Reicht für R1 die Selbstbestätigung „mindestens 16“ ohne weitere Prüfung (Datenmodell sagt ja, F8 nennt eine rechtliche Prüfung vor dem Start)?
|
||||||
|
48. **Mehrsprachigkeit Katalog:** Katalogtexte haben eine Sprache je Spiel; wie wird z. B. eine englische Beschreibung in der deutschen Oberfläche gekennzeichnet? Genre/Mechanik/Kategorie sind zweisprachig (passt).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Abweichungen
|
||||||
|
|
||||||
|
- Es sind **genau 26 Stories**, wie im Quelldokument angegeben (KTO-01, -02, -04, -05; KAT-01 bis -05; SAM-01 bis -09; PAR-01 bis -08). Keine Abweichung in der Anzahl.
|
||||||
|
- Fünf Stories (KTO-01, KTO-05, KAT-05, SAM-08, PAR-01) sind XL und überschreiten die INVEST-Größe von 1–3 Tagen. Für alle fünf liegt ein Schnittvorschlag vor. Werden alle Schnitte übernommen, entstehen 34 statt 26 Issues (21 ungeteilte + 13 Teil-Stories); die Story-IDs bleiben mit Suffix a/b/c erhalten.
|
||||||
|
- 25 von 26 Stories hätten wegen offener Fragen das Label `needs-clarification`.
|
||||||
Loading…
Reference in a new issue