double image first part
double image second part
Собственная разработка
КОНСТРУКТОР ОТЧЕТОВ КИТ

КОНСТРУКТОР ОТЧЕТОВ КИТ - это интеллектуальная платформа для оптимизации процессов в организациях за счет автоматизации сбора отчетности. Ее архитектура построена на микросервисной модели, что обеспечивает масштабируемость и гибкость.

Основные компоненты платформы и их взаимодействие:

  • Frontend (React + TypeScript, Vite):
    - Constructor UI: Веб‑интерфейс конструктора отчётов/форм, реализованный на React 19 + TypeScript с использованием Vite для сборки. Обеспечивает визуальную настройку форм, атрибутов, периодов и связанных сущностей.
    - UI‑компоненты и тема: Библиотека Ant Design (компоненты таблиц, форм, модалок, дерева и т.п.) плюс emotion для стилизации.
    - Управление состоянием: Redux Toolkit + react-redux для хранения состояния конструктора, выбранных сущностей, прав доступа и текущих контекстов работы.
    - Маршрутизация: react-router-dom для разделения интерфейса на разделы (конструктор, справочники, отчёты, администрирование).

    - Аутентификация на фронтенде: Интеграция с Keycloak через keycloak-js и @react-keycloak/web, управление сессией пользователя и прокидывание токенов в API‑запросы.

    - Работа с API: axios для вызова REST/HTTP‑эндпоинтов бэкенда, обработка ошибок и перехватчики для авторизации.

  • Backend (микросервисы на Go):

    - Reforming Service (reforming): Основной сервис конструктора, реализующий бизнес‑логику работы с формами, атрибутами, источниками, периодами и организационной структурой. Использует gorilla/mux для HTTP‑маршрутизации, pgx и squirrel для работы с PostgreSQL, а также golang-migrate для управления миграциями.
    - Reference Service (reference): Сервис справочников и нормативно‑справочной информации (организации, периоды, цепочки, дополнительные сущности), к которым привязывается конструктор. Обеспечивает согласованность справочных данных и доступ к ним через API.
    - Storage Service (storage): Сервис файлового/объектного хранилища отчётов, вложений и экспортов. Использует minio-go и aws-sdk-go для работы с S3‑совместимыми хранилищами (MinIO и др.), а также PostgreSQL для метаданных.
    - Toolkit Library (toolkit): Общая библиотека для всех сервисов:
    · унифицированный доступ к БД (pgx, sqlx, драйверы PostgreSQL, ClickHouse, MongoDB);
    · интеграция с RabbitMQ и Redis (очереди и кэш);
    · поддержка JWT/OIDC через jwx, jwt;
    · логирование (logrus), конфигурация (viper), telemetry (OpenTelemetry, Prometheus).
    - API‑слой: Во всех сервисах используется kin-openapi и oapi-codegen для генерации и валидации OpenAPI‑совместимых HTTP‑API. Фронтенд обращается к этим HTTP‑сервисам напрямую либо через внешний gateway (в инфраструктуре).
    - Аутентификация и авторизация:
    · На стороне фронтенда — Keycloak (OIDC);
    · На стороне бэкенда — валидация JWT‑токенов, маппинг ролей и прав доступа к операциям конструктора, маршрутам и данным.
    - Фоновая обработка: Долгие операции (генерация отчётов, экспорты, нотификации) могут обрабатываться асинхронно через RabbitMQ и Redis (очереди задач и кэш).
    - Мониторинг и наблюдаемость: Встроенные метрики через prometheus/client_golang, трассировка и распределённый трейсинг через OpenTelemetry.

  • Database (PostgreSQL):

    - Основная реляционная БД: PostgreSQL используется как основное хранилище данных конструктора.
    - Миграции и схема: Управление схемой через golang-migrate; реализованы таблицы для форм (form), атрибутов (attr), периодов (period), организаций (org), цепочек (chain, chain_org) и связанных сущностей.
    - Бизнес‑логика в БД: Используются триггеры и функции (например, obj_before_insert_update, obj_before_delete, tree_before_insert_update и т.п.) для обеспечения целостности, ведения истории и автоматического обслуживания связей.

  • Дополнительные хранилища и компоненты:

    - Object Storage (MinIO / S3): Для хранения файлов отчётов, шаблонов и вложений через minio-go / S3‑API (Storage Service).
    - ClickHouse / MongoDB (через toolkit): Поддержка подключения к аналитическим и документ‑ориентированным хранилищам (ClickHouse, MongoDB) для специализированных сценариев отчётности и аналитики.
    - Cache (Redis): Используется для кэширования часто запрашиваемых данных и хранения вспомогательных структур (сессии, кэши справочников, промежуточные результаты).
    - Message Queue (RabbitMQ): Брокер сообщений для асинхронного взаимодействия сервисов, постановки задач на фоновую обработку и обмен событийной информацией.

