Systems we've
actually built
and still run.

Delivered work

DOPAS — multi-warehouse ERP & warehouse management system

DOPAS (Delivery Operations & Product Administration System) is the ERP/WMS we designed, built and run for wholesale distribution. Orders arrive by email or PDF and are extracted by AI instead of retyped; stock is controlled FIFO across multiple warehouses with batch and expiry tracking; the CRM scores customers with RFM analysis and churn prediction; and deliveries, drivers and dashboards sit on top of the same data. It syncs two ways with Odoo, QuickBooks, Tally and Zoho Books.

  • AI order extraction from email bodies and PDF attachments
  • FIFO stock across multiple warehouses, 10,000+ SKUs
  • Batch and expiry tracking, low-stock alerts, reorder suggestions
  • CRM with RFM analysis and churn prediction
  • Delivery, driver and route management
  • Role-based access with real-time dashboards
Django 5.2React 19DockerFlutterOdooQuickBooksTallyZoho Books
DOPAS admin dashboard showing revenue, order and inventory-value tiles, an HR overview, a revenue trend chart and an orders-by-status breakdown.
Admin dashboard — revenue, orders, stock value and order status at a glance.
DOPAS orders list showing order references, customers, values and fulfilment status with filters.
Orders — the full order book with status and fulfilment filters.
DOPAS deliveries list showing scheduled deliveries, assigned drivers and delivery status.
Deliveries — scheduling, driver assignment and delivery status.
DOPAS inventory management screen listing stock items with quantities, warehouse locations and stock-level indicators.
Inventory — multi-warehouse stock with levels and locations.

Screens shown are the DOPAS demonstration environment; the figures and customer records in them are sample data, not a live client's.

Global Gourmet Exchange (GGX) — order-to-cash and procure-to-stock platform

Global Gourmet Exchange is a B2B foodservice distributor trading in the UAE and Saudi Arabia. We built its Laravel and Filament operations platform, which runs the complete commercial cycle. Customer purchase orders arriving as email, PDF or LPO are read by an Anthropic Claude intake step and turned into draft orders a person reviews before anything is committed. Approved orders push to Zoho Books as sales orders and draft invoices. A per-day release order reserves pallet stock on FEFO/FIFO picking and issues a warehouse note to the third-party logistics provider. Dispatch assigns the delivery; proof of delivery flips the invoice to sent and opens accounts receivable, with payments, ageing and statements pulled back from Zoho.

Around that core it also handles purchasing and imports with landed-cost and COGS allocation, exports and packing lists, e-signature contracts, a sales pipeline, and an append-only stock movement ledger so every unit of stock can be traced. Staff can drive the same backend in plain language from Claude Desktop through a purpose-built MCP server.

  • AI intake of purchase orders from email, PDF and LPO, with human review
  • Zoho Books as the accounting source of truth, synced both ways
  • Pallet stock with FEFO-primary, FIFO-tiebreaker picking
  • Release orders and issue notes to a third-party logistics warehouse
  • Dispatch, proof of delivery, and receivables that open on delivery
  • Purchasing, imports, landed cost and COGS allocation
LaravelFilamentMySQLAnthropic ClaudeMCPZoho BooksZoho SignFlutterFirebase Cloud Messaging
GGX Operations warehouse orders screen: a filterable order table with per-row warehouse, delivery and due dates, fulfilment status, Zoho sync state and release state, plus an Export Excel action.
Warehouse orders — the order book with fulfilment, Zoho sync and release state per row.
GGX Operations deliveries screen: delivery assignments with date, delivery window, status, en-route and delivered timestamps, failure reason, and actions to assign a driver or override status.
Deliveries — assignment, delivery window, status and proof-of-delivery timestamps.
GGX Operations inventory screen: pallet stock rows showing warehouse or van location, batch reference, expiry, quantity on hand in boxes, reserved and free pieces, and stock status.
Inventory — pallet stock by location and batch, with reserved and free quantities.
GGX Operations dashboard: a twelve-month revenue trend chart, a pipeline-by-stage bar chart, a top-customers chart and a revenue-by-sales-rep chart, beside the operations navigation menu.
Dashboard — revenue trend, sales pipeline and rep performance.
Sign-in screen of the GGX Operations console, branded Global Gourmet Exchange, with email and password fields, a remember-me option and a sign-in button.
The operations console sign-in.

Screens from the GGX system, published with Global Gourmet Exchange's permission. Customer names, order references and money values have been permanently painted out of the image files themselves — the pixels are gone, not merely covered.

A Trade — warehousing, delivery and HR operations platform

A Trade is a UAE trading and distribution company. We built its PHP operations platform, covering the whole back office: warehouse stock and inbound shipments, a CRM with quotations and opportunities, driver deliveries with time tracking and partial-delivery handling, route planning, a distributor portal, and a full HR module with attendance, leave and payroll exports. Its analytics layer includes machine-learning demand forecasting with CSV and report export, and sign-in supports biometric (WebAuthn) authentication alongside a multi-step secure login.

  • Warehouse stock, inbound shipments and CSV import
  • CRM with quotations, opportunities and activity tracking
  • Driver deliveries with time tracking and partial deliveries
  • Route planning and a distributor portal
  • HR: employees, attendance, leave, payroll and report exports
  • Machine-learning demand forecasting and analytics exports
PHPMySQLWebAuthn biometricsMachine learning

