chore: App-Fundament – Flutter-Gerüst und Supabase-Konfiguration #31
Labels
No labels
epic/katalog
epic/konto
epic/partien
epic/querschnitt
epic/sammlung
needs-clarification
prio/could
prio/must
prio/should
size/l
size/m
size/s
size/xl
status/in-progress
status/ready-for-merge
status/spec-review
type/bug
type/epic
type/story
type/tech
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
#1 [KTO-01] Registrieren, anmelden und Passwort zurücksetzen
cschlaefke/Shuffle
Reference: cschlaefke/Shuffle#31
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ziel
Das technische Fundament für die erste App-Story schaffen. Das Verzeichnis
app/existiert noch nicht,supabase/config.tomlfehlt. Dieses Issue liefert Projektgerüst, Konfiguration, Routing, l10n, Theme-Basis, Logger, Test-Grundlagen und CI-Anpassungen. Es enthält keine fachlichen Funktionen.Herkunft: Spec
docs/specs/1-auth-registrierung-anmeldung.md§ 8.1. Entscheidung von Chris (2026-11-02): Das Fundament wird ein eigenes Chore-Issue vor #1. Begründung: KAT-01/KAT-02 brauchen das Gerüst auch ohne Anmeldung, und die PRs bleiben klein und prüfbar.Planung
chore/31-app-fundamentAufgaben
supabase initausführen undsupabase/config.tomlcommitten (Auth-Anpassungen folgen in #1)..gitignoreergänzen:app/env/*.jsonmit Ausnahme!app/env/*.example.json, außerdemsupabase/.temp/undsupabase/.branches/. Hintergrund:env/*.jsongreift nur im Repo-Root. CI-Pfade prüfen.flutter create appfür iOS, Android und Web. Bundle-/Application-IDwork.cshomelabs.shuffleund App-Name „Shuffle“ sind Platzhalter: zentral und leicht änderbar halten, die Bundle-ID wird vor dem Store-Release festgelegt.pubspec.yamlmit gepinnten Paketen laut Spec § 5.7: supabase_flutter, flutter_riverpod, riverpod_annotation, riverpod_generator, go_router, freezed, freezed_annotation, json_serializable, json_annotation, build_runner, logging, flutter_localizations, intl, mocktail (dev). Strikteanalysis_options.yaml, Ordnercore/undfeatures/.core/config:AppConfigaus--dart-define-from-filemitSUPABASE_URL,SUPABASE_ANON_KEY,SITE_URL(Platzhalter-Domainshuffle.cshomelabs.work),LEGAL_PRIVACY_URL,LEGAL_TERMS_URL(Platzhalter-URLs, bis Chris die Rechtstexte liefert),TERMS_VERSION. Dateienapp/env/dev.example.jsonundapp/env/ci.example.jsonanlegen. Außerdemcore/logging(Wrapper umpackage:logging, keinprint, keine personenbezogenen Daten im Log), globale Fehlerbehandlung,supabaseClientProviderund ein eigenerResult-Typ.core/routing: go_router-Provider,usePathUrlStrategy, Redirect-Hook mit austauschbarer Auth-Quelle, Startseite/als Platzhalter, 404-Seite.core/l10n: gen-l10n,app_de.arbundapp_en.arb, englischer Fallback (QUE-05 Kriterium 4),appLocaleProvider(Gerätesprache de/en, sonst en).test/helpers/pump_app.dart(l10n, ProviderScope-Overrides), Beispiel-Unit- und -Widget-Test, Test für den l10n-Fallback.app/(env/ci.example.json),supabase-testsläuft mit der committetenconfig.toml.Reihenfolge
F1 → F2 → parallel F3, F4, F5 (flutter-dev) und F6 (ui-designer) → F7, F8.
Definition of Done
dart format --set-exit-if-changed .undflutter analyzeohne Befund,flutter testgrünflutter build websowie Start auf Android und iOS möglich (oder Abweichung im PR begründet)