| e2e | ||
| public | ||
| src | ||
| .gitignore | ||
| .oxlintrc.json | ||
| FEATURE-COVERAGE.md | ||
| FRONTEND-COMPLETION-TASK-FOR-AGY.md | ||
| FRONTEND-REMEDIATION-TASK-FOR-AGY.md | ||
| index.html | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.ts | ||
| postcss.config.js | ||
| README.md | ||
| tailwind.config.js | ||
| tsconfig.app.json | ||
| tsconfig.app.tsbuildinfo | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
Krona Universal Business OS — Interactive Frontend Prototype
Автономный интерактивный референс-прототип универсальной бизнес-экосистемы «Крона» (Krona Business Platform)
Разработан в соответствии с нормативными спецификациямиochenstarik/business-platform.
1. Назначение платформы
Проект представляет собой полностью интерактивный frontend-прототип операционной системы для бизнеса (Universal Business OS). Он позволяет владельцу бизнеса, топ-менеджменту, разработчикам и дизайнерам пройти по всем ключевым сценариям продукта без подключения реального бэкенда:
- Переключать отраслевые бизнес-профили (Ресторан Зал+Доставка, Дарккитчен, Ритейл, Автомойка/СТО, Салон красоты, Опт B2B);
- Переключать ролевую модель (10 системных ролей RBAC от Владельца до Кассира, Повара и Курьера);
- Использовать полнофункциональный Configuration Engine: создавать пользовательские сущности, добавлять типизированные поля (39+ типов), конструировать формы, карточки и представления;
- Запускать сквозные бизнес-потоки Pilot 1 (BF-01: Лид → Контакт → Сделка → Заказ; BF-02: Заказ → Резерв → Оплата → Отгрузка);
- Работать с целевыми модулями экосистемы (POS, KDS, Карта залов, Склад, HelpDesk, Омниканальные чаты, Задачи, CMS Page Builder, Маркетинг, Автоматизации, Аналитика, AI Center) с честной маркировкой зрелости компонентов (
Pilot 1,Target prototype,Demo only); - Сохранять состояние в локальной базе IndexedDB с версионированием, экспортом/импортом снапшотов и сбросом демо;
- Тестировать интерфейс в эмуляторе адаптивности: Desktop (1440×900), Tablet Landscape (1180×800), Tablet Portrait (820×1050), Mobile (420×880).
2. Быстрый старт
Требования
- Node.js >= 18.x
- npm >= 9.x
Команды разработки
# Установка зависимостей
npm install
# Запуск dev-сервера (http://localhost:5173)
npm run dev
# Проверка строгой типизации TypeScript
npx tsc -b
# Проверка линтером Oxlint
npm run lint
# Запуск автоматизированных тестов Vitest (85 тестов)
npm test
# Запуск тестов в режиме наблюдения
npm run test:watch
# Сборка оптимизированного production bundle
npm run build
3. Архитектура слоев
Проект структурирован строго по методологии FSD-like / Layered Architecture:
src/
├── app/ # Инициализация приложения, провайдеры, роутер, shell, guards
│ ├── guards/ # RouteGuard (RBAC + Capability + State Override)
│ ├── layouts/ # AppShell (Desktop / Tablet / Mobile адаптивный фрейм)
│ ├── providers/ # ErrorBoundary, QueryClientProvider, ToastProvider
│ ├── router/ # React Router 6 с code-splitting для каждого модуля
│ └── shell/ # Sidebar, Topbar, BottomNav, CommandPalette (Ctrl+K), AI Drawer
├── core/ # Фундаментальные реестры платформы
│ ├── capabilities/ # Реестр возможностей бизнеса (CRM, POS, KDS, Dining и т.д.)
│ ├── modules/ # Реестр 17 системных модулей платформы
│ ├── permissions/ # 10 ролей RBAC с матрицей доступных разделов
│ ├── profiles/ # 6 преднастроенных профилей бизнеса с отраслевой терминологией
│ └── theme/ # Семантические токены Krona (Green, Gold, Surface)
├── entities/ # Типы и контракты доменных сущностей (Contact, Deal, Order...)
├── features/ # Модули прикладной функциональности
│ ├── ai/ # AI Center (симуляция оркестратора, мультиагентные промпты)
│ ├── analytics/ # Аналитика (KPIs, динамические периоды, ABC-анализ)
│ ├── apps/ # Каталог расширений и интеграций
│ ├── automation/ # Конструктор бизнес-процессов с логом тестирования
│ ├── cms/ # Визуальный Page Builder (6 типов виджетов, JSON-экспорт)
│ ├── communications/ # Омниканальный Inbox (TG, WA, MAX, автоответчик)
│ ├── crm/ # CRM 360 (Лиды, Контакты, Компании, Сделки Kanban)
│ ├── dashboard/ # Динамический дашборд с виджетами под профиль бизнеса
│ ├── employees/ # Персонал и планировщик смен с контролем >12ч
│ ├── finance/ # Финансы (ДДС, P&L, статьи расходов, кассовые смены)
│ ├── helpdesk/ # Служба поддержки (тикеты, SLA таймеры, публичные/внутренние заметки)
│ ├── inventory/ # Складской учет (остатки, партии, списания, оприходования)
│ ├── marketing/ # Маркетинговые кампании и конструктор сегментов
│ ├── metadata/ # DynamicFormRenderer, DynamicCardRenderer, FieldRenderer
│ ├── operations/ # Операции (POS касса, KDS дисплей кухни, Столы/Брони)
│ ├── sales/ # Продажи и заказы (реестр заказов, статусы исполнения)
│ ├── settings/ # Настройки платформы и Configuration Engine
│ └── tasks/ # Задачи (Kanban доска, чек-листы, комментарии)
├── services/ # Сервисный слой абстракций и контрактов
│ ├── contracts/ # TypeScript интерфейсы для всех бизнес-сервисов
│ ├── mock/ # Репозитории с имитацией latency, validation, audit log
│ └── storage/ # Версионированная IndexedDB (7 stores, snapshots, reset)
├── shared/ # Библиотека переиспользуемых компонентов и утилит
│ ├── components/ # Базовые контролы (Button, Input, Select, Badge, Drawer, Modal)
│ ├── lib/ # ULID генератор, форматирование валюты/дат, debounce
│ └── ui/ # MaturityBadge, ErrorBoundary, Skeleton, Toast
└── stores/ # Zustand хранилища для UI и Demo-состояния
├── demo.ts # Demo Controls (профиль, роль, ошибки, часы, latency)
├── navigation.ts # Состояние мобильного меню и аккордеонов
└── theme.ts # Переключение Light / Soft-Light / Dark c persistence
4. Configuration Engine — Конструктор платформы
Раздел Настройки → Сущности (/settings/entities) представляет собой полноценный рабочий no-code конструктор платформы:
4.1 Каталог сущностей
- Отображение системных (
contact,company,lead,deal,order,product,warehouse,task,employee,ticket) и кастомных сущностей; - Создание новой сущности: код, названия (ед./мн. число), иконка, цвет, автонумерация, категория;
- Созданные кастомные сущности моментально регистрируются в боковом меню (Sidebar), Command Palette (Ctrl+K) и получают маршруты
/entities/:codeс рабочим списком и карточкой.
4.2 Field Builder (Редактор полей)
- Поддержка полного реестра типов (39+ типов из спецификации
docs/52-FIELD-TYPES-REFERENCE.md):- Примитивные:
text,long_text,rich_text,integer,decimal,money,percentage,boolean,date,datetime,time; - Перечисления:
select,multi_select,radio,checkbox_group,status,rating; - Контакты и медиа:
phone,email,url,address,location,file,image,color; - Отношения и связи:
entity_relation,one_to_one,one_to_many,many_to_many,user,employee,customer,product; - Вычисляемые:
formula,calculated,autonumber,json;
- Примитивные:
- Настройки поля: label, machine name, required, unique, read-only, hidden, searchable, filterable, default value;
- Редактор списка вариантов (options) с возможностью назначения цвета и архивации значений;
- Защита системных инвариантов: системные поля невозможно удалить или несовместимо изменить.
4.3 Form Builder (Конструктор форм)
- Визуальный drag-and-drop редактор форм создания и редактирования;
- Палитра доступных полей, холст с секциями, колонками и вкладками;
- Настройка параметров каждого блока в правой инспектор-панели;
- Переключение адаптивного предпросмотра (Desktop / Tablet / Mobile).
4.4 Card Layout Builder (Конструктор карточки записи)
- Модульная сборка карточки: заголовок, блок полей, вкладки, связанные списки, таймлайн активности, задачи, заметки, аудит;
- Настройка первичных и вторичных полей заголовка;
- Предпросмотр на реальных demo-данных.
4.5 View Builder (Конструктор представлений / таблиц)
- Выбор колонок из всех доступных системных и кастомных полей;
- Drag-and-drop порядка колонок, ширина, закрепление (pinned), сортировка;
- Конструктор быстрых фильтров.
5. Сквозные сценарии Pilot 1
Сценарий BF-01: CRM Deal → Order
- Входящий лид регистрируется в CRM с контактами и суммой.
- Лид конвертируется в Контакт и связанную Сделку.
- Сделка перемещается по стадиям Kanban (Квалификация → КП → Переговоры → Успешно / Won).
- При переходе в
Wonавтоматически формируется коммерческий Заказ в модуле Продаж со спецификацией товаров и расчетом сумм.
Сценарий BF-02: Order Lifecycle (Confirm → Reserve → Pay → Ship)
- Черновик заказа подтверждается оператором (
Confirm). - На складе автоматически создается резерв остатка товара (
Reservation). - Принимается оплата (наличные, карта или сплит) — в модуле Финансы формируется проводка ДДС (Cash-flow).
- Оформляется отгрузка (
Shipment) — физический остаток на складе списывается, резерв снимается, статус заказа переходит вCompleted.
6. Маркировка зрелости функций (Maturity Badges)
В шапке каждого экрана расположен компонент <MaturityBadge />, четко информирующий пользователя об уровне готовности:
| Бейдж | Уровень | Описание | Примеры модулей |
|---|---|---|---|
Pilot 1 (Зеленый) |
Готово к пилоту | Полноценная архитектура данных, сквозные сценарии, валидация, проводки | Dashboard, CRM, Sales, Inventory, Finance, Configuration Engine, Settings |
Target prototype (Синий) |
Целевой прототип | Интерактивный макет с локальным состоянием для согласования продуктового UX | Operations (POS, KDS, Зал), Employees, Communications, HelpDesk, Tasks, CMS, Marketing, Automation, Analytics |
Demo only (Фиолетовый) |
Демонстрация концепта | Эмуляция сложных процессов (AI-оркестрация, сторонний маркетплейс) | AI Center, Apps Catalog |
7. Демо-контролы и управление состоянием
В верхней панели (Topbar) и правой панели Command Panel доступны средства управления прототипом:
- Бизнес-профили: Ресторан Зал+Доставка, Ресторан Доставка, Ритейл, Автомойка/СТО, Салон красоты, Опт B2B. Переключение мгновенно адаптирует состав меню, терминологию и виджеты.
- Роли RBAC: 10 ролей с реальным контролем прав доступа через
RouteGuard. - State Override: Normal, Loading (скелетон), Empty, Error (
ErrorBoundary), Permission Denied (403 Forbidden). - Снимки базы данных: Экспорт снимка базы в JSON, восстановление из JSON-файла, сброс до эталонного seed-состояния.
8. Руководство по интеграции с Backend (REST API)
Архитектура сервисов полностью изолирует компоненты от хранилища:
- Все обращения к данным происходят через хуки (
useOrders,useCrm,useInventory,useMetadata) и типизированные контракты вsrc/services/contracts/. - Текущая реализация использует репозитории в
src/services/mock/поверх IndexedDB. - Для перехода на реальный backend:
- Реализовать класс
ApiCommerceService implements ICommerceServiceс методамиfetch() / axios; - Подставить его в экспорт сервиса
src/services/mock/index.ts; - UI-компоненты продолжат работать без изменений.
- Реализовать класс
9. Лицензия и авторство
Разработано для платформы «Крона». Все права защищены.