Shuffle/requirements/20-r1-akzeptanzkriterien.md
cschlaefke 317634dac5
Some checks are pending
CI / flutter (push) Waiting to run
CI / supabase (push) Waiting to run
CI / supabase-tests (push) Waiting to run
chore: initial project kit
2026-11-02 12:14:09 +01:00

26 KiB
Raw Blame History

Shuffle – R1 Akzeptanzkriterien

2026-11-02 · Chris

Akzeptanzkriterien für die 26 Stories von R1 im Format Gegeben/Wenn/Dann, abgeleitet aus dem Anforderungsdokument und den dort getroffenen Entscheidungen. Jedes Kriterium soll sich als Test prüfen lassen; Zahlenwerte sind meine Annahmen und änderbar.

Geltungsbereich und Annahmen

R1 umfasst 26 Stories aus vier Epics. Alles, was andere Nutzer sehen könnte, kommt erst mit späteren Releases; in R1 sind alle Daten privat.

Epic In R1 Nicht in R1
KTO Konto & Profil KTO-01, KTO-02, KTO-04, KTO-05 KTO-03 (R2), KTO-06 bis KTO-08 (R3), KTO-09 und KTO-10 (R4)
KAT Spielekatalog KAT-01 bis KAT-05 –
SAM Sammlung & Listen SAM-01 bis SAM-09 SAM-10 (zurückgestellt)
PAR Partien & Statistik PAR-01 bis PAR-08 PAR-09 (R2), PAR-10 (R3)

Annahmen, auf denen die Kriterien beruhen

  1. Lieblingsspiele und Genres gehören zum Profil in R1 (KTO-02), wie du es im Dokument ergänzt hast. KTO-06 beschränkt sich später auf die Anzeige im öffentlichen Profil.
  2. In R1 sieht niemand fremde Profile, Sammlungen oder Partien. Deshalb besteht KTO-04 in R1 nur aus dem Hinweis, dass alles privat ist.
  3. Gast-Mitspieler sind reine Namen ohne Konto (F11); Verknüpfung und Bestätigung folgen mit R2.
  4. Alle Funktionen laufen auf iOS, Android und im Web (F7); nur Partien lassen sich offline erfassen (F3).
  5. Die Oberfläche ist Deutsch und Englisch (F1), das Mindestalter ist 16 (F8).
  6. Der BGG-Import hängt an der Lizenz und wird zuletzt gebaut (S1, F9). Der Katalog ist BGG-unabhängig mit eigenen IDs (F2).
  7. Ein Spiel steht höchstens einmal in der Sammlung. Wunschliste heißt „habe ich gern“, Einkaufsliste „wird demnächst gekauft“.

Lesehilfe: Jede Story hat nummerierte Kriterien. Sie lassen sich als „KTO-01 Kriterium 3“ ansprechen und werden später zu Tests und zu Haken im Pull Request.

KTO – Konto & Profil

KTO-01 Registrieren, anmelden und Passwort zurücksetzen

  1. Gegeben ich habe kein Konto, wenn ich E-Mail-Adresse, Passwort und Anzeigenamen eingebe und bestätige, dass ich mindestens 16 Jahre alt bin, dann wird ein Konto angelegt und ich erhalte eine E-Mail zur Bestätigung.
  2. Gegeben ich bestätige das Mindestalter nicht, wenn ich mich registrieren will, dann wird die Registrierung abgelehnt und ich sehe den Grund.
  3. Gegeben das Passwort hat weniger als 10 Zeichen oder steht auf einer Liste häufiger Passwörter, wenn ich es eingebe, dann erklärt mir die App am Feld, was fehlt.
  4. Gegeben die E-Mail-Adresse ist schon registriert, wenn ich mich damit registriere, dann erfahre ich nicht, ob ein Konto existiert, und es entsteht kein zweites Konto.
  5. Gegeben ein bestätigtes Konto, wenn ich die richtigen Zugangsdaten eingebe, dann bin ich angemeldet und bleibe es auf diesem Gerät, bis ich mich abmelde.
  6. Gegeben ein unbestätigtes Konto, wenn ich mich anmelde, dann werde ich auf die ausstehende Bestätigung hingewiesen und kann die E-Mail erneut senden lassen.
  7. Gegeben falsche Zugangsdaten, wenn ich mich anmelde, dann sehe ich eine allgemeine Fehlermeldung, die nicht verrät, ob E-Mail oder Passwort falsch war; nach mehreren Fehlversuchen wird der Zugang zeitweise gebremst.
  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.
  9. Gegeben ich habe das Passwort zurückgesetzt, dann bin ich auf allen anderen Geräten abgemeldet.

