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:
Stephan D committed 2026-09-11 15:37:07 +02:00
1 parent 27424ed886
commit 10a278c65a
44 files changed
+4128 -28

No files matched your search

+28 -13
View File
@@ -1,28 +1,43 @@
# SXCHNGE
Astro public website for a crypto-to-fiat exchange. English and Russian, responsive layouts, an illustrative exchange calculator, and explicit company / policy placeholders.
Product repository for the sxchnge public website, consumer frontend, and backend for frontend (BFF).
## Development
## Repository structure
Node >=22.12.0 (Node >=22.18 for the native TypeScript test runner), npm.
| Folder | Purpose | Status |
| --- | --- | --- |
| [`website/`](website/README.md) | Existing Astro public website, assets, brand references, and Sites configuration | Implemented |
| [`frontend/`](frontend/README.md) | Consumer application and Flutter packages | Theme, shared auth, localized app, verification and routing implemented |
| [`backend/`](backend/README.md) | Product BFF integrating with Sendico | Prepared for implementation |
Each application owns its dependencies and deployment configuration. The frontend includes the reusable `sxchnge_theme` Flutter package; the backend currently contains documentation only.
## Website development
Run the existing website commands from its new folder:
```sh
cd website
npm ci
npm run dev -- --background --host 127.0.0.1
npm run test
npm run check
npm run build
```
Use `npm exec astro dev stop` to stop the background preview. Static output is `dist/`. `/` redirects to `/en/`; localized content lives at `/en/` and `/ru/`. Legal placeholders have separate localized routes.
From `website/`, manage the background server with `npm exec astro dev status`, `npm exec astro dev logs`, and `npm exec astro dev stop`. Build output is `website/dist/`. Use `website/` as the working directory for website hosting tools; its existing Sites identity is preserved in `website/.openai/hosting.json`.
## Content and launch configuration
## Product boundaries
- Translation source: `src/i18n/copy.ts`.
- Brand reference: `design/tokens.json`, documented in `design/README.md`.
- Optional Flutter palette reference: `flutter/brand_palette.dart`. Compatibility does not require identical application styling.
- Full account URLs: set `PUBLIC_FLUTTER_REGISTER_URL` and `PUBLIC_FLUTTER_LOGIN_URL` at build time, as shown in `.env.example`. Locale is appended as `lang`. Until configured, actions open a clear preview dialog; no credentials are collected.
- Quote fixtures: `src/lib/quote.ts`. Demo only; no rates are fetched, orders placed, or funds handled.
- Replace all company placeholders, supply approved legal policies, and confirm supported assets, payout methods, countries, fees and timelines before launch.
- The preview explicitly uses `noindex,nofollow`. Remove only when launch content is complete, and set the real domain in `astro.config.mjs`.
The intended integration is: consumer frontend → sxchnge BFF → supported Sendico API.
Fonts are self-hosted with their license. No analytics, third-party trackers, client storage, or authentication backend is included. The website uses Astro's own TypeScript script support; React is unnecessary for the current interactions.
- sxchnge owns consumer registration and sessions, the onboarding and exchange experience, and mapping authenticated consumers to stable organization-scoped Sendico customer references.
- Sendico remains authoritative for payment execution, KYC records and verification, policy decisions, and limit enforcement.
- The sxchnge organization, backend integration principal, and individual customer references are distinct identities. Consumers must not share the integration account's customer identity.
- The BFF should use a supported API contract rather than copying Sendico's existing BFF or depending on its local internal modules.
Before implementing the product, define one complete transaction flow and agree on the Sendico customer, KYC, eligibility/limits, and customer-scoped payment contracts. These are intended boundaries, not claims that the required Sendico operations already exist.
## Delivery record
See [the implementation record](docs/implementation.md) for delivered scope, task mapping, validation, and PR dependencies. Repository workflow skills and frontend guidelines are stored locally under `.agents/skills/` and `frontend/AGENTS.md`.