ㅤ⠀

Взаимодействие компонентов:
- Фронтенд → Backend: Интерфейс конструктора (React) обращается к HTTP‑API микросервисов reforming, reference, storage (напрямую или через внешний API gateway в инфраструктуре).
- Микросервисы ↔ Database: Каждый сервис использует общую библиотеку toolkit для работы с PostgreSQL и (при необходимости) дополнительными хранилищами.
- Асинхронные задачи: Для долгих операций сервисы помещают задания в очереди RabbitMQ, результаты и промежуточные данные кешируются в Redis и/или сохраняются в объектное хранилище.
- Наблюдаемость: Все сервисы экспортируют метрики для Prometheus и трассы для OpenTelemetry, что позволяет контролировать состояние конструктора и производительность.

Методы и средства разработки программного обеспечения:
- Языки программирования: Go 1.25+ (бэкенд‑сервисы и общие библиотеки), TypeScript + JavaScript (ES6+) (фронтенд), SQL (PostgreSQL, миграции, триггеры).
- Фреймворки и библиотеки: Frontend: React, Vite, Redux Toolkit, React Router, Ant Design, axios, emotion. Backend: gorilla/mux, pgx, sqlx, golang-migrate, viper, logrus, oapi-codegen, Prometheus client, OpenTelemetry, клиенты RabbitMQ, Redis, minio-go, драйверы PostgreSQL/ClickHouse/MongoDB.
- Инструменты разработки: Редакторы/IDE: VS Code, GoLand/IntelliJ (типично для Go и фронтенда), Статический анализ и форматирование: eslint, prettier, typescript-eslint (фронтенд), go test, testcontainers-go, stretchr/testify (бэкенд).
- Система контроля версий: Git, с размещением исходного кода и версионированием модулей в GitLab (модули вида gitlab.komintekh.ru/komintekh/reporting/...).
- Методология разработки: Гибкие методологии Agile (Scrum/Kanban) с короткими итерациями, code review через merge‑request’ы в GitLab и автоматическими проверками.
- Инструменты тестирования: Backend: модульные тесты на Go с использованием testify, go-sqlmock, testcontainers-go (подъём PostgreSQL/MinIO/RabbitMQ в контейнерах); Frontend: линтеры и типизация (eslint, TypeScript), при необходимости — UI/интеграционные тесты (можно расширять Jest/Playwright).
- Контейнеризация и оркестрация: Контейнеризация всех сервисов через Docker (отдельные Dockerfile для серверов и миграций),
Оркестрация в Kubernetes, конфигурация окружений через Helm‑чарты (в т.ч. значения для stage), использование конфиг‑томов и секретов.
- CI/CD: GitLab CI/CD для сборки Docker‑образов, прогонки тестов, применения миграций БД и выката в Kubernetes‑окружения (dev/stage/prod).

double image first part
double image second part
Свидетельство ФИПС

КОНСТРУКТОР ОТЧЕТОВ КИТ имеет свидетельство о государственной регистрации программы для ЭВМ № 2026613973 от 11.02.2026 в Федеральной службе по интеллектуальной собственности (Роспатент)

Документация

    Свидетельство Роспатента (ФИПС)

    КОНСТРУКТОР ОТЧЕТОВ КИТ имеет свидетельство о государственной регистрации программы для ЭВМ № 2026613973 от 11.02.2026 в Федеральной службе по интеллектуальной собственности (Роспатент)

    Скачать файл
    Инструкция по установке и эксплуатации ПО
    Инструкция по установке и эксплуатации ПО — это документ, который содержит все необходимые сведения для безопасного и правильного процесса установки, использования и обслуживания программного обеспечения.
    Скачать файл
    Руководство пользователя

    Руководство пользователя — это документ, который помогает людям эффективно и безопасно использовать различные системы, программы или устройства. Его основная цель — сделать продукт понятным для пользователей любого уровня подготовки.

    Скачать файл
    Функциональные характеристики ПО
    Функциональные характеристики программного обеспечения (ПО) — это описание того, какие действия должно выполнять ПО и как оно будет обрабатывать пользовательский ввод. Они определяют основное назначение программы, её функции и предоставляемые возможности для удовлетворения потребностей пользователя.
    Скачать файл
    Описание жизненного цикла ПО
    Описание жизненного цикла ПО — это структурированный процесс, охватывающий все этапы создания, эксплуатации и поддержки программного обеспечения, от первоначальной идеи до вывода из эксплуатации и утилизации.
    Скачать файл
    Стоимость ПО

    Стоимость ПО может варьироваться в зависимости от проекта и пожеланий Заказчика. В документе указана цена за поставку всех модулей платформы.

    Скачать файл