Screenshots of this system are not published: its screens carry customer, delivery and HR records, and no redacted set has been prepared.

Alpha Prime Garage — Dubai

A full marketing website for an all-brands car workshop in Umm Ramool, Dubai: services, a workshop gallery, an owner section and WhatsApp booking, built to load fast and convert on a phone. We also build and run this site, ftservices.ae, including its three free browser-based business tools.

HTMLCSSJavaScriptResponsiveWhatsApp booking
Alpha Prime Garage website homepage: dark hero with a headline about expert car care in Dubai, a strip of car marques serviced, and a grid of mechanical, electrical, body and tyre services.
Alpha Prime Garage homepage — alphaprimegarage.ae
Alpha Prime Garage homepage services section, headed "Complete car care, one workshop", listing mechanical, diagnostics and electrical work in two columns of serif headings with a short line of copy under each.
Homepage services — two columns of work types, set in the site's display serif.
Alpha Prime Garage services page: a full-width list of services — engine repair and overhaul, gearbox and transmission, computer diagnostics, auto electrical and wiring, AC and cooling, brakes and suspension — each with a description beside it.
Services page — the full service list as a single scannable table.
Alpha Prime Garage workshop gallery, headed "Just some of the cars we look after", with All, Supercars, SUVs and Workshop filter chips above a grid of photographs of cars in the workshop.
Workshop gallery — filterable photo grid with a tap-to-expand lightbox.

Mobile apps, built in Flutter

Seven Flutter apps plus a shared Dart core package. The business apps are built against the backend of the system they belong to — same data, same login — rather than as standalone products; the rest are offline-first, holding everything in a local database with no server at all. One codebase serves both Android and iOS.

Driver apps

The day's runs, the vehicle load, en-route status, and proof of delivery captured as a camera photo, an on-screen signature and a GPS position — with a reason code when a drop fails.

Sales-rep app

Customers, orders, invoices, deliveries and the sales pipeline on the road, with in-app sales-breakdown charts and PDF export.

Warehouse & inventory app

Warehouse stock, release orders and stock movements in the aisle, so counts are entered where they happen instead of on a clipboard.

CRM app

Customers, orders and quotations from a phone, sharing the same records as the web system.

Shared Dart core

One package holding the API client, models, services and widgets, so every app behaves the same way and a fix lands everywhere at once.

Built for the field

Secure token login, offline-tolerant local caching, camera capture, signature capture, GPS and push notifications — the things a phone in a van actually needs.

DOPAS Delivery — driver app

DOPAS Delivery sign-in screen: the DOPAS hexagon lockup above "Welcome back", an email field, a password field and a blue Sign In button.
DOPAS Delivery — driver sign-in.
DOPAS Delivery driver dashboard: a greeting with the name redacted, today's assigned and completed counts, 186 pending, an 88% success rate and vehicle stock.
DOPAS Delivery — the driver's day at a glance: assigned, completed, pending, success rate.
DOPAS Delivery "My Deliveries" list: All, Pending, In Transit and Delivered chips above demo cards with reference, redacted customer, address and boxes.
DOPAS Delivery — the run list, filtered by status. Demo records, customer names redacted.

DOPAS CRM

DOPAS CRM customer list: a search box, All, Active, Leads and Inactive chips, and demo cards whose company, contact and email are redacted, beside order counts.
DOPAS CRM — the customer book, filtered by status. Demo records, names and emails redacted.
DOPAS CRM order list with All, Pending, Confirmed, Shipped and Delivered chips over demo orders showing reference, redacted company, items, value and state.
DOPAS CRM — orders with their reference, value and state.
DOPAS CRM sales analytics: a monthly trend line chart, a quotation pipeline of draft, sent and accepted counts, and a top-customer ranking, names redacted.
DOPAS CRM — sales trend, quotation pipeline and the top-customer ranking.

GGX driver app

Global Gourmet driver app sign-in: the GG mark beside a Driver App label, a Sign in heading, filled email and password fields, and an amber Sign in button.
GGX driver app — sign-in.

Training log

Offline-first: every session lives in a local database on the phone, with no server behind it.

Training log home screen: "Ready to train?" above a lime Start Workout card, week, month and personal-record counters, and a list of recent sessions.
Training log — the home screen; one tap starts a session.
Training log Stats screen with Load, Reps, Time and Sets tabs, listing the top sessions ranked by total load moved in kilograms.
Training log — sessions ranked by total load moved.
Training log Muscle Map: a Front and Back toggle above an anatomical body diagram drawn as individually selectable muscle groups.
Training log — muscle map; the body is the exercise picker.
Training log past workout: one hour, 13 sets logged, each exercise broken out set by set as weight times reps with an estimated one-rep max and a record star.
Training log — a finished workout, set by set, with estimated 1RM.

Finance forecasting app

Offline-first as well — a local database on the phone, no server.

Finance app month overview: what is left to spend against budget, 96% of budget used, an over-budget warning, and tiles for spent and over budget.
Finance app — the month at a glance, with budget burn and an over-budget flag.
Finance app Money In screen: received this month against the planned figure, marked on plan, with retainer, project milestone and support contract listed.
Finance app — income sources tracked against plan.
Finance app Forecast screen: a projected balance line chart rising across the horizon, with per-category spending totals for that whole horizon.
Finance app — projected balance and where the money goes over the horizon.

Want one of these for your operation?

Send us a short brief — we reply within 24 hours with a real plan, no obligation.