All projects

Warehouse & Logistics Platform · Web

2026

A bilingual warehouse operations portal — orders, attendance, payroll and embedded ERPNext accounting from a single interface.

Role

Full-Stack Software Engineer — sole engineer on the custom Frappe app, backend APIs, and the web portal

Year

2026

Status
Production
Stack
  • Frappe
  • ERPNext
  • Python
  • MariaDB
  • Redis
  • Linux
01 / 04

Overview

The Warehouse Portal is the operational core of Carry Go: a bilingual (Arabic/English) web application that runs the day-to-day of a warehouse-and-delivery business — order management, attendance, payroll and accounting — from one interface, built on a custom Frappe application (carry_go) layered on ERPNext.

Problem

Warehouse supervisors were tracking lockers, deposits, inter-warehouse transfers, attendance and payroll across spreadsheets and phone calls, then switching into ERPNext separately for accounting and reporting. Nothing spoke to anything else, and every language-dependent screen had to work correctly in both Arabic and English.

Solution

I built the portal as a first-class Frappe app rather than a bolt-on: custom doctypes for deposit requests, warehouse boxes and transfer missions wired directly into ERPNext's permission and accounting layers. The portal embeds live ERPNext accounting views — P&L, General Ledger, invoices, KPI cards — directly in its own screens, so supervisors never leave the portal to check a number.

Architecture

The portal talks to a Python/Frappe REST layer backed by ERPNext v16, deployed on its own isolated Bench (separate Redis ports, Python 3.14, Node 24) running alongside an existing v15 instance with zero conflicts. Redis handles caching and Frappe's scheduled background jobs; MariaDB is the system of record.

Features

  • Bilingual (Arabic/English) interface covering order management, attendance, payroll and accounting.
  • Embedded accounting module — P&L, General Ledger, invoices and KPI cards rendered directly inside the portal.
  • Barcode-driven pickup/delivery workflow for warehouse staff.
  • Deposit-request and locker-box management tied to the same data model the mobile apps read from.
  • Inter-warehouse transfer tracking with full audit trail.

Development Process

I owned the app from schema to deployment: defining doctypes, hooks and fixtures, building the REST endpoints later consumed by the Flutter apps, and standing up the infrastructure. ERPNext v16 was deployed on an isolated Bench so the new portal shipped without touching the production v15 system it runs alongside.

Challenges

A timer defect was silently overwriting portal pages every 12 seconds under specific conditions — traced to a misconfigured polling interval and fixed at the source. A P0 security issue — credit-card data persisted in plaintext — was found during a review pass and removed, replaced with a payment-status flag backed by the actual payment provider. MariaDB root access was lost during a migration and restored via unix_socket authentication without downtime.

Results

Warehouse supervisors now run orders, attendance, payroll and accounting from one bilingual system instead of five disconnected tools. The app is published on GitHub with a full README, install guide and API reference.

Future Improvements

A supervisor-facing analytics dashboard beyond the embedded ERPNext reports, and role-based home screens per warehouse.

04Gallery

Select any screen to open it full size.

01Warehouse Portal02

02ERPNext Backend02