PharmaDesk – Pharmacy Management System
A complete pharmacy management solution built on a client-server architecture. The server runs on Windows and hosts a built-in HTTP API and browser-based UI — pharmacists, cashiers, salesmen, and administrators connect from any device on the network through a standard web browser, with no software to install on the client side. Click here to access PharmaDesk Userguide
Features
🛒 Sales Workflow — Salesman & Cashier
A two-role sales workflow keeps your counter fast and accurate. The salesman searches the medicine catalogue, adds items to a bill, and applies discounts — then marks the bill ready for payment. The cashier picks up the pending bill, collects payment (cash, card, or bank transfer), applies any final discounts, and confirms the sale. Receipt prints automatically. Roles stay separate so dispensing and cash handling never mix.
💊 Medicine Catalogue
Manage every detail of your medicine inventory: form (tablet, liquid, capsule), strength, generic name, category, supplier info, reorder levels, and shelf location. Your entire medicine database is organized and searchable — staff can find any product in seconds. Reorder levels trigger low-stock alerts automatically so you never run out of critical medicines.
📦 Batch Tracking & FEFO Inventory
Stock is tracked at batch level — every purchase records the batch number and expiry date. When selling, PharmaDesk automatically selects the oldest batch first (FEFO: First Expiry, First Out), reducing waste and ensuring compliance. Stock levels update in real time with every sale, purchase, return, and adjustment. A batch breakdown view highlights days-to-expiry so nothing slips through unnoticed.
⚠️ Dashboard Alerts
Log in and see your pharmacy's health at a glance. The dashboard surfaces low-stock alerts and expiry warnings so you can act before problems reach the counter. All alerts are live — they reflect the current state of inventory without needing a manual refresh. No surprises at the shelf.
🏭 Purchasing & Supplier Management
Record purchases from suppliers with full invoice details, payment status, and per-batch expiry tracking. Maintain a supplier directory with credit terms. Process purchase returns when needed — each return is logged with a full audit trail and automatically adjusts stock and supplier balances. All purchase history is searchable and reportable.
🔄 Stock Adjustments & Returns
When stock needs manual correction — damaged goods, count discrepancies, expired units pulled from the shelf — the Adjustments module records each change with a reason and a full audit trail. Sales returns are processed the same way: log them when they happen, track them permanently. A live session audit log shows all adjustments in real time so admins always know what changed and who changed it.
🧾 Invoicing & Payment Tracking
Generate sales bills with itemized lines, discounts, and totals. Record payments with support for cash, card, and bank transfer. Receipts print automatically on sale confirmation with a customizable layout — pharmacy name, contact info, and currency symbol all configurable from settings. Invoice and payment history is fully reportable by date range, cashier, and payment method.
🗂️ Multi-Draft Sales
Salesmen can pause one bill and start another — switching between open drafts at any time without losing work. This keeps the counter moving when a customer needs to check something or step away. Drafts persist until they are confirmed or cancelled, and are visible only to the salesman who created them.
🔐 Role-Based Access Control
Four built-in roles control exactly what each user can see and do. Admin has full access including settings and user management. Pharmacist oversees clinical and inventory functions. Salesman handles bill creation and medicine dispensing. Cashier processes payments and confirms sales. Every protected API endpoint and browser form enforces role checks server-side — a salesman cannot access cashier functions, and vice versa.
👥 User Management
Administrators create and manage user accounts — setting full name, username, role, and active status. A forced password-change flag can be set on any account, and is enforced automatically on first login. Last-login timestamps are recorded for every user. Passwords can be updated by admins or by the user themselves through a dedicated change-password screen.
📋 Reports
Built-in reporting covers sales summaries with revenue totals, profit and margin breakdowns, stock valuation by batch and cost, purchase summaries, and expiry reports — all with summary totals for quick analysis. Reports are filterable by date range, staff member, and product. Served as browser pages from the built-in web server, accessible from any device on the network.
⚙️ Pharmacy Settings
Configure your pharmacy name, contact information, and currency symbol and position (₹, $, £, €, PKR, and more) from the settings screen. These details appear on printed receipts and throughout the interface. Settings take effect immediately without restarting the server.
🌐 Browser-Based Client — No Installation
The entire staff-facing UI is served as HTML from the Windows server — pharmacists, salesmen, and cashiers open their browser, navigate to the server's address, and log in. Nothing is installed on client devices. All screens — the sales counter, medicine catalogue, purchase forms, inventory views, and reports — are browser pages served directly by PharmaDesk.
🗃️ SQLite Database with WAL Mode
All pharmacy data is stored in a SQLite database via FireDAC with Write-Ahead Logging (WAL) journal mode and shared cache enabled — providing reliable concurrent multi-user read/write access without a separate database server. Foreign key constraints, auto-update triggers, and performance indexes are set up automatically on first run.
Screenshots
Latest Release
Version 1.0 — May 2026
Initial release — full sales workflow, batch-level inventory, FEFO dispensing, dashboard alerts, and role-based access control.