53 lines
2.5 KiB
Markdown
53 lines
2.5 KiB
Markdown
# WealthLedger frontend
|
||
|
||
React/Vite-клиент WealthLedger. Клиент получает данные только через typed API
|
||
backend; прямые вызовы T-Bank из frontend не допускаются.
|
||
|
||
## Быстрый старт
|
||
|
||
Требуется Node 22 (`.nvmrc`). Создайте `.env` из примера и установите
|
||
зависимости строго из lockfile:
|
||
|
||
```bash
|
||
cp .env.example .env
|
||
nvm use --silent
|
||
npm ci
|
||
npm run dev
|
||
```
|
||
|
||
`VITE_API_BASE_URL` по умолчанию указывает на `http://localhost:3000`.
|
||
|
||
## Проверка
|
||
|
||
```bash
|
||
nvm use --silent
|
||
npm run verify
|
||
```
|
||
|
||
Команда проверяет, что generated OpenAPI types соответствуют committed snapshot,
|
||
затем запускает strict TypeScript, Biome, один coverage-backed запуск Vitest,
|
||
Knip, dependency rules приложения и stories, сборки приложения и Storybook.
|
||
Если backend-контракт изменился,
|
||
обновите `src/shared/api/spec/openapi.json` копированием backend OpenAPI
|
||
document и затем выполните `npm run openapi:generate`.
|
||
|
||
## Документация
|
||
|
||
- [Router conventions](.ai/CONVENTIONS.md) и [источники](.ai/SOURCES.md)
|
||
- [Выбор owner/FSD](.ai/conventions/frontend-architecture.md)
|
||
- [UI, state, формы и компоненты](.ai/conventions/frontend-ui.md)
|
||
- [Data/API/cache](.ai/conventions/frontend-data.md)
|
||
- [Testing](.ai/conventions/frontend-testing.md)
|
||
- [Поставленный UI-каталог Storybook](../docs/development/ui-catalog.md)
|
||
- [Обзор поставленной системы](../docs/overview.md)
|
||
- [Engineering governance и risk-based testing](../docs/development/engineering-governance.md)
|
||
- [Карта проектных фактов](../docs/README.md)
|
||
- [Границы проверки интерфейса](../docs/development/verification.md#интерфейс)
|
||
- [Remediation registry](../docs/development/audit-remediation.md)
|
||
|
||
Runtime OpenAPI backend сверяется с frontend snapshot отдельной read-only
|
||
backend командой `npm run test:openapi-contract`.
|
||
Разработка идёт напрямую по задаче пользователя. Каждый affected repo проходит
|
||
свой verify; при изменении wire contract дополнительно выполняется contract check.
|
||
Обязательного OpenSpec/SDD lifecycle нет.
|