docs: reflect Postgres, migration, and the Flutter client
Root README + plan updated: local PostgreSQL 16 + first Prisma migration, end-to-end guest-flow verification, and the started Flutter client (client/app/, web target). Phase 7 marked in progress with the remaining client work spelled out. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -12,12 +12,13 @@ for the full architecture and phased roadmap.
|
||||
sharing, chat, local/cloud sync). See [backend/README.md](backend/README.md)
|
||||
for setup. Also serves the web client (see below) directly, so it's the
|
||||
single entry point for the web experience.
|
||||
- `client/app/` — the Flutter client (single codebase; **web** target
|
||||
enabled, mobile/desktop can be added later). Login (guest / local Teamer /
|
||||
invite redemption), role-aware home, guest Workshop-Wahl, file list,
|
||||
read-only chat. See [client/app/README.md](client/app/README.md).
|
||||
- `client/web/` — minimal dependency-free HTML/CSS/JS placeholder web
|
||||
client (guest join, Wahl submission, file list, chat) exercising the real
|
||||
API, served by the backend at `/`. Will be replaced by the Flutter web
|
||||
build once Flutter is available.
|
||||
- `client/` (mobile/desktop) — planned Flutter app, not yet scaffolded
|
||||
(Flutter is not installed in this environment).
|
||||
client, served by the backend at `/`. Superseded by the Flutter web build;
|
||||
kept for now as a zero-dependency fallback.
|
||||
|
||||
## Status
|
||||
|
||||
@@ -50,12 +51,24 @@ cloud server's `/sync/ingest` + `/sync/export` endpoints (shared-secret
|
||||
authenticated, not user auth). No conflict resolution needed by design - the
|
||||
local server is the sole source of truth while an event is live.
|
||||
|
||||
The backend now also serves the web client directly (static files from
|
||||
`client/web/`, API under `/api`), so the same process is the single entry
|
||||
point for the web experience.
|
||||
Since then: local (non-Authentik) Gemeinde Teamer accounts + invites
|
||||
(`teamer/`, `auth/team-login`), Gemeinde CRUD (`gemeinde/`), Gemeinde
|
||||
Verantwortliche self-registration with LT approval (`onboarding/`), JIT
|
||||
`User` provisioning on first Authentik login, LEITUNGSTEAM derived from the
|
||||
Authentik `groups` claim, and an email module (`mail/`, log-only by default,
|
||||
SMTP opt-in) that sends personal Teamer invites. First Prisma migration is
|
||||
in (`backend/prisma/migrations/`); the backend has been run end to end
|
||||
against a local PostgreSQL 16. `npm test` covers the assignment algorithm
|
||||
and the new auth/onboarding services (56 tests).
|
||||
|
||||
Backend builds and boots cleanly (`npm run build`, `node dist/main.js`) but
|
||||
requires a real PostgreSQL database, Authentik instance, and Nextcloud/S3
|
||||
credentials (see `backend/.env.example`) to run end to end. Remaining: the
|
||||
Flutter clients (mobile/desktop; web has an interim plain-HTML client).
|
||||
Phase 7 (Flutter client) started: `client/app/` is a single Flutter
|
||||
codebase with the **web** target enabled — login (guest / local Teamer /
|
||||
invite redemption), role-aware home, guest Workshop-Wahl, file list,
|
||||
read-only chat. `flutter build web` and `flutter test` pass. Mobile/desktop
|
||||
targets, the Authentik Authorization-Code flow, WebSocket chat send, and LT
|
||||
admin screens are still to come.
|
||||
|
||||
The backend also serves the interim `client/web/` placeholder at `/` (API
|
||||
under `/api`). Running end to end still needs a real Authentik instance and
|
||||
Nextcloud/S3 credentials (see `backend/.env.example`).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user