Commit Graph
4 Commits
Author SHA1 Message Date
linusandClaude Sonnet 5 73ff55643f docs: LT Wahl/Teamer admin + Verantwortlichen self-registration screens
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-10 10:10:07 +02:00
linusandClaude Sonnet 5 40b623dd79 docs: OIDC PKCE login, LT admin screens, backend-served Flutter build
Plan + both READMEs updated for the Authentik Authorization-Code + PKCE
flow, the Leitungsteam admin screen, the widened LT-admin guards, the
issuer trailing-slash normalisation, and the backend now serving the
Flutter web build (SPA fallback for /v1/auth/callback). Verification
section records the local-Postgres E2E for LT admin + onboarding approval,
and notes the OIDC browser round-trip still needs a test account.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-10 09:37:10 +02:00
linusandClaude Sonnet 5 d5ecdcd3c4 docs: Wahl result view, live chat, and the gateway race fix
Plan + client README updated for the guest Wahl result endpoint/tab, the
WebSocket chat wiring, and the ChatGateway caller-promise fix. Section 8
now scopes the remaining Flutter work to the Authentik-dependent screens.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-10 09:03:42 +02:00
linusandClaude Sonnet 5 0886424526 feat(client): Flutter app (web target) — Phase 7 start
Single Flutter codebase under client/app/ with web enabled (mobile/desktop
can be added later; lib/ is platform-agnostic). Talks to the NestJS backend
via a thin REST wrapper; API_BASE is a --dart-define (defaults to the local
backend).

Screens:
- Login: Konfi/guest (invite code), local Teamer password login, Teamer
  invite redemption. Token persisted in shared_preferences, restored on
  start; GET /auth/me drives a role-aware home.
- Workshop-Wahl (guests): loads /wahl/guest/overview, ordered pick of up to
  3 workshops, submits to /wahl/:id/teilnehmer.
- Dateien: /files/:kcId list.
- Chat: channel + message list (read-only; WS send is a follow-up).

State: AppState (ChangeNotifier) exposed via an InheritedNotifier
(AppScope) — no third-party state package. flutter analyze clean,
flutter build web --release passes, one widget smoke test.

Also: interim client/web/ HTML placeholder stays as-is (per plan it is
superseded by this Flutter web build).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-10 08:52:36 +02:00