Архитектурная документация программного обеспечения «Narmak ERP/CRM»
Для регистрации в Едином реестре российских программ (Минцифры) и Роспатенте
Наименование ПО: Narmak ERP/CRM
Класс ПО: Система управления ресурсами предприятия (ERP) / Система управления взаимоотношениями с клиентами (CRM)
Правообладатель: ООО «Нармак»
Версия документа: 1.0
Дата составления: 15 февраля 2026 г.
Содержание
- Общие сведения о программном обеспечении
- Функциональное назначение и область применения
- Архитектура системы
- 3.1. Контекстная диаграмма (C4 Level 1)
- 3.2. Диаграмма контейнеров (C4 Level 2)
- 3.3. Компонентная архитектура серверной части
- 3.4. Компонентная архитектура клиентской части
- 3.5. Диаграмма развёртывания
- 3.6. Диаграмма потоков данных
- 3.7. Схема аутентификации и авторизации
- 3.8. Схема асинхронной обработки
- Модульная структура и описание подсистем
- 4.1. Подсистемы серверной части (Backend)
- 4.2. Приложения клиентской части (Frontend)
- 4.3. Библиотеки клиентской части
- 4.4. Микросервисы
- Структура данных и модель предметной области
- 5.1. ER-диаграмма ядра системы
- 5.2. ER-диаграмма производственного модуля
- 5.3. ER-диаграмма складского учёта
- 5.4. ER-диаграмма управления кадрами
- 5.5. Перечень сущностей базы данных
- Средства защиты информации
- Технологический стек и системные требования
- API и интеграции
- Перечень функциональных модулей
1. Общие сведения о программном обеспечении
1.1. Наименование и назначение
Narmak ERP/CRM — комплексная информационная система управления ресурсами предприятия (ERP) и взаимоотношениями с контрагентами (CRM), предназначенная для автоматизации бизнес-процессов производственных и торговых предприятий.
1.2. Классификация по реестру
| Параметр | Значение |
|---|---|
| Класс ПО | Системы управления ресурсами предприятия и взаимоотношениями с контрагентами |
| Код ОКВЭД | 62.01 — Разработка компьютерного программного обеспечения |
| Коды ОКПД 2 | 62.01.29 — Оригиналы программного обеспечения прочего |
| Тип ПО | Прикладное программное обеспечение |
| Архитектура | Клиент-серверная, микросервисная |
| Модель предоставления | On-premise / SaaS |
1.3. Целевая аудитория
- Производственные предприятия пищевой промышленности
- Торговые компании с собственным складским хозяйством
- Предприятия с интеграцией в маркетплейсы (Wildberries, Ozon, Яндекс Маркет)
- Организации с потребностью в управлении персоналом, логистикой и финансами
1.4. Основные возможности
Система обеспечивает автоматизацию следующих бизнес-процессов:
- Управление документооборотом (заказы, поставки, реализация, инвентаризация)
- Управление производством (сменные графики, рецептуры, контроль качества, HACCP)
- Складской учёт (зонирование, перемещения, остатки, резервирование)
- Управление контрагентами (клиенты, поставщики, группировка, аналитика)
- Финансовый учёт (ДДС, бюджетирование, платёжные реестры, банковские операции)
- Управление транспортом (маршрутизация, экспедирование, палетная сборка)
- Интеграция с маркетплейсами (Wildberries, Ozon, Яндекс Маркет)
- Управление персоналом (подбор, обучение, KPI, зарплата, отпуска)
- Управление задачами (Kanban, Gantt, календарь событий, трекинг времени)
- Юридическое сопровождение (досье контрагентов, риск-скоринг, 115-ФЗ)
- Управление договорами (шаблоны, контроль сроков, обязательства)
- Техническое обслуживание оборудования (ТОиР, ППР, дефектные журналы)
- Система обучения персонала (LMS — тесты, вопросы, результаты)
- Контроль качества (QCheck — проверки поставок и производства)
- Управление организационной структурой (отделы, должности, штатное расписание)
2. Функциональное назначение и область применения
2.1. Функциональная декомпозиция
2.2. Роли пользователей
| Роль | Описание | Клиентское приложение |
|---|---|---|
| Менеджер | Управление заказами, документами, контрагентами | main-office |
| Бухгалтер | Финансовый учёт, платёжные реестры, ДДС | main-office |
| Руководитель производства | Управление сменами, рецептурами, выпуском | main-office |
| Складской работник | Приёмка, отгрузка, перемещения, инвентаризация | warehouse-worker |
| Кладовщик | Зонирование, остатки, комплектация | warehouse-worker |
| HR-специалист | Подбор, обучение, KPI | main-office |
| Юрист | Досье, договоры, риск-скоринг | main-office |
| Логист | Маршруты, доставка, экспедирование | main-office |
| Контрагент | Просмотр заказов, прайс-листы | counterparty-office |
| Администратор | Настройка системы, управление пользователями | main-office |
| Водитель/Экспедитор | Маршрутные листы | warehouse-worker |
| Бригадир | Управление сменами на складе | warehouse-worker |
3. Архитектура системы
3.1. Контекстная диаграмма (C4 Level 1 — System Context)
Диаграмма верхнего уровня показывает систему в контексте взаимодействия с пользователями и внешними системами.
3.2. Диаграмма контейнеров (C4 Level 2 — Container Diagram)
Детализация внутренних контейнеров (сервисов) системы.
3.3. Компонентная архитектура серверной части (Backend)
3.4. Компонентная архитектура клиентской части (Frontend)
3.5. Диаграмма развёртывания (Deployment Diagram)
3.6. Диаграмма потоков данных (Data Flow)
3.7. Схема аутентификации и авторизации
3.8. Схема асинхронной обработки (Celery)
4. Модульная структура и описание подсистем
4.1. Подсистемы серверной части (Backend — 40+ Django-приложений)
4.1.1. Ядро системы
| Модуль | Описание | Ключевые модели |
|---|---|---|
users | Управление пользователями. Кастомная модель пользователя с аутентификацией по номеру телефона. Паспортные данные, аватары, привязка к организациям. | User, Passport |
counterparty | Управление контрагентами (клиенты, поставщики). Группировка, банковские реквизиты, корректировки, ИНН/КПП/ОГРН. | CounterParty, GroupCounterParty, CounterPartyBankScore, CounterpartyAdjustment, LunchSupplier |
document | Центральный модуль документооборота. Документы с позициями, ассортимент, организации, производственные позиции, платёжные реестры. | Documents, Positions, Assortiment, AssortimentGroup, Organization, ManufacturePositions, Processing, Materials |
product | Каталог товаров с иерархическими категориями (MPTT). Наценки, правила ценообразования, SEO. | Product, Category, Markup, MarkupRules |
vocabulary | Справочники: склады, города, улицы, статусы заказов, способы доставки, типы оплаты. | Warehouse, City, Street, OrderStatus, DeliveryMethods, PayType |
4.1.2. Торговля и снабжение
| Модуль | Описание | Ключевые модели |
|---|---|---|
order | Управление заказами покупателей и поставщикам. Статусная модель, история изменений. | Order, OrderItem, Payment, Transaction, OrderStatusLog |
purchase | Управление закупками. Списки закупок, согласования. | Purchase, PurchaseList |
sale | Управление продажами. Купоны и скидки. | Cupon |
invoice | Управление счетами на оплату. | Invoice |
contracts | Управление договорами. Типы, статусы, обязательства, шаблоны, автопролонгация. | Contract, ContractType, ContractStatus, ContractObligation, ContractTemplate |
4.1.3. Складской учёт
| Модуль | Описание | Ключевые модели |
|---|---|---|
stock | Номенклатура, единицы измерения, комплекты, складские операции, изображения товаров. | Raw, Unuts, Kit, KitIteams, Operation, OperationPositions, Packaging, PackingSize, Image |
storage | Управление хранением на складе. | — |
warehouse_zones | Зонирование складов: зоны хранения, балансы, перемещения между зонами, резервирование. | StorageZone, ZoneBalance, ZoneMovement, ZoneReservation |
4.1.4. Производство
| Модуль | Описание | Ключевые модели |
|---|---|---|
manufacture | Управление производством: рабочие смены, табель, зарплата, виды деятельности, KPI, ведомости, отпуска, обеды. | WorkShift, ActualWorkShedule, Salary, VacationCalendar, WorkActivityType, WorkActivity, KPICatalog, KPIMetric, PaymentStatement |
haccp_journals | HACCP-журналы: жалобы, возвраты, контроль безопасности пищевой продукции. | ComplaintReturnJournal |
qcheck | Модуль контроля качества. | — |
plantmaintenance | Техническое обслуживание и ремонт: оборудование, техкарты, ППР, инспекции, дефектные журналы, наряды на работу. | Equipment, TechCard, PPRSchedule, RepairRequest, WorkOrder, InspectionPlan, DefectJournal |
4.1.5. Финансы
| Модуль | Описание | Ключевые модели |
|---|---|---|
finance | Финансовый учёт: счета, категории операций, финансовые операции. | Score, VocOperation, VocOperationCategory, OperationScore, Invoices |
payment | Обработка платежей. | Payments |
bank | Банковские операции: расчётные счета организаций, транзакции. | ScoreAccount, Transaction |
intercompany_settlements | Взаиморасчёты между юрлицами: балансы, общие платежи, услуги сотрудников. | IntercompanySettlement, IntercompanyBalance, SharedPaymentSettlement |
4.1.6. Управление кадрами
| Модуль | Описание | Ключевые модели |
|---|---|---|
ats | Система подбора персонала (ATS): вакансии, кандидаты, собеседования, статусы. | Vacancy, Candidate, Interview, InterviewQuestion |
lms | Система обучения (LMS): тесты, вопросы, варианты ответов, результаты. | Test, Question, Choice, TestResult, Answer |
employee_leads | CRM для HR: воронки, стадии, сделки, активности, автоматизация. | Pipeline, Stage, Deal, Activity, EmployeeLead |
employee_debt | Управление задолженностями сотрудников: программы, обязательства, графики платежей. | EmployeeDebtProgram, EmployeeDebtObligation, EmployeeDebtScheduleItem, EmployeeDebtPayment |
employee_private_office | Личный кабинет сотрудника. | — |
company_structure | Организационная структура: отделы, должности, штатное расписание, переводы, бюджеты подразделений. | Department, Position, CurrentDepartmentAssignment, StaffingScheduleDocument, TransferOperation |
4.1.7. Логистика
| Модуль | Описание | Ключевые модели |
|---|---|---|
tms | Управление транспортом (TMS): маршруты, точки доставки, транспорт, палеты, листы подбора. | Route, RoutePoint, DeliveryPoint, Transport, Pallet, PalletPositions, PickSheetsPosition |
marketplace | Интеграция с маркетплейсами: Wildberries, Ozon, Яндекс Маркет. Синхронизация товаров, заказов, статистики. | MarketPlaceShipment |
4.1.8. Коммуникации и управление проектами
| Модуль | Описание | Ключевые модели |
|---|---|---|
tasks | Управление задачами: проекты, задачи, комментарии, трекинг времени, сохранённые фильтры. | Project, IssueTask, IssueTaskComments, TimeCosts, SavedTaskFilter |
meeting | Управление совещаниями: типы, участники, повестка, протоколы. | Meeting, MeetingParticipant, MeetingAgendaItem, MeetingMinutes |
discussion | Обсуждения: сообщения с древовидной структурой, отметки о прочтении. | Message, MessageRead |
gantt | Диаграмма Ганта: задачи с зависимостями. | Task, Link |
telegram | Telegram-бот: конфигурация, уведомления, чаты. | BotConfig, TelegramNoteChatBot, AlertAction |
4.1.9. Юридический модуль
| Модуль | Описание | Ключевые модели |
|---|---|---|
legal_dossier | Юридическое досье контрагентов: проверки, риск-скоринг, заключения, версионирование, чек-листы, верификация через внешние системы. Соответствие 115-ФЗ. | LegalConclusion, ContractAnalysis, RiskAssessment, CheckCriteria, DocumentChecklist, Verification, LegalConclusionVersion |
4.1.10. Прочие модули
| Модуль | Описание | Ключевые модели |
|---|---|---|
content | Управление контентом: статьи, теги, слайдеры. | Content, Tag, Slider |
cart | Корзина (для B2B/сайта). | — |
reports | Генерация отчётов. | — |
notifications | Система уведомлений: события, входящие уведомления. | NotificationEvent, NotificationInbox |
helpers | Утилиты: миксины моделей, DaData, глобальный поиск, PDF-генерация, SQL-агрегаты. | — |
auditlog | Журнал аудита: отслеживание изменений моделей. | LogEntry |
4.2. Приложения клиентской части (Frontend — 6 Angular-приложений)
4.3. Библиотеки клиентской части (30+ Nx-библиотек)
| Библиотека | Тип | Описание |
|---|---|---|
sdk | SDK | Автогенерируемый клиент основного REST API из OpenAPI-спецификации |
sdk-counterparty | SDK | Автогенерируемый клиент API контрагентов |
sdk-wb | SDK | Клиент Wildberries API |
comunda-sdk | SDK | Клиент Camunda BPM API |
squidex | SDK | Клиент Squidex CMS API |
main-state | State | Akita-хранилище: MainStore, DocumentStore, фильтры |
shared/state | State | CurrentUserStore, текущая сессия |
layout | UI | Базовые компоненты макета: Navbar, Sidebar, Footer, MainMenu |
core | UI | Директивы (HasPermission, WindowOpen), пайпы (StripHtml, IsImage) |
formly-fields | UI | 18+ кастомных полей: Calendar, Dropdown, MultiSelect, DaData, Editor |
forms | UI | Определения динамических форм (Formly JSON Schema) |
assets | UI | SCSS-стили, изображения, иконки |
contact-components | Feature | Компоненты управления контактами |
modules/legal_dossier | Feature | Модуль юридического досье |
modules/employee_debt | Feature | Модуль задолженностей сотрудников |
q-check | Feature | Модуль контроля качества |
pdf-invoice | Feature | Обработка PDF-счетов |
file-attachment | Feature | Управление файловыми вложениями |
task | Feature | Компоненты управления задачами |
manufacture | Feature | Производственные компоненты (зарплатный отчёт и др.) |
shared | Utility | Guards, Interceptors, AuthService, InitDataService, StatusService |
environments | Utility | Конфигурация окружений (dev, staging, production) |
dadata | Utility | Интеграция DaData: автодополнение адресов |
websocket | Utility | WebSocket-клиент для real-time обновлений |
yandex-map | Utility | Интеграция Яндекс Карт |
permissions | Utility | Сервис проверки разрешений |
pages | Utility | Общие страницы: авторизация, ошибки |
derective | Utility | Дополнительные Angular-директивы |
4.4. Микросервисы
5. Структура данных и модель предметной области
5.1. ER-диаграмма ядра системы
5.2. ER-диаграмма производственного модуля
5.3. ER-диаграмма складского учёта
5.4. ER-диаграмма управления кадрами
5.5. Перечень сущностей базы данных
Общее количество моделей: ~160+
| Домен | Количество моделей | Ключевые таблицы |
|---|---|---|
| Ядро (users, counterparty, vocabulary) | ~15 | user, counterparty, warehouse, city, order_status |
| Документооборот (document) | ~25 | documents, positions, assortiment, organization, processing, manufacture_positions |
| Производство (manufacture) | ~12 | work_shift, actual_work_shedule, salary, vacation_calendar, kpi_metric |
| Складской учёт (stock, warehouse_zones) | ~12 | raw, kit, operation, storage_zone, zone_balance |
| Торговля (order, purchase, sale, invoice) | ~10 | order, order_item, purchase, invoice |
| Финансы (finance, payment, bank) | ~10 | score, operation_score, score_account, transaction |
| Кадры (ats, lms, company_structure, employee_*) | ~30 | vacancy, candidate, test, department, position, deal |
| Логистика (tms, marketplace) | ~10 | route, route_point, transport, pallet, delivery_point |
| Договоры и юридика (contracts, legal_dossier) | ~15 | contract, legal_conclusion, risk_assessment, verification |
| Коммуникации (tasks, meeting, discussion, gantt) | ~12 | issue_task, meeting, message, gantt_task |
| ТОиР (plantmaintenance) | ~15 | equipment, tech_card, ppr_schedule, repair_request, work_order |
| Прочие (content, notifications, auditlog) | ~8 | content, notification_inbox, log_entry |
6. Средства защиты информации
6.1. Аутентификация
| Механизм | Описание |
|---|---|
| Token Authentication | Каждый пользователь получает уникальный токен при входе. Токен передаётся в заголовке Authorization: Token {token} |
| Пользовательская модель | Кастомная модель User с аутентификацией по номеру телефона |
| Валидация паролей | Django Password Validators: минимальная длина, сложность, запрет часто используемых паролей |
| Хэширование паролей | PBKDF2 с SHA-256 (Django по умолчанию) |
6.2. Авторизация
| Механизм | Описание |
|---|---|
| Ролевая модель | Django Groups: Менеджер, Бухгалтер, Кладовщик, HR, Юрист, Водитель и др. |
| Гранулярные разрешения | JSON-поле permissions_access на модели User |
| Контроль по организациям | M2M-связь organization_access — доступ только к данным разрешённых организаций |
| Frontend Guards | Angular Route Guards: AuthGuard, AccountantGuard, WarehouseWorkerGuard, LawyerGuard и др. |
| API Permissions | DRF IsAuthenticated по умолчанию для всех endpoint'ов |
6.3. Защита передачи данных
| Механизм | Описание |
|---|---|
| HTTPS/TLS | Шифрование трафика между клиентом и сервером |
| WSS | WebSocket Secure для real-time соединений |
| CORS | Настроенные django-cors-headers — ограничение источников запросов |
| CSRF | Управление CSRF-токенами (отключён для API, включён для форм) |
6.4. Защита данных
| Механизм | Описание |
|---|---|
| Журнал аудита | django-auditlog — полное логирование изменений моделей (кто, когда, что изменил) |
| История моделей | django-simple-history — хранение всех версий записей |
| Отслеживание авторства | django-userforeignkey — автоматическая запись создателя и редактора |
| Резервное копирование | pg_backup / pg_restore — management-команды для PostgreSQL |
| Пул соединений | PgBouncer — защита БД от избыточных подключений |
6.5. Безопасность инфраструктуры
| Механизм | Описание |
|---|---|
| Контейнеризация | Docker — изоляция сервисов в контейнерах |
| Reverse Proxy | Nginx — скрытие внутренней инфраструктуры |
| Объектное хранилище | Selectel Cloud Storage — отдельное хранилище файлов |
| Connection Pooling | PgBouncer — контроль подключений к БД |
7. Технологический стек и системные требования
7.1. Серверная часть (Backend)
| Компонент | Технология | Версия | Назначение |
|---|---|---|---|
| Язык программирования | Python | 3.13 | Основной язык разработки |
| Веб-фреймворк | Django | 2.2.5 → 5.1.4 | MVC-фреймворк |
| REST API | Django REST Framework | 3.10.3 | Построение REST API |
| ASGI-сервер | Gunicorn + Uvicorn | Latest | HTTP-сервер приложений |
| WebSocket-сервер | Daphne + Django Channels | Latest | Real-time коммуникации |
| Очередь задач | Celery | 5.1.2 | Асинхронная обработка |
| СУБД | PostgreSQL | 13 | Реляционная база данных |
| Кэш / Брокер | Redis | Latest | In-memory хранилище |
| Файловое хранилище | Selectel Cloud Storage | — | Объектное хранилище |
| Connection Pool | PgBouncer | Latest | Пул соединений БД |
| Контейнеризация | Docker, Docker Compose | Latest | Развёртывание |
| API-документация | drf-yasg (Swagger) | Latest | OpenAPI-спецификация |
| Иерархические данные | django-mptt | Latest | Деревья категорий |
| Аудит | django-auditlog, django-simple-history | Latest | Отслеживание изменений |
| PDF-генерация | xhtml2pdf, WeasyPrint, pdfkit | Latest | Формирование документов |
| OCR | Tesseract | Latest | Распознавание документов |
| BPM | Camunda | 7.x | Бизнес-процессы |
7.2. Клиентская часть (Frontend)
| Компонент | Технология | Версия | Назначение |
|---|---|---|---|
| Язык программирования | TypeScript | 5.4.2 | Основной язык разработки |
| Фреймворк | Angular | 18.0.0 | SPA-фреймворк |
| Монорепозиторий | Nx | 22.4.0 | Управление проектами |
| UI-библиотека (main-office) | PrimeNG | 17.18.15 | Компоненты UI |
| UI-библиотека (warehouse) | Taiga UI | 3.95.2 | Мобильные компоненты |
| State Management | Akita | 8.0.1 | Управление состоянием |
| Динамические формы | @ngx-formly | 6.3.1 | JSON-формы |
| Графики | ApexCharts, Chart.js | Latest | Визуализация данных |
| Карты | Яндекс Карты | Latest | Геолокация |
| Текстовый редактор | Quill, TinyMCE | Latest | Rich-text |
| BPMN | camunda-bpmn-js | 5.5.1 | Визуализация процессов |
| PWA | @angular/service-worker | 18.0.0 | Offline-режим |
| SSR | Angular Universal | 18.0.0 | Server-Side Rendering |
| Таблицы | xlsx | 0.18.5 | Импорт/экспорт Excel |
| CSS-фреймворк | Bootstrap | 5.2.3 | Адаптивная вёрстка |
| Утилитарный CSS | Tailwind CSS | 3.4.11 | Utility-first CSS |
| Сетка/Dashboard | GridStack | 12.3.0 | Drag-and-drop виджеты |
7.3. Системные требования
Серверная часть
| Параметр | Минимальные | Рекомендуемые |
|---|---|---|
| CPU | 4 ядра | 8+ ядер |
| RAM | 8 ГБ | 16+ ГБ |
| Диск (ОС + приложение) | 20 ГБ SSD | 50+ ГБ SSD |
| Диск (БД) | 50 ГБ SSD | 200+ ГБ SSD |
| ОС | Linux (Ubuntu 22.04+, Debian 12+) | Linux (Ubuntu 24.04) |
| Docker | 24.0+ | Latest |
| Docker Compose | 2.20+ | Latest |
Клиентская часть (Рабочее место)
| Параметр | Минимальные | Рекомендуемые |
|---|---|---|
| Браузер | Chrome 90+, Firefox 90+, Safari 14+, Edge 90+ | Chrome Latest, Firefox Latest |
| Экран | 1366×768 | 1920×1080+ |
| Интернет | 5 Мбит/с | 20+ Мбит/с |
| Мобильные устройства | Android 10+ / iOS 14+ (для warehouse-worker PWA) | Android 13+ / iOS 17+ |
8. API и интеграции
8.1. REST API системы
| API | Базовый URL | Описание | Аутентификация |
|---|---|---|---|
| Основное API v2 | /api/v2/ | Полнофункциональный REST API для всех модулей | Token |
| API контрагентов v1 | /c-api/v1/ | Упрощённый API для портала контрагентов | Token |
| Swagger UI | /swagger/ | Интерактивная документация OpenAPI | — |
8.2. Основные endpoint'ы API v2
| Группа | Endpoint | Методы | Описание |
|---|---|---|---|
| Аутентификация | /api/v2/api-token-auth/ | POST | Получение токена |
| Пользователи | /api/v2/current-user/ | GET | Текущий пользователь |
| Документы | /api/v2/documents/ | CRUD | Управление документами |
| Позиции | /api/v2/positions/ | CRUD | Позиции документов |
| Контрагенты | /api/v2/counterparties/ | CRUD | Управление контрагентами |
| Организации | /api/v2/organization/ | CRUD | Организации |
| Ассортимент | /api/v2/assortiment/ | CRUD | Товары / Номенклатура |
| Производство | /api/v2/manufacture-positions/ | CRUD | Производственные позиции |
| Задачи | /api/v2/tasks/ | CRUD | Управление задачами |
| Финансы | /api/v2/reports/ | GET | Финансовые отчёты |
| TMS | /api/v2/tms/ | CRUD | Логистика |
| Маркетплейсы | /api/v2/market-place/ | CRUD | WB, Ozon |
| Договоры | /api/v2/contracts/ | CRUD | Договоры |
| Юр. досье | /api/v2/legal-dossier/ | CRUD | Юридический модуль |
| ATS | /api/v2/ats/ | CRUD | Подбор персонала |
| LMS | /api/v2/lms/ | CRUD | Обучение |
| ТОиР | /api/v2/plant-maintenance/ | CRUD | Обслуживание оборудования |
| Файлы | /api/v2/files/ | CRUD | Файловые вложения |
| Поиск | /api/v2/g-search/ | GET | Глобальный поиск |
8.3. Внешние интеграции
8.4. Протоколы интеграций
| Внешняя система | Протокол | Направление | Частота |
|---|---|---|---|
| Wildberries | HTTPS REST API | Двунаправленная | По расписанию (Celery) |
| Ozon | HTTPS REST API | Двунаправленная | По расписанию (Celery) |
| Яндекс Маркет | HTTPS REST API | Двунаправленная | По расписанию (Celery) |
| DaData | HTTPS REST API | Запрос-ответ | По запросу пользователя |
| ЦБ РФ | HTTPS | Получение данных | Кэш 12 часов |
| МойСклад | HTTPS REST API | Двунаправленная | По расписанию (Celery) |
| Telegram | HTTPS Bot API | Отправка | По событиям |
| Яндекс SMTP | SMTP/TLS | Отправка | По событиям |
| Mattermost | HTTPS Webhook | Отправка | По событиям |
| Camunda BPM | HTTPS REST API | Двунаправленная | По запросу |
9. Перечень функциональных модулей
Сводная таблица функциональных модулей ПО «Narmak ERP/CRM»
| № | Модуль | Подсистема | Количество моделей данных | Количество API-endpoint'ов | Celery-задачи |
|---|---|---|---|---|---|
| 1 | Управление пользователями | Ядро | 2 | 3 | — |
| 2 | Управление контрагентами | Ядро | 4 | 8 | 4 |
| 3 | Документооборот | Ядро | 25+ | 30+ | 18 |
| 4 | Товары и категории | Ядро | 4 | 4 | — |
| 5 | Справочники | Ядро | 8 | 2 | — |
| 6 | Заказы | Торговля | 5 | 4 | — |
| 7 | Закупки | Торговля | 2 | 3 | — |
| 8 | Продажи | Торговля | 1 | 2 | — |
| 9 | Счета | Торговля | 1 | 2 | — |
| 10 | Договоры | Торговля | 5 | 4 | 7 |
| 11 | Номенклатура и единицы | Склад | 10 | 6 | — |
| 12 | Зонирование склада | Склад | 4 | 4 | — |
| 13 | Производство и смены | Производство | 12 | 10 | 1 |
| 14 | HACCP-журналы | Производство | 1 | 2 | — |
| 15 | Контроль качества | Производство | — | 2 | — |
| 16 | ТОиР оборудования | Производство | 15 | 8 | — |
| 17 | Финансовый учёт | Финансы | 5 | 6 | — |
| 18 | Платежи | Финансы | 1 | 2 | — |
| 19 | Банковские операции | Финансы | 2 | 4 | 1 |
| 20 | Взаиморасчёты | Финансы | 6 | 4 | — |
| 21 | Подбор персонала (ATS) | Кадры | 5 | 6 | 8 |
| 22 | Обучение (LMS) | Кадры | 5 | 4 | — |
| 23 | HR CRM (Лиды) | Кадры | 8 | 6 | 2 |
| 24 | Долги сотрудников | Кадры | 4 | 4 | — |
| 25 | Оргструктура | Кадры | 12 | 8 | — |
| 26 | Логистика (TMS) | Логистика | 8 | 8 | — |
| 27 | Маркетплейсы | Логистика | 1 | 4 | 2 |
| 28 | Задачи и проекты | Коммуникации | 6 | 6 | — |
| 29 | Совещания | Коммуникации | 4 | 4 | 6 |
| 30 | Обсуждения | Коммуникации | 2 | 2 | — |
| 31 | Диаграмма Ганта | Коммуникации | 2 | 2 | — |
| 32 | Telegram-бот | Коммуникации | 3 | 2 | — |
| 33 | Юридическое досье | Юридический | 10 | 6 | — |
| 34 | Контент (CMS) | Прочие | 3 | 2 | — |
| 35 | Уведомления | Прочие | 2 | 2 | — |
| 36 | Аудит | Инфраструктура | 1 | 1 | — |
| Итого | 36 модулей | 10 подсистем | ~160+ моделей | ~180+ endpoint'ов | 49 задач |
Приложение А. Количественные показатели ПО
| Показатель | Значение |
|---|---|
| Серверных модулей (Django apps) | 40+ |
| Клиентских приложений (Angular) | 6 |
| Клиентских библиотек (Nx libs) | 30+ |
| Моделей базы данных | ~160+ |
| REST API endpoint'ов | ~180+ |
| Celery фоновых задач | 49 |
| Management-команд | 156 |
| Angular-компонентов | 377+ (только main-office) |
| Формульных полей (Formly) | 18+ кастомных типов |
| Микросервисов | 6 |
| Внешних интеграций | 10+ |
| npm-зависимостей (production) | 156 |
| Python-зависимостей | 80+ |
Приложение Б. Соответствие требованиям Минцифры
| Требование | Статус | Примечание |
|---|---|---|
| Программа является результатом интеллектуальной деятельности | ✅ | Собственная разработка |
| Правообладатель — российское юридическое лицо | ✅ | ООО «Нармак» |
| Нет принудительных обновлений из иностранных источников | ✅ | Self-hosted, on-premise |
| Информация не передаётся за рубеж без согласия | ✅ | Данные хранятся на серверах в РФ |
| Техническая поддержка осуществляется на территории РФ | ✅ | Собственная команда |
| Не контролируется иностранными юридическими/физическими лицами | ✅ | 100% российское владение |
| Используемые СУБД совместимы с российскими ОС | ✅ | PostgreSQL, Redis — кроссплатформенные |
| Документация на русском языке | ✅ | VitePress-документация, ADR |
Приложение В. Классификация по ОКПД 2
| Код ОКПД 2 | Наименование |
|---|---|
| 62.01.29 | Оригиналы программного обеспечения прочего |
| 62.02 | Деятельность консультативная и работы в области компьютерных технологий |
| 63.11.11 | Услуги по обработке данных |
| 63.11.12 | Услуги по размещению приложений |
Документ подготовлен для целей государственной регистрации программы для ЭВМ в Едином реестре российских программ для электронных вычислительных машин и баз данных (Минцифры РФ) и регистрации в Федеральной службе по интеллектуальной собственности (Роспатент).