KTO-02 Profil bearbeiten

  1. Gegeben ich bearbeite mein Profil, wenn der Anzeigename leer ist oder länger als 30 Zeichen, dann kann ich nicht speichern und sehe den Fehler am Feld.
  2. Gegeben ich wähle ein Bild als Avatar (JPG oder PNG, höchstens 5 MB), wenn ich speichere, dann wird es quadratisch zugeschnitten angezeigt; ein zu großes oder falsches Format wird mit Hinweis abgelehnt.
  3. Gegeben ich habe keinen Avatar, dann sehe ich einen Platzhalter mit meinen Initialen.
  4. Gegeben ich schreibe eine Kurzbeschreibung, wenn sie länger als 300 Zeichen ist, dann kann ich nicht speichern.
  5. Gegeben ich suche im Katalog, wenn ich bis zu 5 Spiele als Lieblingsspiele auswähle, dann werden sie in dieser Reihenfolge in meinem Profil gespeichert; ein sechstes wird abgelehnt.
  6. Gegeben ich wähle Genres aus einer festen Liste, dann werden sie im Profil gespeichert und lassen sich wieder entfernen.
  7. Gegeben ich habe gespeichert, wenn ich mich auf einem anderen Gerät anmelde, dann sehe ich dieselben Profilangaben.

KTO-04 Privatsphäre (in R1 nur der Hinweis)

  1. Gegeben ich öffne die Einstellungen, dann steht dort, dass Profil, Sammlung, Listen und Partien nur für mich sichtbar sind.
  2. Gegeben ein späterer Release führt neue Freigaben ein, dann sind neue Bereiche standardmäßig privat, bis ich sie freigebe.

KTO-05 Konto löschen und Daten exportieren

  1. Gegeben ich bin angemeldet, wenn ich „Konto löschen“ wähle, die Folgen bestätige und mein Passwort eingebe, dann bin ich sofort abgemeldet und mein Konto ist nicht mehr nutzbar.
  2. Gegeben ich habe mein Konto gelöscht, dann sind Profil, Sammlung, Listen, Partien und Gast-Namen innerhalb der in der Datenschutzerklärung genannten Frist endgültig gelöscht, auch aus den Sicherungen.
  3. Gegeben mein Konto ist gelöscht, wenn ich mich anmelden will, dann ist das nicht möglich; dieselbe E-Mail-Adresse kann ich neu registrieren.
  4. Gegeben ich fordere einen Datenexport an, wenn er fertig ist, dann erhalte ich eine Datei in einem maschinenlesbaren Format (JSON oder CSV) mit Profil, Sammlung, Listen und Partien.
  5. Gegeben der Export ist fertig, dann ist er nur über mein angemeldetes Konto abrufbar und läuft nach einer begrenzten Zeit ab.

KAT – Spielekatalog

KAT-01 Spiele suchen

  1. Gegeben der Katalog enthält Spiele, wenn ich einen Titel oder einen Teil davon eingebe, dann erhalte ich passende Treffer nach Relevanz sortiert, unabhängig von Groß- und Kleinschreibung und Sonderzeichen.
  2. Gegeben ein Spiel hat einen deutschen und einen englischen Titel, wenn ich nach einem von beiden suche, dann finde ich dasselbe Spiel.
  3. Gegeben ich suche nach einem Verlag, dann erhalte ich dessen Spiele.
  4. Gegeben eine Trefferliste, wenn ich nach Spielerzahl, Spieldauer oder Mindestalter filtere, dann enthält sie nur Spiele, die zu allen gewählten Filtern passen.
  5. Gegeben mehr Treffer als auf eine Seite passen, wenn ich bis zum Ende scrolle, dann werden weitere nachgeladen.
  6. Gegeben ich suche ohne Treffer, dann sehe ich einen Hinweis und die Möglichkeit, das Spiel zu melden (KAT-04).
  7. Gegeben eine normale Verbindung, dann erscheinen die ersten Treffer innerhalb von 2 Sekunden.
  8. Gegeben mehrere Filtereinstellungen wie Genre, Spieleranzahl, Spieldauer etc, mit denen ich neue Spiele entdecken kann

