HerPro Marketplace Platform
Multi-sided marketplace with real-time notifications (Socket.IO), Paystack payment integration, dual-order management for food delivery and e-commerce, and geospatial rider tracking.


A Node/TypeScript backend powering a four-sided marketplace: customers, two kinds of merchants, and delivery riders, all converging on one shared platform for payments, notifications, and dispatch. Each role has its own auth flow and order lifecycle, but every transaction has to stay consistent across all of them.
The interesting engineering wasn't the happy path — it was everything that breaks when money and physical goods are involved. Payment splits between merchants and the platform that have to land in the right wallets every time. Order state machines that need to survive crashed apps, dropped sockets, and payment webhooks arriving out of order or arriving twice. Ledgers that have to reconcile cleanly after a partial refund. Media buckets that slowly fill with orphaned uploads from abandoned listings.
Most of what I'm proud of in this project isn't visible to the end user. It's the recovery scripts that reconstruct orders from payment provider records when something fails midway. The scheduled cleanup crons that keep storage costs honest. The careful state transitions that make sure a rider disconnect mid-delivery doesn't leave the customer hanging or the vendor unpaid. The kind of work that only matters when things go wrong — which, in production, is constantly.
highlights
- Multi-role auth with social SSO, email and phone verification, and role-based access control
- End-to-end order lifecycle from cart to settlement, with deterministic recovery paths for every failure mode
- Payment integration with automatic multi-party splits, virtual accounts, and refund flows driven by webhooks
- Append-only transaction ledger backed by an event log for reconcilable wallet history
- Real-time order tracking and live dispatch updates over WebSockets
- Production hardening: scheduled media-cleanup jobs, order-recovery tooling, refund scripts, rate limiting, input validation
What HerPro is
HerPro is a marketplace app for food delivery and product commerce. Customers shop, restaurant and product vendors manage their businesses, and riders handle deliveries — all on one platform.
I worked on the backend with a small team, responsible for the order pipeline, payments, real-time tracking, and the operational tooling that keeps things running in production.
What the backend does
The API serves four distinct user types, each with their own auth flows, dashboards, and workflows:
- Customers — browsing, cart, checkout, order tracking, reviews
- Restaurant vendors — menus, operating hours, order acceptance
- Product vendors — inventory, variants, fulfillment
- Riders — dispatch, live location, earnings
A single order can touch all four roles, so most of the backend complexity is in keeping everything consistent as an order moves from cart to delivery to settlement.
Payments and settlements
Orders are paid through an external payment provider. When a transaction is confirmed, the platform automatically splits the payout between the vendor, the rider, and the platform. Refunds, failed transactions, and edge cases are all handled through a ledger system that keeps a reliable history of every money movement.
Real-time features
Riders broadcast their location over WebSockets. Customers see live delivery tracking. Vendors get instant notifications when orders come in. The system handles reconnections and dropped connections gracefully so no one loses their active session.
Production operations
The part of the codebase I'm proudest of is the operational tooling — scheduled cleanup jobs, order recovery scripts, refund automation, and diagnostic tools that catch inconsistencies before users notice them. None of it is glamorous, but it's what keeps a live platform trustworthy.
Tech stack
- TypeScript + Node.js + Express
- MongoDB + Mongoose
- Socket.IO for real-time updates
- Kafka for event-driven transaction processing
- AWS S3 for media storage
- Zod for validation, Jest for tests