Skip to content
All projects

Placeholder case study: edit it in content.js

Dukandar: local multi-vendor marketplace

A marketplace that lets neighbourhood shops in Lahore sell online with cash on delivery and local mobile-wallet payments.

  • Django
  • PostgreSQL
  • Svelte
  • Vite
  • Tailwind CSS
Client
Startup founders, Lahore (sample)
My role
Lead full-stack developer
Timeline
5 months
  • 120+ shops

    Onboarded in the first quarter

  • < 1.5 s

    Catalogue load on mobile data

  • 38%

    Orders paid through wallets

The problem

Small shop owners wanted to sell online but could not manage stock, orders and payouts across several apps. Most customers pay cash on delivery or by mobile wallet, and many browse on slow connections, so generic marketplace templates failed on both counts.

My approach

I built a vendor dashboard and a shopper storefront on one Django API. Orders are split per vendor, payouts are calculated automatically, and the storefront is a lightweight Svelte app that ships very little JavaScript so it stays fast on weak networks.

The hardest part

Never sell the same item twice

Two shoppers could buy the last item at the same moment. I reserve stock inside a PostgreSQL transaction with row locking, and release it automatically if a payment is not completed, so stock counts stay correct even during busy evenings.

How the technology solved it

  • Django

    REST API, payment-gateway adapters, commission engine and background jobs for payout statements.

  • PostgreSQL

    Transactional stock reservation with row locks, plus partial indexes that keep catalogue queries fast.

  • Svelte

    A small, fast storefront with instant search and a cart that survives a dropped connection.

  • Vite

    Code-splitting and optimised builds so the first page stays light on mobile data.

  • Tailwind CSS

    Responsive, right-to-left-ready layouts for Urdu and English.

What I built

  • Vendor dashboard for products, stock, orders and payouts
  • Cash on delivery and wallet payments through a swappable payment layer
  • Split orders with automatic commission and payout reports
  • Urdu and English storefront with delivery-area rules

The result

Shops went live in a day instead of weeks. The founders now run payouts from one screen, and the storefront stays quick on ordinary mobile connections.