KAT-02 Spieldetailseite

  1. Gegeben ich öffne ein Spiel, dann sehe ich Titel, Cover, Erscheinungsjahr, Verlag, Spielerzahl, Spieldauer, Mindestalter, Genre, Mechanik, Kategorie und Beschreibung.
  2. Gegeben eine Angabe fehlt im Katalog, dann wird sie weggelassen statt als leere Zeile gezeigt.
  3. Gegeben das Spiel steht in meiner Sammlung, auf der Wunschliste oder der Einkaufsliste, dann sehe ich den Status und kann ihn von dort ändern.
  4. Gegeben ich habe das Spiel nirgends eingetragen, dann kann ich es mit einer Aktion zur Sammlung, Wunschliste oder Einkaufsliste hinzufügen.
  5. Gegeben Angaben stammen von BGG, dann zeigt die Seite „Powered by BGG“ mit Link, sobald die Lizenz das verlangt.
  6. Gegeben ich habe Partien zu diesem Spiel, dann sehe ich einen Einstieg zur Spielstatistik (PAR-08).

KAT-03 Erweiterungen und Editionen

  1. Gegeben ein Basisspiel hat Erweiterungen, wenn ich seine Detailseite öffne, dann sehe ich die Erweiterungen verlinkt; bei einer Erweiterung sehe ich das Basisspiel.
  2. Gegeben ein Spiel gibt es in mehreren Editionen oder Sprachfassungen, dann sind sie als Varianten desselben Spiels erkennbar.
  3. Gegeben ich füge ein Spiel mit Varianten zur Sammlung hinzu, dann kann ich die Edition wählen, die ich besitze.
  4. Gegeben ich besitze das Basisspiel und füge eine Erweiterung hinzu, dann wird sie in meiner Sammlung beim Basisspiel zugeordnet angezeigt.
  5. Gegeben ich besitze eine Erweiterung ohne Basisspiel, dann ist das erlaubt und wird nicht als Fehler behandelt.

KAT-04 Fehlendes Spiel melden

  1. Gegeben ich finde ein Spiel nicht, wenn ich Titel (Pflicht), Verlag, Erscheinungsjahr und optional einen Link angebe, dann wird die Meldung gespeichert und ich erhalte eine Bestätigung.
  2. Gegeben es gibt schon einen sehr ähnlichen Katalogeintrag, wenn ich melden will, dann sehe ich ihn zuerst und muss ausdrücklich bestätigen, dass mein Spiel ein anderes ist.
  3. Gegeben ich habe ein Spiel gemeldet, dann kann ich es als vorläufigen Eintrag in meine Sammlung oder Listen aufnehmen; der Eintrag ist nur für mich sichtbar.
  4. Gegeben die Meldung wurde freigegeben, dann ersetzt der Katalogeintrag meinen vorläufigen Eintrag, ohne dass meine eigenen Angaben verloren gehen.
  5. Gegeben die Meldung wurde abgelehnt oder mit einem anderen Eintrag zusammengeführt, dann erfahre ich das und mein vorläufiger Eintrag verweist auf den richtigen Eintrag.

