26 KiB
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
- 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.
- In R1 sieht niemand fremde Profile, Sammlungen oder Partien. Deshalb besteht KTO-04 in R1 nur aus dem Hinweis, dass alles privat ist.
- Gast-Mitspieler sind reine Namen ohne Konto (F11); Verknüpfung und Bestätigung folgen mit R2.
- Alle Funktionen laufen auf iOS, Android und im Web (F7); nur Partien lassen sich offline erfassen (F3).
- Die Oberfläche ist Deutsch und Englisch (F1), das Mindestalter ist 16 (F8).
- Der BGG-Import hängt an der Lizenz und wird zuletzt gebaut (S1, F9). Der Katalog ist BGG-unabhängig mit eigenen IDs (F2).
- 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
- 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.
- Gegeben ich bestätige das Mindestalter nicht, wenn ich mich registrieren will, dann wird die Registrierung abgelehnt und ich sehe den Grund.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Gegeben ich habe das Passwort zurückgesetzt, dann bin ich auf allen anderen Geräten abgemeldet.
KTO-02 Profil bearbeiten
- 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.
- 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.
- Gegeben ich habe keinen Avatar, dann sehe ich einen Platzhalter mit meinen Initialen.
- Gegeben ich schreibe eine Kurzbeschreibung, wenn sie länger als 300 Zeichen ist, dann kann ich nicht speichern.
- 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.
- Gegeben ich wähle Genres aus einer festen Liste, dann werden sie im Profil gespeichert und lassen sich wieder entfernen.
- 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)
- Gegeben ich öffne die Einstellungen, dann steht dort, dass Profil, Sammlung, Listen und Partien nur für mich sichtbar sind.
- 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
- 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.
- 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.
- 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.
- 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.
- 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
- 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.
- Gegeben ein Spiel hat einen deutschen und einen englischen Titel, wenn ich nach einem von beiden suche, dann finde ich dasselbe Spiel.
- Gegeben ich suche nach einem Verlag, dann erhalte ich dessen Spiele.
- Gegeben eine Trefferliste, wenn ich nach Spielerzahl, Spieldauer oder Mindestalter filtere, dann enthält sie nur Spiele, die zu allen gewählten Filtern passen.
- Gegeben mehr Treffer als auf eine Seite passen, wenn ich bis zum Ende scrolle, dann werden weitere nachgeladen.
- Gegeben ich suche ohne Treffer, dann sehe ich einen Hinweis und die Möglichkeit, das Spiel zu melden (KAT-04).
- Gegeben eine normale Verbindung, dann erscheinen die ersten Treffer innerhalb von 2 Sekunden.
- Gegeben mehrere Filtereinstellungen wie Genre, Spieleranzahl, Spieldauer etc, mit denen ich neue Spiele entdecken kann
KAT-02 Spieldetailseite
- Gegeben ich öffne ein Spiel, dann sehe ich Titel, Cover, Erscheinungsjahr, Verlag, Spielerzahl, Spieldauer, Mindestalter, Genre, Mechanik, Kategorie und Beschreibung.
- Gegeben eine Angabe fehlt im Katalog, dann wird sie weggelassen statt als leere Zeile gezeigt.
- Gegeben das Spiel steht in meiner Sammlung, auf der Wunschliste oder der Einkaufsliste, dann sehe ich den Status und kann ihn von dort ändern.
- Gegeben ich habe das Spiel nirgends eingetragen, dann kann ich es mit einer Aktion zur Sammlung, Wunschliste oder Einkaufsliste hinzufügen.
- Gegeben Angaben stammen von BGG, dann zeigt die Seite „Powered by BGG“ mit Link, sobald die Lizenz das verlangt.
- Gegeben ich habe Partien zu diesem Spiel, dann sehe ich einen Einstieg zur Spielstatistik (PAR-08).
KAT-03 Erweiterungen und Editionen
- Gegeben ein Basisspiel hat Erweiterungen, wenn ich seine Detailseite öffne, dann sehe ich die Erweiterungen verlinkt; bei einer Erweiterung sehe ich das Basisspiel.
- Gegeben ein Spiel gibt es in mehreren Editionen oder Sprachfassungen, dann sind sie als Varianten desselben Spiels erkennbar.
- Gegeben ich füge ein Spiel mit Varianten zur Sammlung hinzu, dann kann ich die Edition wählen, die ich besitze.
- Gegeben ich besitze das Basisspiel und füge eine Erweiterung hinzu, dann wird sie in meiner Sammlung beim Basisspiel zugeordnet angezeigt.
- Gegeben ich besitze eine Erweiterung ohne Basisspiel, dann ist das erlaubt und wird nicht als Fehler behandelt.
KAT-04 Fehlendes Spiel melden
- 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.
- 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.
- 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.
- Gegeben die Meldung wurde freigegeben, dann ersetzt der Katalogeintrag meinen vorläufigen Eintrag, ohne dass meine eigenen Angaben verloren gehen.
- 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
- Gegeben eine zugelassene Quelle, wenn der Import läuft, dann werden neue Spiele angelegt und geänderte aktualisiert, ohne manuell gepflegte Felder zu überschreiben.
- Gegeben ein Katalogeintrag, dann hat er eine eigene Shuffle-ID und optional die Kennung der Quelle (zum Beispiel BGG) samt Quellenangabe.
- 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.
- Gegeben ein Admin bearbeitet, blendet aus oder führt Einträge zusammen, dann bleiben diese Änderungen beim nächsten Import erhalten.
- Gegeben Meldungen aus KAT-04, dann kann ein Admin sie freigeben, mit einem Eintrag zusammenführen oder ablehnen.
- 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
- 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.
- Gegeben das Spiel ist schon in meiner Sammlung, dann entsteht kein zweiter Eintrag, sondern ich sehe den vorhandenen.
- Gegeben ich bin offline, wenn ich ein Spiel hinzufügen will, dann sehe ich einen Hinweis, dass dies eine Verbindung braucht.
- 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
- 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.
- Gegeben ich lasse Felder leer, dann ist das erlaubt; alle Angaben sind optional.
- Gegeben das Kaufdatum liegt in der Zukunft oder der Preis ist negativ, dann kann ich nicht speichern und sehe den Fehler am Feld.
- Gegeben ich vergebe Tags, dann schlägt die App meine bisherigen Tags vor, damit sich Schreibweisen nicht verdoppeln.
- Gegeben ich ändere Angaben, dann bleiben sie beim BGG-Import erhalten (SAM-09).
SAM-03 Sammlung durchsuchen, filtern und sortieren
- Gegeben meine Sammlung, wenn ich einen Titel eingebe, dann zeigt die Liste nur passende Spiele.
- 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.
- Gegeben ich sortiere nach Titel, Hinzufügedatum, Erscheinungsjahr oder Spieldauer, dann ändert sich die Reihenfolge entsprechend.
- Gegeben meine Sammlung hat 1000 Spiele, dann bleibt Scrollen, Suchen und Filtern flüssig.
- 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
- Gegeben ein Spiel, wenn ich es auf die Wunschliste setze, dann kann ich eine Priorität (hoch, mittel, niedrig) und eine Notiz angeben.
- 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.
- Gegeben meine Wunschliste, dann kann ich nach Priorität oder Datum sortieren.
- 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
- Gegeben ein Spiel, wenn ich es auf die Einkaufsliste setze, dann kann ich Händler (Freitext), geplanten Preis in Euro und einen Link angeben.
- Gegeben die Einkaufsliste, dann sehe ich die Summe der geplanten Preise.
- Gegeben ich hake ein Spiel als gekauft ab, dann fragt mich die App, ob ich es in die Sammlung übernehmen will (SAM-06).
- 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
- Gegeben ein Spiel auf der Wunsch- oder Einkaufsliste, wenn ich es übernehme, dann steht es in der Sammlung und ist von der Liste verschwunden.
- 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.
- Gegeben das Spiel ist schon in der Sammlung, dann entsteht kein Duplikat und ich sehe einen Hinweis.
- 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)
- 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.
- Gegeben BGG kennt den Namen nicht, dann sehe ich eine verständliche Fehlermeldung.
- Gegeben die BGG-Sammlung lässt sich nicht abrufen, dann erklärt mir die App, was ich auf der BGG-Seite prüfen kann.
- Gegeben ich löse die Verknüpfung, dann wird der Name entfernt und bereits importierte Spiele bleiben erhalten.
- Gegeben die Verknüpfung, dann fragt und speichert die App niemals mein BGG-Passwort.
SAM-08 Sammlung und Wunschliste aus BGG importieren
- 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.
- Gegeben der Import, dann werden Spiele, die ich bei BGG besitze, in meine Sammlung übernommen und Spiele meiner BGG-Wunschliste auf meine Wunschliste.
- Gegeben ein BGG-Spiel ist im Katalog über seine BGG-Kennung bekannt, dann wird es diesem Eintrag zugeordnet.
- Gegeben ein BGG-Spiel fehlt im Katalog, dann steht es in der Liste der nicht gefundenen Spiele, und ich kann es melden (KAT-04).
- Gegeben ich breche den Import ab oder er schlägt fehl, dann bleibt mein Bestand in einem konsistenten Zustand: nichts ist halb übernommen.
- Gegeben BGG antwortet mit einem Fehler oder einer Begrenzung, dann sehe ich eine verständliche Meldung und kann es später erneut versuchen.
- Gegeben der Importdialog, dann zeigt er „Powered by BGG“ mit Link.
SAM-09 BGG-Import wiederholen und abgleichen
- 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.
- Gegeben Änderungen wurden erkannt, dann sehe ich sie als Liste und übernehme sie erst nach meiner Bestätigung.
- Gegeben der Abgleich, dann werden meine eigenen Angaben (SAM-02) nie überschrieben.
- Gegeben ich habe ein Spiel in Shuffle selbst hinzugefügt, dann wird es nicht entfernt, nur weil es bei BGG fehlt.
- Gegeben ein Spiel wurde bei BGG entfernt, dann wird es in Shuffle nur nach meiner Bestätigung entfernt.
- 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
- 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.
- Gegeben das Datum liegt in der Zukunft, dann kann ich nicht speichern.
- Gegeben ich wähle das Spiel, dann werden Spiele aus meiner Sammlung zuerst angeboten, weitere über die Katalogsuche.
- Gegeben ich bin offline, dann wird die Partie lokal gespeichert, ist als „noch nicht synchronisiert“ gekennzeichnet und wird bei Verbindung automatisch übertragen.
- Gegeben eine nicht synchronisierte Partie, wenn ich die App schließe oder das Gerät neu starte, dann geht sie nicht verloren.
- Gegeben ich bin offline, dann kann ich Spiele aus meiner Sammlung wählen; die Katalogsuche braucht eine Verbindung und zeigt das als Hinweis an.
- 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
- Gegeben ich erfasse eine Partie, dann bin ich standardmäßig als Mitspieler eingetragen und kann mich entfernen.
- Gegeben ich füge einen Gast mit Namen hinzu, dann braucht er kein Konto; der Name ist nur für mich sichtbar.
- Gegeben ich habe einen Gast schon einmal eingetragen, dann wird er mir bei der nächsten Partie vorgeschlagen.
- Gegeben ein Mitspielername kommt in der Partie schon vor, dann kann ich ihn nicht doppelt hinzufügen und sehe einen Hinweis.
- Gegeben eine Partie, dann kann sie bis zu 20 Mitspieler haben und mindestens einen.
- Gegeben ich bearbeite den Namen eines Gastes in der Gästeliste, dann ändert er sich in meinen bisherigen Partien mit.
PAR-03 Ergebnis erfassen
- Gegeben eine Partie, wenn ich je Mitspieler eine Punktzahl eintrage (ganze oder Dezimalzahl, auch negativ), dann wird die Platzierung automatisch daraus abgeleitet.
- Gegeben zwei Mitspieler haben gleich viele Punkte, dann teilen sie sich den Platz.
- Gegeben ein Spiel ohne Punkte, wenn ich Platzierungen oder nur den Sieger angebe, dann wird das Ergebnis so gespeichert.
- Gegeben ein kooperatives Spiel, wenn ich es als kooperativ markiere, dann erfasse ich nur „gewonnen“ oder „verloren“ für alle gemeinsam.
- 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.
- 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.
- Gegeben ich überschreibe die automatisch berechnete Platzierung, dann gilt meine Eingabe.
PAR-04 Wertungsbogen je Spiel
- 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.
- Gegeben ich habe Kategorien einmal angelegt, wenn ich dieses Spiel wieder erfasse, dann werden sie mir vorgeschlagen, in der gespeicherten Reihenfolge.
- Gegeben ich ändere die Kategorien, dann behalten bereits erfasste Partien ihre Werte.
- Gegeben ich will keinen Wertungsbogen, dann kann ich die Gesamtpunktzahl direkt eintragen (PAR-03).
- Gegeben Wertungsbögen, dann sind sie in R1 nur für mich sichtbar.
PAR-05 Partie bearbeiten und löschen
- Gegeben eine gespeicherte Partie, wenn ich sie öffne, dann kann ich alle Angaben ändern.
- 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.
- Gegeben ich ändere oder lösche eine Partie, dann stimmt die Statistik sofort danach.
- Gegeben eine noch nicht synchronisierte Partie, dann kann ich sie bearbeiten und löschen wie jede andere.
PAR-06 Partienverlauf
- Gegeben meine Partien, dann sehe ich sie als Liste, neueste zuerst, mit Spiel, Datum, Mitspielern und Sieger.
- Gegeben ich filtere nach Spiel, Zeitraum, Mitspieler oder Ort, dann zeigt die Liste nur passende Partien.
- Gegeben ich tippe eine Partie an, dann sehe ich alle Details inklusive Ergebnis und Wertungsbogen.
- Gegeben ich habe noch keine Partie erfasst, dann sehe ich einen Hinweis mit dem Weg zur ersten Partie.
- Gegeben sehr viele Partien, dann werden weitere beim Scrollen nachgeladen.
PAR-07 Persönliche Statistik
- 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.
- 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.
- Gegeben Partien ohne Dauer, dann zählen sie nicht in die Gesamtspielzeit, und ich sehe, wie viele es sind.
- Gegeben ich sehe die meistgespielten Spiele, dann gibt es zwei Ranglisten (Top 10): nach Anzahl der Partien und nach Spielzeit.
- Gegeben der Verlauf, dann sehe ich die Partien pro Monat als Diagramm.
- Gegeben die Statistik, dann stimmen ihre Zahlen mit dem Partienverlauf (PAR-06) im selben Zeitraum überein.
- Gegeben ich habe keine Partien im Zeitraum, dann sehe ich einen Leerzustand statt Nullen und leerer Diagramme.
PAR-08 Statistik je Spiel
- Gegeben ein Spiel mit Partien, dann sehe ich Anzahl der Partien, durchschnittliche Dauer, Gesamtdauer und Siegquote für dieses Spiel.
- Gegeben ein Spiel mit Punkten, dann sehe ich den Bestwert mit Datum der Partie.
- Gegeben ein Spiel ohne Punkte, dann wird kein Bestwert angezeigt.
- Gegeben das Spiel, dann sehe ich die fünf häufigsten Mitspieler.
- 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)
- Gegeben ich registriere mich, dann sehe ich vorher Datenschutzerklärung und Nutzungsbedingungen und stimme ihnen ausdrücklich zu.
- Gegeben optionale Dienste wie Nutzungsanalyse, dann sind sie standardmäßig aus und werden erst nach meiner Einwilligung aktiv.
- Gegeben die Datenschutzerklärung, dann nennt sie Zwecke, Speicherdauer, Empfänger und die Löschfrist aus KTO-05.
Sicherheit der Daten
- 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.
- 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).
- Gegeben jede neue Tabelle mit Nutzerdaten, dann hat sie Zugriffsregeln und mindestens einen automatischen Test, der fremden Zugriff prüft.
Sprachen (QUE-05)
- Gegeben die App startet, dann folgt die Sprache der Geräteeinstellung (Deutsch oder Englisch, sonst Englisch) und lässt sich in den Einstellungen ändern.
- Gegeben jeder sichtbare Text, dann kommt er aus den Übersetzungsdateien, nicht aus dem Code.
- Gegeben Datum, Zahlen und Währung, dann werden sie nach Sprache und Region formatiert.
- Gegeben eine Übersetzung fehlt, dann erscheint der englische Text, niemals ein technischer Schlüssel.
Barrierefreiheit (QUE-06)
- Gegeben ein Screenreader, dann haben alle bedienbaren Elemente und Bilder eine sinnvolle Beschriftung.
- Gegeben Texte und Bedienelemente, dann erreichen sie mindestens den Kontrast nach WCAG AA und Touch-Ziele sind mindestens 48 dp groß.
- Gegeben ich vergrößere die Schrift auf 200 Prozent, dann bleibt alles les- und bedienbar, ohne dass Text abgeschnitten wird.
- Gegeben das Web, dann lässt sich jede Funktion per Tastatur bedienen und der Fokus ist sichtbar.
Zustände, Fehler und Netz
- Gegeben jede Liste und jeder Bildschirm mit Daten, dann hat er einen Ladezustand, einen Leerzustand, einen Fehlerzustand mit „Erneut versuchen“ und den Normalzustand.
- Gegeben ich bin offline, wenn ich eine Funktion nutze, die eine Verbindung braucht, dann sehe ich einen verständlichen Hinweis statt eines technischen Fehlers.
- Gegeben ein Fehler im Hintergrund, dann verliere ich keine Eingaben, die ich schon gemacht hatte.
Plattformen
- Gegeben jede R1-Story, dann funktioniert sie auf iOS, Android und im Web mit denselben Kriterien; Abweichungen werden im Pull Request begründet.
- 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 |