[ CASE STUDY / 01 ] · ENTERPRISE MANAGEMENT PLATFORM
Vipani ERP
A modular enterprise ERP. Inventory, HR, finance and AI-assisted reporting on one GraphQL backbone.
- Role
- Full Stack Developer
- Company
- Akkenam Technologies
- Period
- May 2023 – Dec 2024
- Stack
- Node.js · Express.js · GraphQL Yoga · PostgreSQL
This is company work, so the source code and screens stay private. This page explains the engineering instead.
[ 01 ] · THE PROBLEM
An ERP gets judged on its slowest screen. Reporting workflows were running into slow scans, and everyday API calls were taking 450ms+, so the slow spots set how fast the whole system felt.
[ 02 ] · HOW IT FITS TOGETHER
Architecture
The React client calls the GraphQL Yoga API. Requests pass authentication and role checks, reach batched resolvers, and read from Redis, PostgreSQL or the OpenAI API.
[ 03 ] · WHAT I DECIDED
Key decisions
01
One GraphQL backbone, split into modules
Inventory, HR and finance sit behind one GraphQL Yoga API, built from schemas, resolvers, queries and mutations that stay modular as the product grows.
02
Measure the query before touching it
I profiled the slow reporting queries with EXPLAIN ANALYZE, then added composite B-tree indexes so the database stopped scanning where it should have been looking up.
03
Batch the reads, cache the repeats
Query batching cut the number of database trips per request, and Redis caching took catalog lookups and sessions off the database for repeat reads.
04
Authentication that holds up
JWT login with refresh-token rotation, RBAC middleware and request validation, plus central error handling and Winston logs across staging and production.
05
Tests next to the modules
Automated unit and component tests with Vitest across ERP modules, so changes in one module did not quietly break another.
[ 04 ] · WHAT CAME OUT OF IT
Results
- ~50%Faster reporting queries, from ~800ms+ to under 400ms.
- ~50%Faster API responses, from ~450ms+ to ~225ms.
- Peak read traffic put less load on the database.
- AI-assisted operational report generation inside the same platform.
ALL CASE STUDIES