KAT-05 Katalogdaten laden und aktuell halten

  1. Gegeben eine zugelassene Quelle, wenn der Import läuft, dann werden neue Spiele angelegt und geänderte aktualisiert, ohne manuell gepflegte Felder zu überschreiben.
  2. Gegeben ein Katalogeintrag, dann hat er eine eigene Shuffle-ID und optional die Kennung der Quelle (zum Beispiel BGG) samt Quellenangabe.
  3. Gegeben die Quelle ist nicht erreichbar oder liefert fehlerhafte Daten, dann bleibt der Katalog unverändert, der Fehler wird protokolliert und die App funktioniert normal weiter.
  4. Gegeben ein Admin bearbeitet, blendet aus oder führt Einträge zusammen, dann bleiben diese Änderungen beim nächsten Import erhalten.
  5. Gegeben Meldungen aus KAT-04, dann kann ein Admin sie freigeben, mit einem Eintrag zusammenführen oder ablehnen.
  6. Gegeben Cover und Texte einer Quelle, dann werden sie nur angezeigt, wenn deren Nutzungsbedingungen es erlauben; die Erlaubnis ist je Quelle vermerkt.

SAM – Sammlung & Listen

SAM-01 Spiel zur Sammlung hinzufügen

  1. Gegeben ich sehe ein Spiel in der Suche oder auf der Detailseite, wenn ich „Zur Sammlung“ wähle, dann erscheint es in meiner Sammlung mit dem Datum des Hinzufügens.
  2. Gegeben das Spiel ist schon in meiner Sammlung, dann entsteht kein zweiter Eintrag, sondern ich sehe den vorhandenen.
  3. Gegeben ich bin offline, wenn ich ein Spiel hinzufügen will, dann sehe ich einen Hinweis, dass dies eine Verbindung braucht.
  4. Gegeben ich suche ein Spiel, dann gelange ich in höchstens zwei Schritten vom Suchergebnis zum Eintrag in der Sammlung.

SAM-02 Eigene Angaben pro Spiel

  1. Gegeben ein Spiel in meiner Sammlung, wenn ich es bearbeite, dann kann ich Zustand (aus fester Liste), Kaufdatum, Kaufpreis in Euro, Notiz (bis 1000 Zeichen), Standort (Freitext) und Tags erfassen.
  2. Gegeben ich lasse Felder leer, dann ist das erlaubt; alle Angaben sind optional.
  3. Gegeben das Kaufdatum liegt in der Zukunft oder der Preis ist negativ, dann kann ich nicht speichern und sehe den Fehler am Feld.
  4. Gegeben ich vergebe Tags, dann schlägt die App meine bisherigen Tags vor, damit sich Schreibweisen nicht verdoppeln.
  5. Gegeben ich ändere Angaben, dann bleiben sie beim BGG-Import erhalten (SAM-09).

SAM-03 Sammlung durchsuchen, filtern und sortieren

  1. Gegeben meine Sammlung, wenn ich einen Titel eingebe, dann zeigt die Liste nur passende Spiele.
  2. Gegeben ich filtere nach Spielerzahl, Spieldauer, Tags, Standort oder Zustand, dann zeigt die Liste nur Spiele, die zu allen Filtern passen, und ich sehe die Zahl der Treffer.
  3. Gegeben ich sortiere nach Titel, Hinzufügedatum, Erscheinungsjahr oder Spieldauer, dann ändert sich die Reihenfolge entsprechend.
  4. Gegeben meine Sammlung hat 1000 Spiele, dann bleibt Scrollen, Suchen und Filtern flüssig.
  5. Gegeben meine Sammlung ist leer, dann sehe ich einen Hinweis mit dem Weg zum Hinzufügen und, sofern verfügbar, zum BGG-Import.

SAM-04 Wunschliste mit Priorität

  1. Gegeben ein Spiel, wenn ich es auf die Wunschliste setze, dann kann ich eine Priorität (hoch, mittel, niedrig) und eine Notiz angeben.
  2. Gegeben das Spiel ist schon in meiner Sammlung, dann sehe ich einen Hinweis, kann es aber trotzdem auf die Wunschliste setzen, etwa für eine andere Edition.
  3. Gegeben meine Wunschliste, dann kann ich nach Priorität oder Datum sortieren.
  4. Gegeben ich entferne ein Spiel von der Wunschliste, dann kann ich das für einige Sekunden rückgängig machen.

