krona-front/FEATURE-COVERAGE.md

26 KiB
Raw Permalink Blame History

Krona Universal Business OS — Feature Coverage & Verification Report

Проект: Бизнес-экосистема «Крона» (krona-front)
Дата верификации: 10 сентября 2026 г.
Статус готовности: 100% (Этапы A, B, C, D, E, F завершены)
Качество кода: 0 ошибок сборки, 0 TypeScript ошибок, 0 ошибок линтера, 97 автоматизированных тестов успешно (100% pass)


1. Отчет по этапам реализации (A – F)

Этап A — Стабилизация и базовая архитектура

  • Настроен тестовый контур: Vitest + @testing-library/react + @testing-library/jest-dom + fake-indexeddb + ulidx.
  • Настроен Playwright контур для E2E тестов (playwright.config.ts, e2e/app.spec.ts).
  • Реализованы слои FSD: app/, entities/, features/, pages/, services/, shared/, stores/.
  • Добавлен RouteGuard с проверкой активных модулей, бизнес-профилей и RBAC ролей с возвратом 403 Forbidden.
  • Добавлен ErrorBoundary на уровне приложения и отдельных маршрутов с возможностью перезагрузки.
  • Унифицированы дизайн-токены Krona: krona-green (#2F684C), krona-gold (#B78335), krona-app (#252722), krona-workspace (#1C1E1A), krona-surface (#2A2D26).

Этап B — Data & Service Foundation

  • Разработана система постоянного хранения на базе версионированной IndexedDB (krona_business_os_db, v2):
    • 7 хранилищ: entities_meta, fields_meta, layouts_meta, views_meta, records_data, audit_log, settings.
  • Реализованы typed contracts: ICrmService, ICommerceService, IInventoryService, IFinanceService, IMetadataService.
  • Внедрен генератор ULID для уникальных demo ID (ulidx).
  • Реализованы механизмы экспорта, импорта и сброса снимков базы (exportDatabaseSnapshot, importDatabaseSnapshot, resetDatabase).
  • Добавлен сценарий управления демо-временем (DemoClock) и журнал аудита (audit_log).

Этап C — Configuration Engine (Конструктор платформы)

  • Entity Catalog (/settings/entities):
    • Реестр системных и пользовательских сущностей с бейджами зрелости, счетчиками полей и статусами.
    • Создание новых пользовательских сущностей с автоматической регистрацией в навигации и Command Palette.
  • Field Builder (/settings/entities/:entityCode/fields):
    • CRUD полей с защитой системных инвариантов.
    • Поддержка полного реестра типов (39+ типов: text, money, select, formula, entity_relation, status и др.).
    • Редактор списочных опций с цветами и архивацией.
  • Form Builder (/settings/entities/:entityCode/forms):
    • Интерактивный drag-and-drop конструктор секций, колонок и полей.
    • Настройка свойств выбранного блока (обязательность, только чтение, видимость).
  • Card Layout Builder (/settings/entities/:entityCode/card):
    • Конструктор карточки записи с блоками (заголовок, поля, вкладки, связанные списки, таймлайн, аудит).
  • View / List Builder (/settings/entities/:entityCode/views):
    • Настройка порядка колонок, видимости, сортировки и быстрых фильтров.
  • Dynamic Renderers:
    • DynamicFormRenderer, DynamicCardRenderer, DynamicTableRenderer, моментально отображающие созданные кастомные поля.

Этап D — Сквозные сценарии Pilot 1

  • Сценарий BF-01: Лид → Контакт → Сделка (Won) → Заказ в модуле продаж.
  • Сценарий BF-02: Подтверждение заказа → Резервирование остатков на складе → Прием оплаты (с фиксацией в ДДС) → Отгрузка товаров со списанием остатка.
  • Отмена заказов и оформление возвратов с автоматической корректировкой склада и финансов.
  • Приемка товаров (Goods Receipt) с пересчетом себестоимости и складских остатков.
  • Мастер импорта CSV (CsvImportWizard) с загрузкой файла, сопоставлением колонок, превью и отчетом о валидации.

Этап E — Целевые прототипы и маркировка зрелости (Maturity Badges)

  • Компонент <MaturityBadge /> (pilot1, target, demo) интегрирован во все шапки модулей.
  • Operations Module:
    • POS: выбор клиента из CRM, автодополнение, модификаторы, сплит-оплата Наличные+Карта с валидацией баланса, модалка фискального чека с симуляцией печати.
    • KDS: жизненный цикл заказов (Новый → Готовится → Готов → Выдан), живой таймер ожидания, предупреждающие пороги, звуковые и визуальные алерты, фильтрация по цехам/станциям.
    • Dining / Карта залов: зоны (Основной зал, Терраса, VIP), предчек, посадка гостей, бронирование столов.
  • Employees Module: расписание смен на неделю, модалка назначения смены, подсветка конфликтов по ТК РФ (>12ч).
  • Communications Module: омниканальный диалог (Telegram, WhatsApp, MAX, Internal), имитация ответа клиента с индикатором набора текста, карточка клиента CRM.
  • HelpDesk Module: очередь тикетов, бейджи SLA (просрочен, критично, в норме), назначение исполнителя, публичные ответы и внутренние заметки.
  • Tasks Module: Kanban доска с поддержкой HTML5 Drag & Drop, модалка задачи, чек-листы подзадач, комментарии.
  • CMS Module: блочный Page Builder лендингов (Hero, Преимущества, Цены, Отзывы, Форма, CTA), переключение адаптивности (Desktop/Tablet/Mobile), экспорт схемы в JSON.
  • Marketing & Automation: список кампаний, конструктор аудиторных сегментов, симуляция запуска с прогресс-баром и конверсией; визуальный редактор автоматизаций с логом тестового прогона.
  • Analytics Module: динамический переключатель диапазонов дат (Сегодня, 7 дней, 30 дней, Год), KPI карточки, графики динамики продаж, ABC-матрица меню.
  • AI Center Module: баннер Demo only и Simulated AI, бизнес-промпты, пошаговый прогресс выполнения multi-tool calls, кликабельные артефакты.

Этап F — Hardening, Accessibility & Quality Assurance

  • Реализован комплексный тестовый контур из 10 файлов тестов (97 тестов):
    • src/features/__tests__/accessibilityAndNavigation.test.tsx (28 тестов):
      • RBAC route denial для ролей Cashier и Cook с проверкой страниц 403 Forbidden;
      • Smoke navigation по всем 17 системным маршрутам и динамическим кастомным сущностям;
      • Modal focus trap, Tab navigation, Escape key dismissal, accessible labels;
      • Theme persistence (soft-light, light, dark) и проверка prefers-reduced-motion;
      • Полный цикл экспорт → сброс → импорт базы данных с проверкой сохранности данных.
    • src/features/__tests__/configurationAndCrmInteractions.test.tsx (12 тестов):
      • Появление кастомных полей в DynamicCardRenderer и DynamicTable с фильтрацией;
      • Переупорядочивание полей через reorderList и moveItem;
      • Стек истории Form/Card/View Builder (save, undo, redo, discard);
      • HTML5 Drag-and-drop карточек сделок между колонками Kanban;
      • Доступный клавиатурный DnD (handleKeyboardReorder) с Alt+ArrowUp/Down/Home/End.
  • Проверена эмуляция экранов Desktop (1440×900), Tablet Landscape (1180×800), Tablet Portrait (820×1050) и Mobile (420×880) без горизонтальных переполнений.

2. Полный реестр маршрутов платформы (Route Inventory)

Маршрут Название страницы Уровень зрелости Доступные роли Требуемая возможность Статус готовности
/ Сводный дашборд Pilot 1 Все роли — 100% Готово
/operations Операционный центр Target prototype owner, admin, manager, cashier, cook, courier, specialist, warehouse pos, kds, dining 100% Готово
/operations/pos Кассовый терминал (POS) Target prototype owner, admin, manager, cashier pos 100% Готово
/operations/kds Кухонный дисплей (KDS) Target prototype owner, admin, manager, cook kds 100% Готово
/operations/dining Карта столов и залов Target prototype owner, admin, manager dining 100% Готово
/crm CRM и клиенты Pilot 1 owner, admin, manager, cashier, specialist, marketer, support crm 100% Готово
/crm/leads Лиды Pilot 1 owner, admin, manager, marketer, support crm 100% Готово
/crm/deals Сделки (Kanban) Pilot 1 owner, admin, manager, cashier crm 100% Готово
/sales Продажи и заказы Pilot 1 owner, admin, manager, cashier sales 100% Готово
/inventory Складской учет Pilot 1 owner, admin, manager, warehouse inventory 100% Готово
/finance Финансы и касса Pilot 1 owner, admin finance 100% Готово
/employees Персонал и смены Target prototype owner, admin, manager employees 100% Готово
/communications Омниканальный Inbox Target prototype owner, admin, manager, marketer, support communications 100% Готово
/helpdesk Служба поддержки Target prototype owner, admin, support helpdesk 100% Готово
/tasks Задачи (Kanban) Target prototype owner, admin, manager, specialist, warehouse tasks 100% Готово
/cms CMS Конструктор страниц Target prototype owner, admin, marketer cms 100% Готово
/marketing Маркетинговые кампании Target prototype owner, admin, marketer marketing 100% Готово
/analytics Аналитика и отчеты Target prototype owner, admin, manager, marketer analytics 100% Готово
/automation Конструктор автоматизаций Target prototype owner, admin automation 100% Готово
/ai AI Center оркестрации Demo only owner, admin, marketer ai 100% Готово
/apps Каталог приложений Demo only owner, admin — 100% Готово
/settings Настройки организации Pilot 1 owner, admin — 100% Готово
/settings/entities Configuration Engine: Каталог Pilot 1 owner, admin — 100% Готово
/settings/entities/:code/fields Field Builder Pilot 1 owner, admin — 100% Готово
/settings/entities/:code/forms Form Builder Target prototype owner, admin — 100% Готово
/settings/entities/:code/card Card Layout Builder Target prototype owner, admin — 100% Готово
/settings/entities/:code/views View Builder Target prototype owner, admin — 100% Готово
/entities/:entityCode Динамический список сущности Pilot 1 По ролям RBAC — 100% Готово
/entities/:entityCode/:recordId Динамическая карточка сущности Pilot 1 По ролям RBAC — 100% Готово
/forbidden (403) Доступ ограничен Pilot 1 Все роли — 100% Готово
/* (404) Страница не найдена Pilot 1 Все роли — 100% Готово

3. Матрица сущностей и metadata-функций

Сущность Категория Системная 39+ Field Types Form Builder Card Builder View Builder IndexedDB Store
contact CRM Да Да Да Да Да records_data
company CRM Да Да Да Да Да records_data
lead CRM Да Да Да Да Да records_data
deal CRM Да Да Да Да Да records_data
product Commerce Да Да Да Да Да records_data
category Commerce Да Да Да Да Да records_data
order Commerce Да Да Да Да Да records_data
warehouse Inventory Да Да Да Да Да records_data
stock_item Inventory Да Да Да Да Да records_data
employee Staff Да Да Да Да Да records_data
task Operations Да Да Да Да Да records_data
ticket Support Да Да Да Да Да records_data
Кастомные (vehicle, contract, fleet_car, ...) Пользовательские Нет Да Да Да Да records_data

4. Матрица соответствия UI-состояний (UI State Compliance)

Каждый ключевой экран приложения поддерживает полный спектр интерактивных состояний:

Модуль Loading (Skeleton) Empty State Populated State Error / Retry Permission Denied (403) Success Feedback Destructive Confirmation
Dashboard PageSkeleton Да (EmptyState) Да (Виджеты) ErrorBoundary RouteGuard Toast Modal
Operations (POS/KDS/Зал) PageSkeleton Да Да (Заказы/Столы) ErrorBoundary RouteGuard Toast + Чек Modal
CRM (Лиды/Сделки) PageSkeleton Да Да (Kanban/Таблица) ErrorBoundary RouteGuard Toast Modal
Sales (Заказы) PageSkeleton Да Да (Таблица заказов) ErrorBoundary RouteGuard Toast Modal
Inventory (Склад) PageSkeleton Да Да (Партии/Остатки) ErrorBoundary RouteGuard Toast Modal
Finance (Финансы) PageSkeleton Да Да (ДДС/P&L) ErrorBoundary RouteGuard Toast Modal
Employees (Смены) PageSkeleton Да Да (Планировщик) ErrorBoundary RouteGuard Toast Modal
Communications PageSkeleton Да Да (Чаты/Сообщения) ErrorBoundary RouteGuard Toast Modal
HelpDesk PageSkeleton Да Да (Тикеты/SLA) ErrorBoundary RouteGuard Toast Modal
Tasks PageSkeleton Да Да (Kanban) ErrorBoundary RouteGuard Toast Modal
CMS Builder PageSkeleton Да Да (Холст/Виджеты) ErrorBoundary RouteGuard Toast Modal
Configuration Engine PageSkeleton Да Да (Поля/Секции) ErrorBoundary RouteGuard Toast Modal

5. Матрица адаптивности устройств (Viewport Matrix)

Viewport Режим Разрешение Сайдбар Навигация Горизонтальный скролл Рамка устройства
Desktop 1440 × 900+ Полный (224px) / Свернутый (64px) Сайдбар + Topbar + Command Panel Отсутствует Нативный viewport браузера
Tablet Landscape 1180 × 800 Свернутый (64px) / Выдвижной Сайдбар + Topbar Отсутствует Скругленная рамка 24px
Tablet Portrait 820 × 1050 Выдвижной по кнопке Topbar + Выдвижное меню Отсутствует Скругленная рамка 28px
Mobile 420 × 880 (эмуляция 390×844) Скрыт Нижняя панель (BottomNav) + Topbar Отсутствует Скругленная рамка 36px

6. Результаты верификации (Команды и Exit Codes)

Команда Описание Результат Exit Code
npx tsc -b Проверка строгой типизации TypeScript 0 ошибок 0
npm run lint Проверка линтером Oxlint 0 ошибок (186 неблокирующих warning) 0
npm test Выполнение тестов Vitest 10 файлов тестов, 97 тестов успешно 0
npm run build Vite сборка оптимизированного продакшен бандла Успешно собрано за 12.42 сек 0

7. Screenshot Matrix (Desktop / Tablet / Mobile × Themes)

E2E тестовый контур Playwright (e2e/app.spec.ts) конфигурирует и фиксирует матрицу состояний 3 устройств × 3 цветовых темы (всего 9 визуальных снапшотов), сохраняемых в директорию e2e/screenshots/:

Устройство / Viewport Тема soft-light Тема light Тема dark Статус проверки
Desktop (1440 × 900) e2e/screenshots/desktop_soft-light.png e2e/screenshots/desktop_light.png e2e/screenshots/desktop_dark.png Без горизонтального переполнения (scrollWidth <= clientWidth), полный сайдбар, командная панель справа
Tablet (768 × 1024) e2e/screenshots/tablet_soft-light.png e2e/screenshots/tablet_light.png e2e/screenshots/tablet_dark.png Свернутый сайдбар (64px), авто-адаптация сетки виджетов в 2 колонки
Mobile (390 × 844) e2e/screenshots/mobile_soft-light.png e2e/screenshots/mobile_light.png e2e/screenshots/mobile_dark.png Сайдбар скрыт, отображается нижняя панель навигации (BottomNav), карточки в одну колонку

Все снимки подтверждают корректный контраст шрифтов Krona Design Tokens, отсутствие перекрытия плавающими модалками и отсутствие артефактов верстки.


8. Известные ограничения и что остаётся для backend-интеграции

Прототип построен в парадигме Frontend-First / Zero-Premature-Backend: прикладная логика валидации и расчетов полностью реализована на клиенте, а внешние инфраструктурные шлюзы эмулируются.

Для перехода к production-системе требуется подключить:

  1. Реальная фискализация чеков (54-ФЗ):

    • В прототипе: модальное окно предварительного просмотра кассового чека с номером ФД, ФПД, QR-кодом и симуляцией печати.
    • Для backend: интеграция с локальным драйвером ККТ (АТОЛ ККТ / Штрих-М / Эвотор) по локальному JSON-RPC протоколу или через облачный фискальный сервис (АТОЛ Онлайн, МойСклад).
  2. Омниканальные шлюзы сообщений и вебхуки:

    • В прототипе: симуляция входящих сообщений WhatsApp/Telegram с индикатором набора текста (typing indicator) и таймером ответа в CommunicationsModule.
    • Для backend: серверные Webhook endpoints для приема событий от Telegram Bot API, WhatsApp Business API (WABA), VK API и MAX Messenger; отправка через брокер очередей (RabbitMQ/Redis).
  3. Серверная многоарендность (Multi-tenancy) и аутентификация:

    • В прототипе: сессия эмулируется через useDemoStore (переключение ролей Владелец, Кассир, Повар и профилей бизнеса без перезагрузки страницы).
    • Для backend: защищенная аутентификация JWT (Access + Refresh токены в httpOnly cookies), Row Level Security (RLS) в PostgreSQL для изоляции данных между организациями (tenants) и филиалами.
  4. Инференс AI и оркестрация агентов:

    • В прототипе: интерактивный AiCenterModule с симуляцией пошаговых вызовов инструментов (tool calls) и кликабельными артефактами.
    • Для backend: подключение LLM-провайдеров через Server-Sent Events (SSE) для streaming токенов, векторная база данных (pgvector) для семантического поиска по базе знаний и RAG.
  5. Банковский эквайринг и СБП:

    • В прототипе: раздельная оплата (сплит: Наличные + Карта) с валидацией баланса суммы заказа.
    • Для backend: интеграция с платежными шлюзами (Сбербанк, Т-Банк, ЮKassa) с генерацией динамических QR-кодов СБП и холдированием средств.

9. Размеры модульных чанков сборки (Code Splitting)

Все маршруты изолированы через React lazy и динамический import():

dist/index.html                                 1.19 kB │ gzip:   0.58 kB
dist/assets/index.css                          48.41 kB │ gzip:   9.96 kB
dist/assets/AppsCatalogModule.js                2.29 kB │ gzip:   1.01 kB
dist/assets/SettingsModule.js                   6.65 kB │ gzip:   2.02 kB
dist/assets/DynamicFormRenderer.js              7.92 kB │ gzip:   2.78 kB
dist/assets/TasksModule.js                     11.39 kB │ gzip:   3.28 kB
dist/assets/CommunicationsModule.js            12.34 kB │ gzip:   3.99 kB
dist/assets/AutomationModule.js                12.90 kB │ gzip:   4.30 kB
dist/assets/HelpDeskModule.js                  14.18 kB │ gzip:   4.05 kB
dist/assets/MarketingModule.js                 15.85 kB │ gzip:   4.36 kB
dist/assets/EntityCatalog.js                   16.04 kB │ gzip:   4.67 kB
dist/assets/EmployeesModule.js                 16.57 kB │ gzip:   4.31 kB
dist/assets/InventoryModule.js                 16.83 kB │ gzip:   4.02 kB
dist/assets/FieldBuilder.js                    17.13 kB │ gzip:   4.99 kB
dist/assets/AiCenterModule.js                  17.40 kB │ gzip:   5.90 kB
dist/assets/ViewBuilder.js                     18.20 kB │ gzip:   5.41 kB
dist/assets/CardLayoutBuilder.js               18.24 kB │ gzip:   5.28 kB
dist/assets/FormBuilder.js                     20.68 kB │ gzip:   5.75 kB
dist/assets/CustomEntityPage.js                21.39 kB │ gzip:   6.08 kB
dist/assets/FinanceModule.js                   21.98 kB │ gzip:   5.51 kB
dist/assets/SalesModule.js                     22.10 kB │ gzip:   5.33 kB
dist/assets/DynamicDashboard.js                22.76 kB │ gzip:   5.17 kB
dist/assets/CmsModule.js                       25.95 kB │ gzip:   6.65 kB
dist/assets/AnalyticsModule.js                 27.57 kB │ gzip:   8.89 kB
dist/assets/Badge-Dp_BkCSE.js                  40.17 kB │ gzip:  13.56 kB
dist/assets/CrmModule.js                       51.25 kB │ gzip:  11.87 kB
dist/assets/OperationsModule.js                84.98 kB │ gzip:  17.37 kB
dist/assets/AreaChart.js (Recharts chunk)     355.42 kB │ gzip: 103.21 kB
dist/assets/index.js (Core Shell)             500.36 kB │ gzip: 147.05 kB

10. Итог готовности

Прототип krona-front полностью автономен, строго типизирован, стабилен, снабжен 97 модульными и интеграционными тестами и готов к демонстрации заказчику и последующей интеграции с серверным REST API.