Shuffle/app
cschlaefke 7c2f684098
All checks were successful
CI / flutter (pull_request) Successful in 1m13s
CI / web-build (pull_request) Successful in 55s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Successful in 30s
fix(auth): address review findings for password reset
Finish the recovery guard only after the password change, mark the change
in the repository so a late userUpdated event is harmless, keep the form
locked after success, carry from through the reset check-email page,
share the password error texts and focus the continue button.

Refs #1

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 09:58:31 +01:00
..
android fix(app): address review findings for foundation 2026-11-02 20:36:58 +01:00
assets/security fix(auth): address review findings for registration 2026-11-03 00:47:42 +01:00
env feat(app): add Flutter scaffold with config, logging, routing and l10n 2026-11-02 20:17:24 +01:00
ios fix(app): address review findings for foundation 2026-11-02 20:36:58 +01:00
lib fix(auth): address review findings for password reset 2026-11-03 09:58:31 +01:00
test fix(auth): address review findings for password reset 2026-11-03 09:58:31 +01:00
web fix(app): address review findings for foundation 2026-11-02 20:36:58 +01:00
.gitignore feat(app): add Flutter scaffold with config, logging, routing and l10n 2026-11-02 20:17:24 +01:00
.metadata feat(app): add Flutter scaffold with config, logging, routing and l10n 2026-11-02 20:17:24 +01:00
analysis_options.yaml feat(app): add Flutter scaffold with config, logging, routing and l10n 2026-11-02 20:17:24 +01:00
l10n.yaml feat(app): add Flutter scaffold with config, logging, routing and l10n 2026-11-02 20:17:24 +01:00
pubspec.lock fix(auth): address review findings for registration 2026-11-03 00:47:42 +01:00
pubspec.yaml fix(auth): address review findings for registration 2026-11-03 00:47:42 +01:00
README.md fix(app): address review findings for foundation 2026-11-02 20:36:58 +01:00
THIRD_PARTY.md feat(auth): add auth domain, repository, validators and router redirects 2026-11-03 00:09:47 +01:00

Shuffle – Flutter-App

Brettspiel-App für iOS, Android und Web (eine Codebasis). Architektur und Konventionen: ../CLAUDE.md, ../docs/adr/.

Struktur

lib/
  core/        config, logging, error, result, supabase, routing, l10n, theme
  features/    <feature>/{data,domain,presentation}
  l10n/        app_de.arb, app_en.arb (+ generierte AppLocalizations)
test/          Spiegel von lib/
env/           *.example.json (echte Umgebungsdateien sind git-ignoriert)

Starten

cd app
flutter pub get
cp env/dev.example.json env/dev.json     # Werte anpassen
dart run build_runner build --delete-conflicting-outputs
flutter run -d chrome --dart-define-from-file=env/dev.json

Pflichtwerte: SUPABASE_URL, SUPABASE_ANON_KEY (der Start bricht ohne sie ab). Optional mit Platzhalter: SITE_URL (Default http://localhost:3000; für Staging/Prod zwingend setzen, sonst zeigen Mail-Links auf localhost), LEGAL_PRIVACY_URL, LEGAL_TERMS_URL, TERMS_VERSION, APP_ENV.

Platzhalter-Identität (vor dem Store-Release festlegen)

Was Wo ändern
Bundle-/Application-ID work.cshomelabs.shuffle android/app/build.gradle.kts (namespace, applicationId), Kotlin-Package unter android/app/src/main/kotlin/, ios/Runner.xcodeproj/project.pbxproj (PRODUCT_BUNDLE_IDENTIFIER)
App-Name „Shuffle“ android/app/src/main/AndroidManifest.xml, ios/Runner/Info.plist, web/index.html, web/manifest.json, l10n-Schlüssel appTitle
Web-Domain, Rechtstexte, Version der Rechtstexte env/*.json (SITE_URL, LEGAL_*, TERMS_VERSION)

Die Bundle-ID lässt sich nach der ersten Store-Veröffentlichung nicht mehr ändern.

Hinweise

  • Generierte Dateien (*.g.dart, lib/l10n/app_localizations*.dart) werden mit eingecheckt; nach Änderungen an @riverpod-Code oder ARB-Dateien neu erzeugen (build_runner, flutter gen-l10n).
  • Web-URLs ohne # (usePathUrlStrategy): der Webserver braucht eine SPA-Rewrite-Regel (alle Pfade auf index.html).