Jaloliddin Musayev
Back to projects
In production2026BI & reporting

Analytics dashboard on top of an ERP

A dashboard that ingests the ERP export, cleans it, and lets people assemble a new report without a developer. Deployed at two distribution companies.

2
deployments
291
commits
338
source files
0
manual Excel reports

Problem

The ERP only ever produced a raw export. Management spent hours each week assembling a report by hand in Excel, every department wanted its own cut, and every new cut meant another request to a developer. Formulas were copied from file to file until the numbers stopped agreeing.

Solution

I built an import pipeline that loads the export file, validates it and keeps the history. On top of it sits a drag-and-drop report builder: the user drags dimensions and measures, assembles a new cut and exports it to a styled Excel file. Once built, the product was adapted to the second company at configuration level.

Key capabilities

  • Import of .xlsx and .csv — validation, duplicate detection, and a retained upload history
  • Drag-and-drop report builder: a new cut is created and saved without a developer
  • Styled Excel export — the report reaches management ready to read
  • Interactive charts and KPI panels
  • Staff attendance check-in via QR code
  • Two authentication paths: a session for the web, a separate JWT API for the mobile app
  • Dark and light themes with full mobile layout
  • CI/CD: push to `main` → GitHub Actions → automated build and restart on the server, with a parallel Vercel deploy
  • One product running at two companies — cosmetics and toy distribution

Architecture

Everything lives inside the Next.js App Router: pages, route handlers and the database through Prisma. The mobile app reaches the same data through a separate JWT API; the web uses a session.

Data sources

ERP export (.xlsx / .csv)Legacy database

Import pipeline

Validated against Zod schemas

ValidationDeduplicationUpload history

Application

Next.js App RouterReport builderChartsExcel export

Access

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

Data

PrismaPostgreSQL

Stack

Web

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

Backend

Next.js Route HandlersPrismaPostgreSQLAuth.jsjose (JWT)Zod

Data tooling

ExcelJSSheetJSQR / jsQRLeaflet

Infrastructure

GitHub ActionsVercelpm2VPS

My role

The whole product: data model, import pipeline, report builder, authentication, mobile API and CI/CD.

Client names, domains and server addresses are withheld for confidentiality.