SAM-05 Einkaufsliste führen

  1. Gegeben ein Spiel, wenn ich es auf die Einkaufsliste setze, dann kann ich Händler (Freitext), geplanten Preis in Euro und einen Link angeben.
  2. Gegeben die Einkaufsliste, dann sehe ich die Summe der geplanten Preise.
  3. Gegeben ich hake ein Spiel als gekauft ab, dann fragt mich die App, ob ich es in die Sammlung übernehmen will (SAM-06).
  4. Gegeben ich entferne ein Spiel von der Einkaufsliste, dann kann ich das für einige Sekunden rückgängig machen.

SAM-06 In die Sammlung übernehmen

  1. Gegeben ein Spiel auf der Wunsch- oder Einkaufsliste, wenn ich es übernehme, dann steht es in der Sammlung und ist von der Liste verschwunden.
  2. Gegeben das Spiel hatte Notiz oder geplanten Preis, dann werden Notiz und Preis übernommen, der Preis als Kaufpreis; als Kaufdatum steht heute und ist änderbar.
  3. Gegeben das Spiel ist schon in der Sammlung, dann entsteht kein Duplikat und ich sehe einen Hinweis.
  4. Gegeben ich habe übernommen, dann kann ich das für einige Sekunden rückgängig machen.

SAM-07 BGG-Konto verknüpfen (abhängig von der Lizenz)

  1. Gegeben ich gebe meinen BGG-Nutzernamen ein, wenn BGG ihn kennt, dann ist er mit meinem Konto verknüpft und im Profil gespeichert, in R1 nicht öffentlich.
  2. Gegeben BGG kennt den Namen nicht, dann sehe ich eine verständliche Fehlermeldung.
  3. Gegeben die BGG-Sammlung lässt sich nicht abrufen, dann erklärt mir die App, was ich auf der BGG-Seite prüfen kann.
  4. Gegeben ich löse die Verknüpfung, dann wird der Name entfernt und bereits importierte Spiele bleiben erhalten.
  5. Gegeben die Verknüpfung, dann fragt und speichert die App niemals mein BGG-Passwort.

SAM-08 Sammlung und Wunschliste aus BGG importieren

  1. Gegeben ein verknüpftes BGG-Konto, wenn ich den Import starte, dann sehe ich den Fortschritt und danach eine Zusammenfassung: übernommen, bereits vorhanden, nicht gefunden.
  2. Gegeben der Import, dann werden Spiele, die ich bei BGG besitze, in meine Sammlung übernommen und Spiele meiner BGG-Wunschliste auf meine Wunschliste.
  3. Gegeben ein BGG-Spiel ist im Katalog über seine BGG-Kennung bekannt, dann wird es diesem Eintrag zugeordnet.
  4. Gegeben ein BGG-Spiel fehlt im Katalog, dann steht es in der Liste der nicht gefundenen Spiele, und ich kann es melden (KAT-04).
  5. Gegeben ich breche den Import ab oder er schlägt fehl, dann bleibt mein Bestand in einem konsistenten Zustand: nichts ist halb übernommen.
  6. Gegeben BGG antwortet mit einem Fehler oder einer Begrenzung, dann sehe ich eine verständliche Meldung und kann es später erneut versuchen.
  7. Gegeben der Importdialog, dann zeigt er „Powered by BGG“ mit Link.

SAM-09 BGG-Import wiederholen und abgleichen

  1. Gegeben der Import lief schon einmal, wenn ich ihn erneut starte, dann erkennt die App nur die Änderungen: neue Spiele, bei BGG entfernte Spiele und Wechsel zwischen Sammlung und Wunschliste.
  2. Gegeben Änderungen wurden erkannt, dann sehe ich sie als Liste und übernehme sie erst nach meiner Bestätigung.
  3. Gegeben der Abgleich, dann werden meine eigenen Angaben (SAM-02) nie überschrieben.
  4. Gegeben ich habe ein Spiel in Shuffle selbst hinzugefügt, dann wird es nicht entfernt, nur weil es bei BGG fehlt.
  5. Gegeben ein Spiel wurde bei BGG entfernt, dann wird es in Shuffle nur nach meiner Bestätigung entfernt.
  6. Gegeben in Shuffle sind Spiele aufgeführt, die in BGG fehlen, dann werden diese Spiele hervorgehoben, damit der User diese ggf. in BGG nachpflegen kann

