26 KiB
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.
- 7 хранилищ:
- Реализованы 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-системе требуется подключить:
-
Реальная фискализация чеков (54-ФЗ):
- В прототипе: модальное окно предварительного просмотра кассового чека с номером ФД, ФПД, QR-кодом и симуляцией печати.
- Для backend: интеграция с локальным драйвером ККТ (АТОЛ ККТ / Штрих-М / Эвотор) по локальному JSON-RPC протоколу или через облачный фискальный сервис (АТОЛ Онлайн, МойСклад).
-
Омниканальные шлюзы сообщений и вебхуки:
- В прототипе: симуляция входящих сообщений WhatsApp/Telegram с индикатором набора текста (
typing indicator) и таймером ответа вCommunicationsModule. - Для backend: серверные Webhook endpoints для приема событий от Telegram Bot API, WhatsApp Business API (WABA), VK API и MAX Messenger; отправка через брокер очередей (RabbitMQ/Redis).
- В прототипе: симуляция входящих сообщений WhatsApp/Telegram с индикатором набора текста (
-
Серверная многоарендность (Multi-tenancy) и аутентификация:
- В прототипе: сессия эмулируется через
useDemoStore(переключение ролей Владелец, Кассир, Повар и профилей бизнеса без перезагрузки страницы). - Для backend: защищенная аутентификация JWT (Access + Refresh токены в httpOnly cookies), Row Level Security (RLS) в PostgreSQL для изоляции данных между организациями (tenants) и филиалами.
- В прототипе: сессия эмулируется через
-
Инференс AI и оркестрация агентов:
- В прототипе: интерактивный
AiCenterModuleс симуляцией пошаговых вызовов инструментов (tool calls) и кликабельными артефактами. - Для backend: подключение LLM-провайдеров через Server-Sent Events (SSE) для streaming токенов, векторная база данных (pgvector) для семантического поиска по базе знаний и RAG.
- В прототипе: интерактивный
-
Банковский эквайринг и СБП:
- В прототипе: раздельная оплата (сплит: Наличные + Карта) с валидацией баланса суммы заказа.
- Для 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.