AB Pharmacy

37 data models, one platform

AB Pharmacy is a wholesale medicine supplier in Bangladesh. Pharmacies used to order by phone and WhatsApp, and stock, packing and deliveries were tracked by hand. I led the build of the platform that now runs the business at abpharmacy.bd. Approved pharmacies use the storefront to browse the catalogue, order, track deliveries and file returns. Staff use the admin system for inventory with batch and expiry tracking, purchases, wholesale orders, packaging, deliveries, payments and customer accounts. It grew out of an order-management tool I built in 2025 and now runs as a Next.js frontend on a NestJS API, built with a team of three. The work also covered deployment, a code audit and end-to-end QA.

Next.js 16React 19TypeScriptNestJS 11PrismaPostgreSQL
On this page

Feature Highlights

An installable web app where pharmacies order from the full catalogue

  • Catalogue with product pages, a shop view and prices in taka (৳)
  • Cart, checkout, order history and order tracking
  • Returns, notifications and account status in the customer's own dashboard
  • Installs to the home screen as a PWA, for pharmacy staff ordering from a phone

Stack

  • Next.js 16 + React 19: Storefront and admin panel, installable as a PWA.
  • Tailwind CSS 4 + shadcn/ui: Accessible Radix-based components for about 60 screens.
  • NestJS 11: REST API for inventory, wholesale, customers, storefront and admin.
  • Prisma: Typed data layer over 37 models.
  • PostgreSQL: Production database on Supabase.
  • NextAuth, Zod, Zustand: Sessions, validated forms and client state.
  • Vercel: Hosting for the frontend and the API.
  • Firebase: Data layer for the original order manager.

Use Cases

  • Wholesale distributors moving customers off phone and WhatsApp ordering
  • Businesses that need batch and expiry tracking, not just stock counts
  • Teams running packing and delivery from the same system as sales

How It Works

  1. A pharmacy registers and is approved by AB Pharmacy staff.
  2. It browses the catalogue and places an order from the storefront.
  3. Staff check stock by batch and expiry, then pack the order in the day's packaging batch.
  4. The order is assigned to a delivery person and invoiced, and payment is recorded.
  5. The pharmacy tracks the order, and can file a return, from its own dashboard.

Related projects

Let's Connect

Running a business on phone calls and spreadsheets?

I build ordering and operations platforms that replace manual work with one system your customers and staff both use.

Dhruba Datta

© 2026 | All rights reserved