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.