PAR – Partien & Statistik

PAR-01 Partie erfassen

  1. Gegeben ich erfasse eine Partie, wenn ich ein Spiel und ein Datum angebe (Standard: heute), dann wird sie gespeichert und erscheint im Verlauf; Dauer in Minuten, Ort und Notiz sind optional.
  2. Gegeben das Datum liegt in der Zukunft, dann kann ich nicht speichern.
  3. Gegeben ich wähle das Spiel, dann werden Spiele aus meiner Sammlung zuerst angeboten, weitere über die Katalogsuche.
  4. Gegeben ich bin offline, dann wird die Partie lokal gespeichert, ist als „noch nicht synchronisiert“ gekennzeichnet und wird bei Verbindung automatisch übertragen.
  5. Gegeben eine nicht synchronisierte Partie, wenn ich die App schließe oder das Gerät neu starte, dann geht sie nicht verloren.
  6. Gegeben ich bin offline, dann kann ich Spiele aus meiner Sammlung wählen; die Katalogsuche braucht eine Verbindung und zeigt das als Hinweis an.
  7. Gegeben die Übertragung einer Offline-Partie schlägt wiederholt fehl, dann bleibt sie erhalten, und ich sehe, dass sie noch aussteht.

PAR-02 Mitspieler hinzufügen

  1. Gegeben ich erfasse eine Partie, dann bin ich standardmäßig als Mitspieler eingetragen und kann mich entfernen.
  2. Gegeben ich füge einen Gast mit Namen hinzu, dann braucht er kein Konto; der Name ist nur für mich sichtbar.
  3. Gegeben ich habe einen Gast schon einmal eingetragen, dann wird er mir bei der nächsten Partie vorgeschlagen.
  4. Gegeben ein Mitspielername kommt in der Partie schon vor, dann kann ich ihn nicht doppelt hinzufügen und sehe einen Hinweis.
  5. Gegeben eine Partie, dann kann sie bis zu 20 Mitspieler haben und mindestens einen.
  6. Gegeben ich bearbeite den Namen eines Gastes in der Gästeliste, dann ändert er sich in meinen bisherigen Partien mit.

PAR-03 Ergebnis erfassen

  1. Gegeben eine Partie, wenn ich je Mitspieler eine Punktzahl eintrage (ganze oder Dezimalzahl, auch negativ), dann wird die Platzierung automatisch daraus abgeleitet.
  2. Gegeben zwei Mitspieler haben gleich viele Punkte, dann teilen sie sich den Platz.
  3. Gegeben ein Spiel ohne Punkte, wenn ich Platzierungen oder nur den Sieger angebe, dann wird das Ergebnis so gespeichert.
  4. Gegeben ein kooperatives Spiel, wenn ich es als kooperativ markiere, dann erfasse ich nur „gewonnen“ oder „verloren“ für alle gemeinsam.
  5. Gegeben ein Teamspiel, wenn ich Mitspieler Teams zuordne, dann gilt das Ergebnis je Team, und in der Statistik zählt ein Sieg für alle Mitglieder des Teams.
  6. Gegeben ich lasse das Ergebnis leer, dann wird die Partie ohne Ergebnis gespeichert; sie zählt in der Statistik als gespielt, aber nicht für Siegquote und Bestwerte.
  7. Gegeben ich überschreibe die automatisch berechnete Platzierung, dann gilt meine Eingabe.

PAR-04 Wertungsbogen je Spiel

  1. Gegeben ich lege für ein Spiel Wertungskategorien an (zum Beispiel Siedlungen, Straßen), dann kann ich je Mitspieler und Kategorie Punkte eintragen, und die Summe wird automatisch gebildet.
  2. Gegeben ich habe Kategorien einmal angelegt, wenn ich dieses Spiel wieder erfasse, dann werden sie mir vorgeschlagen, in der gespeicherten Reihenfolge.
  3. Gegeben ich ändere die Kategorien, dann behalten bereits erfasste Partien ihre Werte.
  4. Gegeben ich will keinen Wertungsbogen, dann kann ich die Gesamtpunktzahl direkt eintragen (PAR-03).
  5. Gegeben Wertungsbögen, dann sind sie in R1 nur für mich sichtbar.

