Skip to content

Обзор архитектуры ПО Narmak

Краткий визуальный обзор архитектуры, полученный на основе анализа кодовой базы (backend: narmak_v2, frontend: narmak-nx-angular-main). Подробное описание — в architecture-registration.md.


1. Общая схема системы

Система построена по клиент-серверной архитектуре: несколько Angular-приложений общаются с единым Django REST API; часть задач выполняется асинхронно (Celery) и через внешние сервисы.


2. Backend: структура Django (narmak_v2)

Модульный монолит: приложения в app/ сгруппированы по доменам/фичам. Отдельного слоя репозиториев нет — доступ к данным через модели и сервисы.


3. Backend: маршрутизация API v2

Префиксы путей из narmak/api_url_v2.py: включения по приложениям и регистрация ViewSet в общем роутере.


4. Frontend: структура Nx workspace (narmak-nx-angular-main)

Несколько приложений и общие библиотеки; main-office — основное рабочее место с feature-based маршрутизацией.


5. Frontend: маршруты main-office (lazy-loaded фичи)

Маршруты из app-routing.module.ts: базовый layout с AuthGuard, дочерние пути загружаются лениво.


6. Поток данных: от клиента к БД

Упрощённая последовательность: клиент → Nginx → Django → сервис/модели → PostgreSQL; асинхронные задачи — через Celery и Redis.


7. Паттерны в коде (примеры)

ПаттернГде используется
Strategyapp/document/service/related_document/strategies.py — перенос позиций между документами (SupplyDemandTransferStrategy, ProcessingOrderTransferStrategy и др.)
Facadeapp/document/service/related_document/creator.pyRelatedDocumentCreatorService скрывает создание связанного документа и выбор стратегии
Router + ViewSetDRF SimpleRouter в api_url_v2.py — регистрация ресурсов API
Service layerdocument, manufacture, company_structure, legal_dossier, warehouse_zones, employee_debt, qcheck

8. Технологический стек (кратко)

СлойТехнологии
BackendPython 3.10+, Django 5.1, DRF, Celery, Channels (Daphne), Redis, PostgreSQL
FrontendAngular 18, Nx 22, PrimeNG, Taiga UI, Akita, Formly
APIREST (api/v2), Token Auth, drf-yasg (Swagger)
ИнфраDocker (web, celery, redis, gotenberg, pgbouncer), Nginx
ИнтеграцииDaData, Wildberries, Ozon, Telegram, Gotenberg (PDF)

Связанные документы

  • architecture-registration.md — полная архитектурная документация (C4, развёртывание, безопасность, модули).
  • PROJECT-EVOLUTION.md — история развития проекта по кварталам.
  • adr/ — архитектурные решения (ADR).