Sole developer · 2025–Present

Hafco Base ERP

A bilingual 13-module ERP for HAFCO Big Movers in Dammam, Saudi Arabia.

Try the demoDemo runs on sample data only.
2–3 days → seconds

Payroll for 190 employees

3–5 min → 8–12 s

Document entry with OCR

90%+

OCR fields read correctly

620+

Access policies audited

01The challenge

Replace spreadsheets and paperwork with a connected system for heavy-transport operations, HR, payroll and finance.

02My role

I gathered requirements with each department, designed the database and built the web system and Android driver app, shipped to Google Play.

03System design

Fleet, HR and payroll, accounting, procurement and invoicing share one bilingual workspace, backed by PostgreSQL with row-level security.

04Integrations

ZATCA e-invoicing and Saudi government platforms Qiwa, Muqeem and Bayan connect business operations to external services.

Key technical decisions

01

Sequential OCR queue

Documents are processed one at a time through a queue, so bulk uploads never overload the AI service or lose files.

02

Offline upload queue

The driver app stores uploads locally and sends them when the network returns, so weak mobile coverage never loses data.

03

Row-level security audit

I audited 620+ access policies across 111 tables and fixed about 70 that let any signed-in user write data. Roles now live in a protected table only a super admin can change.

04

Arabic-first design

Every screen was designed right-to-left first, then mirrored for English, instead of translating afterwards.

Architecture

Web ERP (React)
Android driver app
API & business logic
PostgreSQL + RLS
OCR queue
Offline sync
ZATCA
Qiwa
Muqeem
Bayan

Screens from the demo

Real ERP screens from the demo, with sample data. 1Real ERP screens from the demo, with sample data. 2Real ERP screens from the demo, with sample data. 3

Real ERP screens from the demo, with sample data.

Try the demoCompany websiteBack to portfolio