What this project solves.
A full-stack pharmacy management platform with a customer dashboard, order management workflow, integrated payment processing, and well-structured REST APIs for inventory and prescription handling.
Traditional pharmacies rely on manual processes for inventory tracking, prescription verification, and order management — leading to stockouts, dispensing errors, and long customer wait times.
A full-stack pharmacy management platform with separate customer and admin interfaces. Customers browse medications, submit prescriptions, and track orders online. Admins manage inventory, verify prescriptions, and process payments through a structured dashboard.
Reduces dispensing errors through structured digital prescription workflows, eliminates manual stock counting with real-time inventory tracking, and cuts customer wait time by enabling online ordering.
See it in action
Under the hood
Features
- Customer-facing medication browsing with search and filter
- Online prescription upload and digital verification workflow
- Real-time inventory tracking with low-stock alerts
- Order management with status tracking (placed → verified → dispensed)
- Integrated payment processing with receipt generation
- Admin dashboard with sales analytics and reports
- REST API with role-based access control (customer / pharmacist / admin)
- MongoDB-backed flexible schema for diverse medication data
Challenges
- Designing a prescription verification workflow that prevents dispensing without pharmacist approval
- Managing real-time inventory consistency when multiple orders are placed simultaneously
- Structuring MongoDB schemas for medications with highly variable attributes (dosages, variants, etc.)
- Implementing secure file upload for prescription images with HIPAA-mindful handling
Solutions
- Built a multi-step order state machine where orders are locked until a pharmacist digitally approves the prescription
- Used MongoDB transactions to ensure inventory decrements are atomic and consistent under concurrent orders
- Adopted a flexible document schema with a base medication model extended by category-specific sub-schemas
- Stored prescription images with server-side validation, type checking, and access-controlled retrieval endpoints
Lessons Learned
- State machines make complex workflows far more reliable and easier to reason about than ad-hoc status flags
- MongoDB's flexibility is a strength for variable data but requires deliberate schema discipline to avoid chaos
- Healthcare applications require extra rigour around data access controls from the very first line of code
- Designing APIs for both customer and admin roles simultaneously reveals interface inconsistencies early
