[Full-Stack Marketplace]
ZestUp
A restaurant ordering and delivery platform so Pakistani restaurants can stop paying 30%+ commissions to aggregators like Foodpanda.
Lead Backend Developer and architect of the backend that serves all five clients. Designed the API, data model, auth/RBAC, real-time tracking, and multi-branch isolation so web, admin, and Flutter apps run on one reliable core.
role: Lead Backend Developer

Node.jsTypeScriptExpressPrismaPostgreSQLRedisSocket.IOReactFlutterDocker
apps served: 5api modules: 22socket namespaces: 3
// situation
Restaurants needed delivery, pickup, dine-in, POS, and multi-branch management without aggregator fees — across web, admin, and rider/customer mobile apps.
// task
As lead backend developer, architect a single backend serving 5 independent clients with consistent auth, real-time tracking, and branch-scoped data.
// action
- Built layered Express/TypeScript API: 22 feature modules (Controllers → Services → Repositories → DTOs) with tsyringe DI and Zod validation
- Dual ORM data layer: Prisma for standard ops, Kysely for complex type-safe queries; soft-deletes + audit fields via Prisma extension
- Real-time layer: 3 Socket.IO namespaces (admin/customer/rider) with Redis adapter; GPS streaming, route-deviation checks via Google Maps Routes API + Turf.js
- Auth/RBAC: JWT auth for 3 user types, granular role-permission middleware, rate-limit + validation + exception chain
- Domain model: Branch multi-tenancy with junction tables (BranchItem, BranchRider, BranchCoupon), OrderStatus lifecycle, coupons, POS orders, sales reconciliation
// results
- One backend serves React admin, React customer web, Flutter customer + rider apps
- Live rider tracking with deviation alerts (>400m), FCM + Socket.IO notifications
- Shipped POS, multi-branch management, roles/permissions, coupons, sales dashboard
- Swagger + AsyncAPI docs, deployable via Docker Compose / Kinsta + Vercel
$ Gallery


