# 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.