PAR-05 Partie bearbeiten und löschen

  1. Gegeben eine gespeicherte Partie, wenn ich sie öffne, dann kann ich alle Angaben ändern.
  2. Gegeben ich lösche eine Partie, wenn ich die Rückfrage bestätige, dann ist sie weg und zählt nicht mehr in Verlauf und Statistik.
  3. Gegeben ich ändere oder lösche eine Partie, dann stimmt die Statistik sofort danach.
  4. Gegeben eine noch nicht synchronisierte Partie, dann kann ich sie bearbeiten und löschen wie jede andere.

PAR-06 Partienverlauf

  1. Gegeben meine Partien, dann sehe ich sie als Liste, neueste zuerst, mit Spiel, Datum, Mitspielern und Sieger.
  2. Gegeben ich filtere nach Spiel, Zeitraum, Mitspieler oder Ort, dann zeigt die Liste nur passende Partien.
  3. Gegeben ich tippe eine Partie an, dann sehe ich alle Details inklusive Ergebnis und Wertungsbogen.
  4. Gegeben ich habe noch keine Partie erfasst, dann sehe ich einen Hinweis mit dem Weg zur ersten Partie.
  5. Gegeben sehr viele Partien, dann werden weitere beim Scrollen nachgeladen.

PAR-07 Persönliche Statistik

  1. Gegeben ich wähle einen Zeitraum (gesamt, Jahr, Monat oder frei), dann sehe ich Anzahl der Partien, Anzahl verschiedener gespielter Spiele, Gesamtspielzeit in Stunden und Siegquote.
  2. Gegeben die Siegquote, dann ist sie der Anteil der Partien mit Platz 1 an allen Partien mit Ergebnis; ein geteilter erster Platz zählt als Sieg.
  3. Gegeben Partien ohne Dauer, dann zählen sie nicht in die Gesamtspielzeit, und ich sehe, wie viele es sind.
  4. Gegeben ich sehe die meistgespielten Spiele, dann gibt es zwei Ranglisten (Top 10): nach Anzahl der Partien und nach Spielzeit.
  5. Gegeben der Verlauf, dann sehe ich die Partien pro Monat als Diagramm.
  6. Gegeben die Statistik, dann stimmen ihre Zahlen mit dem Partienverlauf (PAR-06) im selben Zeitraum überein.
  7. Gegeben ich habe keine Partien im Zeitraum, dann sehe ich einen Leerzustand statt Nullen und leerer Diagramme.

PAR-08 Statistik je Spiel

  1. Gegeben ein Spiel mit Partien, dann sehe ich Anzahl der Partien, durchschnittliche Dauer, Gesamtdauer und Siegquote für dieses Spiel.
  2. Gegeben ein Spiel mit Punkten, dann sehe ich den Bestwert mit Datum der Partie.
  3. Gegeben ein Spiel ohne Punkte, dann wird kein Bestwert angezeigt.
  4. Gegeben das Spiel, dann sehe ich die fünf häufigsten Mitspieler.
  5. Gegeben die Detailseite eines Spiels (KAT-02), dann komme ich von dort zur Statistik des Spiels.

Querschnitt für R1

Diese Kriterien gelten für jede Story in R1 und werden bei jedem Pull Request mitgeprüft.

Datenschutz (QUE-04)

  1. Gegeben ich registriere mich, dann sehe ich vorher Datenschutzerklärung und Nutzungsbedingungen und stimme ihnen ausdrücklich zu.
  2. Gegeben optionale Dienste wie Nutzungsanalyse, dann sind sie standardmäßig aus und werden erst nach meiner Einwilligung aktiv.
  3. Gegeben die Datenschutzerklärung, dann nennt sie Zwecke, Speicherdauer, Empfänger und die Löschfrist aus KTO-05.

