A comprehensive, easy-to-use Pharmacy Record Management System designed to streamline store operations, inventory tracking, and sales.
- Overview
- ✨ Key Features
- 🛠️ Technology Stack
- ⚙️ Installation & Setup
- 📖 Usage Guide
- 📂 Project Structure
- 🔌 API Documentation
- 📄 License
PharmaCare offers a complete solution for small to medium-sized pharmacies. It allows staff to manage medicines, track stock levels in real-time, process sales quickly, and generate insightful business reports—all from a single, intuitive dashboard.
- Real-time Overview: Instantly view total medicines, low stock alerts, and daily sales stats.
- Smart Alerts: Visual indicators and notifications for expiring medicines and low inventory.
- Centralized Inventory: Create, read, update, and delete medicine records.
- Advanced Search: Filter by category (Tablet, Syrup, Injection) or search by name.
- Detailed Tracking: Keep tabs on batch numbers, prices, and expiry dates.
- Fast Billing: Integrated shopping cart for quick checkout.
- Auto-Calculations: Automatic tax, discount, and total amount calculations.
- Stock Sync: Inventory is automatically updated after every sale.
- Sales Insights: Generate reports for custom date ranges.
- Expiry Tracking: "First Expiring, First Out" alerts to reduce wastage.
- Stock Levels: Detailed reports on current inventory status.
- Admin & Staff: Secure login with Role-Based Access Control (RBAC).
Built with modern, lightweight, and efficient tools.
HTML5: Semantic structure.
CSS3: Responsive Flexbox/Grid layouts.
Vanilla JS (ES6+): Modular application logic.
- Google Fonts: Inter typeface for optimal readability.
Node.js: Runtime environment.
Express.js: Web server framework.
- File System (FS): Custom JSON-based database engine (No SQL/NoSQL required).
- Bcrypt: Security & password hashing.
-
Clone the Repository
git clone https://github.com/your-username/pharmacare.git cd pharmacare -
Install Dependencies
npm install
-
Run the Server
npm start # OR node server.js -
Launch Application Open your browser and visit:
http://localhost:3000
| Role | Username | Password |
|---|---|---|
| Admin | admin |
admin123 |
- Log in with the credentials above.
- You will be directed to the Dashboard to see an overview of your store.
- Navigation: Go to Medicines.
- Add: Click
+ Add Medicine, fill in the form (Name, Batch, Expiry, etc.), and Save. - Update Stock: Use the Stock page to receive new shipments.
- Navigation: Go to Sales.
- Click
+ New Saleor the Cart Icon. - Select items, adjust quantities, applies discounts, and click Complete Sale.
To help you visualize the application, place your screenshots in the images/screenshots/ folder with the filenames below.
| Dashboard | Medicine List |
|---|---|
| Dashboard | Medicines |
| Sales Interface | Reports |
| Sales | Reports |
project/
├── 📁 css/ # Global styles and themes
├── 📁 js/ # Application modules (ES6)
│ ├── app.js # Entry point
│ ├── auth.js # Login/Logout handling
│ ├── db.js # Data abstraction layer
│ └── ... # Feature-specific modules
├── 📁 images/ # Assets and icons
├── 📁 node_modules/ # Vendor dependencies
├── ⚙️ server.js # Express application server
├── 🗄️ database.js # Low-level file DB logic
├── 📄 pharmacy_data.json # Actual data storage (JSON DB)
├── 📄 index.html # Main SPA container
└── 📄 package.json # Project manifests
The backend exposes a REST API at /api.
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/auth/login |
Authenticate user |
GET |
/api/medicines |
Retrieve medicine list |
POST |
/api/sales |
Create a new transaction |
GET |
/api/reports/dashboard |
Fetch dashboard statistics |
This project is open-source and available for educational purposes.