Jaloliddin Musayev
К проектам
В продакшене2026BI и отчётность

Аналитическая панель поверх ERP

Панель, которая читает выгрузку из ERP, чистит её и позволяет собрать новый отчёт без разработчика. Внедрена в двух дистрибьюторских компаниях.

2
внедрения
291
коммитов
338
файла кода
0
ручных отчётов в Excel

Проблема

Из ERP данные выходили только сырой выгрузкой. Руководство каждую неделю по несколько часов вручную собирало отчёт в Excel, каждый отдел просил свой разрез, и под каждый новый разрез снова требовался разработчик. Формулы копировались из файла в файл, и цифры переставали сходиться.

Решение

Построил конвейер импорта, который загружает файл выгрузки, валидирует его и хранит историю. Сверху — конструктор отчётов с drag & drop: пользователь сам перетаскивает измерения и метрики, собирает новый разрез и выгружает его в оформленный Excel. Один раз построенный продукт был адаптирован для второй компании на уровне настроек.

Ключевые возможности

  • Импорт .xlsx и .csv — валидация, поиск дубликатов, хранение истории загрузок
  • Конструктор отчётов drag & drop: новый разрез создаётся и сохраняется без разработчика
  • Экспорт в оформленный Excel — отчёт уходит руководству в готовом виде
  • Интерактивные графики и панели показателей
  • Отметка присутствия сотрудников по QR-коду
  • Две схемы аутентификации: сессия для веба и отдельный JWT API для мобильного приложения
  • Тёмная и светлая тема, полная адаптация под мобильные
  • CI/CD: push в `main` → GitHub Actions → автоматическая сборка и рестарт на сервере, параллельно деплой на Vercel
  • Один продукт в двух компаниях — дистрибуция косметики и игрушек

Архитектура

Всё внутри Next.js App Router: страницы, route handlers и база через Prisma. Мобильное приложение получает те же данные через отдельный JWT API, веб — через сессию.

Источники данных

ERP export (.xlsx / .csv)Legacy database

Конвейер импорта

Проверка по схемам Zod

ValidationDeduplicationUpload history

Приложение

Next.js App RouterReport builderChartsExcel export

Доступ

Auth.js session (web)JWT API (mobile)

Данные

PrismaPostgreSQL

Технологии

Веб

Next.js 16React 19TypeScriptTailwind CSS v4shadcn/uiRechartsTanStack Table

Backend

Next.js Route HandlersPrismaPostgreSQLAuth.jsjose (JWT)Zod

Работа с данными

ExcelJSSheetJSQR / jsQRLeaflet

Инфраструктура

GitHub ActionsVercelpm2VPS

Моя роль

Продукт целиком: модель данных, конвейер импорта, конструктор отчётов, аутентификация, мобильный API и CI/CD.

Имена клиентов, домены и адреса серверов не раскрываются из соображений конфиденциальности.