Warehouse & Logistics Platform · Mobile
2026
The customer-facing Flutter app — live order tracking, QR receipts and instant invoices, so customers never have to call in for status.
- Role
Full-Stack Software Engineer — designed and built the app end to end against the shared Carry Go backend
- Year
2026
- Status
- Production
- Stack
- Flutter
- Dart
- Frappe REST API
- Firebase Cloud Messaging

Overview
The Customer App is Carry Go's public face: a Flutter app that lets customers request a deposit or delivery, track it live, and receive a proper invoice and QR receipt on completion — without a single phone call to the warehouse.
Problem
Before this app, customers had no visibility into where their package or deposit request stood. Every status question meant a call to the warehouse, pulling a supervisor away from operational work just to read a status off the Warehouse Portal.
Solution
I built a customer experience around the same order/deposit records that power the Warehouse Portal and Courier App: as a courier accepts a pickup, moves it between warehouses, or completes delivery, the customer sees that status change live, with an ETA and the assigned courier's details.
Architecture
The app consumes the same Python/Frappe REST API as the other two Carry Go surfaces, backed by ERPNext v16 on its isolated Bench. Firebase Cloud Messaging pushes status-change notifications; invoice and QR-receipt generation happen server-side in Frappe and are surfaced to the app on delivery completion.
Features
- Live order tracking with ETA and assigned-courier details.
- Real-time status updates as a package moves between couriers or warehouses.
- QR receipt and automatically generated invoice on delivery.
- Post-delivery courier rating.
Development Process
Because the app reads from the same records the Warehouse Portal and Courier App write to, there was no need to build a separate notification or sync pipeline — a status change made by a courier in the field is visible to the customer within the same request/response cycle that updates ERPNext.
Challenges
The main design challenge was making a live tracking screen feel trustworthy without over-promising precision the underlying data couldn't support — ETA is derived from courier-reported status transitions rather than live GPS, so the UI is explicit about stage (e.g. "courier en route to pickup") rather than implying a moving map it doesn't have.
Results
Customers can now originate and track a deposit or delivery entirely on their own, with a proper invoice and QR receipt at the end — removing a steady stream of status-check calls from warehouse staff.
Future Improvements
Live GPS-based ETA once the courier app exposes location data, and in-app support chat for exceptions.
03Gallery
Select any screen to open it full size.
01Order Tracking02
02Delivery & Receipt01
Work

Warehouse & Logistics Platform · Mobile · 2026
Carry Go — Courier App
The delivery-agent Flutter app — HMAC-secured attendance, pickup and transfer workflows, and fleet-asset tracking, all backed by ERPNext.

Real Estate Platform · Mobile + Web · 2026
Manazel — Real Estate Platform
A Saudi real-estate marketplace for First Tower Company — a Flutter client app, a React admin dashboard and a NestJS backend, with pre-publication review, advertiser verification and wallet-based promotion.