• Flutter
  • Node.js
  • PostgreSQL
  • Docker

Pharmacy management

Stock held by batch and expiry, dispensing against a prescription, and a reorder list that knows what actually moves.

A pharmacy loses money in two directions at once: drugs that expire on the shelf, and drugs that run out the week they are needed. Both are the same problem wearing different clothes — nobody knows what is really in stock, by batch, right now.

Features

  • Stock held by batch and expiry date, not just by product name
  • Expiry warnings early enough to return or discount, rather than after the fact
  • Dispensing against a prescription, with the quantity coming off stock as it goes
  • Substitution suggestions when a brand is out but the generic is not
  • Reorder lists calculated from what actually moves, per branch
  • Supplier invoices matched against what was delivered, not against what was ordered
  • A controlled-drug register kept separately, with its own audit trail
  • Daily sales, margin and a cash reconciliation at close

The counter is the constraint. Everything a pharmacist does during a sale has to be possible without leaving one screen, because the queue does not pause while somebody navigates a menu.