136 lines
10 KiB
Markdown
136 lines
10 KiB
Markdown
# Roadmap
|
||
|
||
Roadmap отражает порядок продуктовой работы, но сам по себе не является основанием для реализации.
|
||
Требования и разрешение на реализацию определяются спецификацией конкретной фичи и текущей задачей
|
||
пользователя.
|
||
|
||
## Завершённые эпики
|
||
|
||
### [Аутентификация](epics/Authentication.md)
|
||
|
||
- [x] [auth-system](features/auth-system/spec.md) — полноценная регистрация, вход, JWT + refresh token,
|
||
страницы login/register/profile, session provider.
|
||
|
||
### [Документация](epics/Documentation.md)
|
||
|
||
- [x] [docusaurus-docs](features/docusaurus-docs/spec.md) — 30+ страниц документации, ADR, диаграммы.
|
||
- [x] [russian-docs-and-architecture-diagrams](features/russian-docs-and-architecture-diagrams/spec.md) —
|
||
документация на русском, декомпозированные схемы архитектуры.
|
||
|
||
### [DevOps](epics/DevOps.md)
|
||
|
||
- [x] [ci-cd](features/ci-cd/spec.md) — Gitea Actions: lint, test, build всех пакетов + Storybook.
|
||
- [x] [pre-commit-checks](features/pre-commit-checks/spec.md) — Husky + lint-staged.
|
||
|
||
## Активные эпики
|
||
|
||
### [Backend Architecture](epics/BackendArchitecture.md)
|
||
|
||
Цель: удерживать backend-архитектуру, security boundaries и published contracts в состоянии,
|
||
пригодном для безопасного развития продукта.
|
||
|
||
- [x] [Backend Architecture Improvements](features/backend-architecture-improvements/spec.md) — envelope
|
||
DTO, screener TTL, domain exceptions, health checks, middleware DI, MoexClient split.
|
||
- [x] [Backend Architecture Refactor](features/backend-architecture-refactor/spec.md) — refactor-only
|
||
итерация: error masking, production config hardening, DTO validation, typed T-Bank boundary, cache
|
||
metadata, backend docs sync.
|
||
|
||
### [Портфель брокера](epics/BrokerPortfolio.md)
|
||
|
||
Цель: дать пользователю целостный доступ к реальным брокерским счетам T-Bank.
|
||
|
||
- [x] [T-Bank broker portfolios](features/tbank-broker-portfolios/spec.md) — интеграция с gRPC,
|
||
синхронизация счетов/позиций/операций.
|
||
- [x] [Отображение брокерского портфеля](features/broker-portfolio-display/spec.md) — таблицы позиций
|
||
по классам, история операций с пагинацией.
|
||
- [x] [Разделы брокерского счёта](features/broker-account-sections/spec.md) — навигация по вкладкам,
|
||
обзор/позиции/операции/события.
|
||
- [x] [Информативный обзор брокерских счетов](features/broker-accounts-overview/spec.md) —
|
||
сводка по всем счетам с агрегацией.
|
||
- [x] [Календарь событий и прогноз будущих выплат](features/broker-events-and-payouts/spec.md) —
|
||
вкладка событий и прогноз выплат по диапазону дат.
|
||
- [x] [Исправление deadline и очереди T-Bank](features/tbank-deadline-queue-fix/spec.md) — deadline
|
||
внутри PQueue, best-effort обогащение.
|
||
- [x] [Улучшение UI операций](features/broker-operations-ui-improvements/spec.md)
|
||
- [x] [Пагинация и загрузка позиций](features/broker-positions-pagination-and-loading/spec.md)
|
||
- [x] [Аналитика прибыльности брокерского счёта](features/broker-account-analytics/spec.md) —
|
||
endpoint и вкладка аналитики: вложения, дивиденды, купоны, доходность
|
||
|
||
### [Портфельная страница](epics/PortfolioDashboard.md)
|
||
|
||
Цель: страница управления портфелями — создание, аналитика, распределение.
|
||
|
||
- [x] [Portfolio CRUD](features/portfolio/spec.md) — создание/редактирование ручных портфелей,
|
||
добавление позиций.
|
||
- [x] [График распределения](features/portfolio-allocation-chart/spec.md) — SVG donut chart.
|
||
- [x] [Обогащение списка портфелей](features/portfolio-list-enrichment/spec.md) — batch MOEX
|
||
обогащение (totalValue, positionCount).
|
||
- [x] [Оптимизация обогащения](features/portfolio-enricher-optimization/spec.md) — batch-методы
|
||
MoexClient.
|
||
- [x] [Аналитика портфеля](features/portfolio-analytics/spec.md) — Phases 1–3: cost basis + PnL,
|
||
дивидендный доход, target allocation.
|
||
- [x] [Пагинация и overlay загрузки](features/pagination-loading-overlay/spec.md) — overlay + спиннер
|
||
при переключении страниц во всех брокерских таблицах (Positions + Operations)
|
||
|
||
### [Контроль качества](epics/QualityAssurance.md)
|
||
|
||
- [x] [Покрытие frontend-тестами](features/frontend-test-coverage/spec.md) — Vitest + Testing Library +
|
||
MSW, тесты в colocation.
|
||
- [x] [Quality gate и контрактная документация](features/quality-gate-contract-docs/spec.md) —
|
||
docs обновлены, OpenAPI актуален, openapi-artifacts проверка добавлена.
|
||
|
||
## Крупные завершённые работы (вне эпиков)
|
||
|
||
- [x] [FSD-миграция фронтенда](features/fsd-frontend-refactor/spec.md) — поэтапный переход на
|
||
Feature-Sliced Design через 10+ features: entities, shared, market pages, broker pilot,
|
||
portfolios, screener, app-auth, cleanup, final.
|
||
- [x] [Дизайн-система](features/design-system-foundation/spec.md) — `@moex-vibe/design-system`:
|
||
три уровня токенов, MUI theme, DataTable, базовые компоненты, Storybook.
|
||
- [x] [Миграция брокерских разделов на DS](features/broker-account-sections-ds-migration/spec.md)
|
||
- [x] [Миграция страницы счетов на DS](features/broker-accounts-page-migration/spec.md)
|
||
- [x] [Pilot-миграция](features/pilot-migration/spec.md) — HomePage + SearchBar на DS.
|
||
- [x] [Security screener](features/security-screener/spec.md) — Phase 1: фильтры, таблица, backend.
|
||
- [x] [MVP](features/moex-vibe/spec.md) — поиск, карточки акций/облигаций, графики, дивиденды.
|
||
- [x] [Frontend debt audit and backlog](features/frontend-debt-audit/spec.md) — audit frontend-техдолга,
|
||
разделение open items на 4 follow-up фичи, синхронизация inbox/roadmap
|
||
- [x] [Architecture quality backlog](features/architecture-quality-backlog/spec.md) — docs-only
|
||
нормализация architecture backlog, синхронизация roadmap и audit/refactor статусов
|
||
- [x] [frontend-docs-sync](features/frontend-docs-sync/spec.md) — синхронизация docs с состоянием кода
|
||
- [x] [frontend-infrastructure-hardening](features/frontend-infrastructure-hardening/spec.md) —
|
||
browser mock mode, env validation, tooling consistency, contract freshness
|
||
- [x] [frontend-shared-boundary-cleanup](features/frontend-shared-boundary-cleanup/spec.md) —
|
||
сужение shared/public API, устранение boundary ambiguity
|
||
- [x] [frontend-test-hygiene](features/frontend-test-hygiene/spec.md) — минимизация test helpers,
|
||
нормализация conventions
|
||
|
||
### Backend Architecture Improvements
|
||
|
||
- [x] Shared envelope DTO — единый `ApiResponseMeta` вместо 6 дублирующихся классов
|
||
- [x] Screener TTL — отдельный кеш-параметр `CACHE_SCREENER_TTL` (900s)
|
||
- [x] Domain exception hierarchy — `DomainException`, `EntityNotFoundException`, `MoexApiException`, `TBankApiException`
|
||
- [x] Health check прокачка — проверки Prisma, MOEX, T-Bank с детальным статусом
|
||
- [x] RequestLoggingMiddleware — подключение через `configure()` в AppModule
|
||
- [x] MoexClientService split — 6 клиентов вместо God Service, убран `@Global()`
|
||
|
||
## Кандидаты следующих фич
|
||
|
||
Ниже опубликован canonical architecture backlog после `architecture-quality-backlog`. Старые granular
|
||
заметки folded into these tracks и не должны вестись как параллельные независимые backlog-списки.
|
||
|
||
- [x] [Миграция таблиц на дизайн-систему](features/table-migration/spec.md) — DividendsTable,
|
||
ScreenerTable, SharePositionTable, BondPositionTable мигрированы на `DataTable`. Legacy `shared/ui/Table`
|
||
и `TableSkeleton` удалены.
|
||
- [ ] T-Bank data isolation and ownership boundaries (P0/P1) — изоляция T-Bank данных по пользователям,
|
||
ownership model и backend query boundary до следующих data-flow изменений
|
||
- [ ] Backend runtime and auth hardening (P1) — отдельная security/runtime policy итерация: rate limiting,
|
||
auth surface hardening, explicit production rules
|
||
- [ ] Local T-Bank read-path (P1) — локальная persisted read-модель операций/истории вместо прямого
|
||
read-through из T-Bank
|
||
- [ ] Session model for multiple surfaces (P1/P2) — device-level sessions, rotation, reuse detection,
|
||
явный session contract для нескольких клиентских поверхностей
|
||
- [ ] Contract, type-safety, and frontend delivery hardening (P2/P3) — устранение остаточного `as any`,
|
||
укрепление API/query boundaries, quality/performance gates и lazy-loading budgets
|
||
- [ ] Broker portfolio value history (P2/P3) — хранить снапшоты стоимости брокерского счёта и показать
|
||
график динамики портфеля на дашборде
|
||
- [x] Broker-events — UX доработки и смешанный календарь.
|