Skip to content
All case studies

Case study · ERP System

A trading business run from one system

Purchasing, sales, multi-warehouse inventory, and double-entry books, bilingual EN/AR, on web and desktop.

stack

python · fastapi · postgresql · redis · next.js · electron · docker

languages

EN / AR · full RTL

status

in production

2
frontends sharing one backend
100%
of legacy records migrated and owner-checked
1
database per company, isolated by design

The situation

A trading business with multiple warehouses needed purchasing, sales, inventory, and accounting in one system, in English and Arabic, for staff working in the browser and on desktop machines.

Years of records sat in an old database that had to come along.

What we built

The platform covers the full trade cycle: purchasing, sales, and multi-warehouse inventory with GS1 traceability, backed by double-entry accounting with reconciliation and aging. The interface runs bilingual EN/AR with full right-to-left layout.

It ships as a Next.js web app and an Electron desktop app, both talking to one FastAPI backend that enforces business rules and access checks in a single place, whichever frontend the request comes from.

fig. 01 · architecture erp system
Containerized deployment: one backend, two frontends, a database per company.

The owner checked the migrated records before cutover.

How it runs

Each company gets its own PostgreSQL database. Redis handles quick lookups, and backups land locally with optional upload to S3 or Google Drive.

A purpose-built migration tool extracted the old database into the new structure, and the owner checked the migrated records before cutover. Everything runs in containers.

Next case study · Pharmaceutical Sales Platform

From a photographed list to a delivered order

A customer PWA, a management dashboard, and an admin portal that carry an order from discovery to delivery.