Sicherheit der Daten

  1. Gegeben zwei Nutzer A und B, wenn A über die App oder direkt über die Schnittstelle auf Profil, Sammlung, Listen, Partien oder Gäste von B zugreifen will, dann wird der Zugriff verweigert.
  2. Gegeben ich bin nicht angemeldet, dann kann ich keine privaten Daten lesen oder ändern; der Katalog ist auch ohne Anmeldung lesbar, aber nie veränderbar (Entscheidung O6).
  3. Gegeben jede neue Tabelle mit Nutzerdaten, dann hat sie Zugriffsregeln und mindestens einen automatischen Test, der fremden Zugriff prüft.

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 ändern.
  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.

Barrierefreiheit (QUE-06)

  1. Gegeben ein Screenreader, dann haben alle bedienbaren Elemente und Bilder eine sinnvolle Beschriftung.
  2. Gegeben Texte und Bedienelemente, dann erreichen sie mindestens den Kontrast nach WCAG AA und Touch-Ziele sind mindestens 48 dp groß.
  3. Gegeben ich vergrößere die Schrift auf 200 Prozent, dann bleibt alles les- und bedienbar, ohne dass Text abgeschnitten wird.
  4. Gegeben das Web, dann lässt sich jede Funktion per Tastatur bedienen und der Fokus ist sichtbar.

Zustände, Fehler und Netz

  1. Gegeben jede Liste und jeder Bildschirm mit Daten, dann hat er einen Ladezustand, einen Leerzustand, einen Fehlerzustand mit „Erneut versuchen“ und den Normalzustand.
  2. Gegeben ich bin offline, wenn ich eine Funktion nutze, die eine Verbindung braucht, dann sehe ich einen verständlichen Hinweis statt eines technischen Fehlers.
  3. Gegeben ein Fehler im Hintergrund, dann verliere ich keine Eingaben, die ich schon gemacht hatte.

Plattformen

  1. Gegeben jede R1-Story, dann funktioniert sie auf iOS, Android und im Web mit denselben Kriterien; Abweichungen werden im Pull Request begründet.
  2. Gegeben ein großer Bildschirm im Web oder auf einem Tablet, dann nutzt das Layout die Breite sinnvoll, statt eine gestreckte Handy-Ansicht zu zeigen.

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.

Nr Frage Entscheidung Betrifft
O1 Sollen Apple- oder Google-Login schon in R1 dabei sein? Nur E-Mail und Passwort in R1; Apple verlangt in der Regel „Sign in with Apple“, sobald andere Social-Logins angeboten werden KTO-01
O2 Muss der Anzeigename eindeutig sein? Nein; für Einladungen in R2 genügt ein Link KTO-02
O3 Reicht in R1 der Hinweis „alles privat“ statt echter Privatsphäre-Einstellungen? Ja, echte Einstellungen kommen mit R2 KTO-04
O4 Editionen: Varianten desselben Spiels oder eigene Katalogeinträge? Varianten eines Spiels; das wirkt stark auf das Datenmodell KAT-03
O5 Vorläufige private Einträge für gemeldete Spiele? Ja, sonst blockiert ein fehlendes Spiel die Erfassung KAT-04
O6 Darf der Katalog ohne Anmeldung gelesen werden? Ja, nur lesend; Anmeldung erst zum Eintragen Querschnitt Sicherheit, Web
O7 Offline Spiele wählen: nur aus der Sammlung oder per kleiner Offline-Kopie des Katalogs? Nur aus der Sammlung in R1 PAR-01
O8 Mehrfachbesitz, etwa zwei Exemplare desselben Spiels? Nein in R1, ein Eintrag je Spiel SAM-01
O9 Wertungsbögen: privat je Nutzer oder als Vorlagen im Katalog? Privat in R1, gemeinsame Vorlagen später PAR-04
O10 Passen die Zahlenwerte: Passwort ab 10 Zeichen, Anzeigename 30, Kurzbeschreibung 300, 5 Lieblingsspiele, 20 Mitspieler, Notiz 1000 Zeichen, Avatar 5 MB? So übernehmen KTO, SAM, PAR