Deliver localized auth app with verification and go_router
Integrate themed login/signup, EN/RU localization, shared dummy providers, verification recovery screens and named URL routes. Store frontend guidelines, workflow skills, validation and delivery documentation. Related to #2, #3, #5 and #6.
This commit is contained in:
1 parent
27424ed886
commit
10a278c65a
44 files changed
+4128
-28
No files matched your search
@@ -0,0 +1,71 @@
|
||||
# Product implementation record
|
||||
|
||||
## Scope
|
||||
|
||||
The public Astro website now lives in `website/`, preserving its source, assets,
|
||||
brand references and hosting identity. `backend/` describes the proposed BFF
|
||||
boundary; no backend service is implemented.
|
||||
|
||||
The frontend includes:
|
||||
|
||||
- `sxchnge_theme`: reusable Flutter theme, Onest font/license, light/dark themes,
|
||||
and a consumer example. UI uses ColorScheme and TextTheme roles.
|
||||
- `sxchnge_auth`: shared login, signup, and email-verification contracts,
|
||||
models, providers, and deterministic dummy services, reusable on mobile.
|
||||
- `app`: responsive login/signup, EN/RU localization and saved locale,
|
||||
email-sent and verified screens, expired/invalid/internal-error outcomes,
|
||||
resend/retry, and centralized go_router navigation.
|
||||
|
||||
## Review boundaries and task mapping
|
||||
|
||||
The accumulated work was initially left uncommitted across task branches.
|
||||
Delivery groups the actual final code into three stacked contributions, without
|
||||
claiming that the earlier intermediate implementations were committed:
|
||||
|
||||
1. `theme-1` into `main`: website relocation, repository scaffolding and theme.
|
||||
Related task: [#1](https://git.sendico.io/tech/sxchnge/issues/1).
|
||||
2. `auth-4` into `theme-1`: shared auth and verification package.
|
||||
Related tasks: [#4](https://git.sendico.io/tech/sxchnge/issues/4),
|
||||
[#5](https://git.sendico.io/tech/sxchnge/issues/5).
|
||||
3. `routing-6` into `auth-4`: integrated application, root test entry point,
|
||||
self-contained frontend guidelines/workflow skills and this delivery record.
|
||||
Related tasks: [#2](https://git.sendico.io/tech/sxchnge/issues/2),
|
||||
[#3](https://git.sendico.io/tech/sxchnge/issues/3),
|
||||
[#5](https://git.sendico.io/tech/sxchnge/issues/5),
|
||||
[#6](https://git.sendico.io/tech/sxchnge/issues/6).
|
||||
|
||||
Review and merge in that order. Preserve commit ancestry with merge commits,
|
||||
then retarget the next PR to `main` after its dependency merges. With squash
|
||||
merges, rebase the remaining stack before merging. PR links are recorded below
|
||||
once created. Earlier empty task branches are retained for traceability.
|
||||
|
||||
## Validation
|
||||
|
||||
The frontend suite covers 56 tests: 20 shared auth, 3 theme, 3 theme consumer,
|
||||
and 30 app tests. Coverage includes validation, localized layouts at 200% text
|
||||
scale, provider lifecycle/race handling, signup through email confirmation,
|
||||
resend/retry, token changes, transient history extras and URL route updates.
|
||||
|
||||
Commands used for delivery:
|
||||
|
||||
- Root: `make test-frontend`.
|
||||
- Flutter packages: formatting checks and `flutter analyze`.
|
||||
- App: `flutter build web --no-wasm-dry-run`.
|
||||
- Website: `npm run test`, `npm run check`, `npm run build`.
|
||||
|
||||
The localhost preview was manually checked for confirmation deep-link reload,
|
||||
return to login, and browser back/forward. Tests and builds are local validation;
|
||||
no remote CI outcome is implied. Build outputs and dependency caches are ignored.
|
||||
|
||||
## Current limitations
|
||||
|
||||
Authentication and verification are explicitly simulated. No real account,
|
||||
session, email delivery, backend token validation or KYC access guard exists.
|
||||
The three app routes are public; backend authorization remains future work.
|
||||
`demo-valid`, `demo-expired` and `demo-internal` are preview-only confirmation
|
||||
values. Other/missing tokens display invalid confirmation. Signup email is
|
||||
transient and excluded from serialized browser history. Only locale preference
|
||||
is persisted by the application.
|
||||
|
||||
The website and Flutter app are separate applications. The Flutter app currently
|
||||
has a web runner; the shared packages can be consumed by a future mobile app.
|
||||
Reference in new issue
Block a user