Skip to content

[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

ZestUp — Full-Stack Marketplace: A restaurant ordering and delivery platform so Pakistani restaurants can stop paying 30%+ commissions to aggregators like Foodpanda.
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

ZestUp screenshot 1 of 3ZestUp screenshot 2 of 3ZestUp screenshot 3 of 3