A Web3 decentralized platform to verify medicine authenticity using IPFS, Smart Contracts, and QR-based lookup.
Built by Team Forzentix at hackathon speed ⚡.
- 🎥 Demo Video
- 🌐 Try the App
- 🧑💻 Team Portfolio
- Frontend: React.js, TailwindCSS
- Backend: Node.js, Express.js
- Blockchain: Ethers.js + Avalanche Fuji Testnet
- Storage: IPFS (Pinata Gateway)
- QR: Dynamic QR rendering for CID lookup
✅ Register new medicine batches with CID + txHash
✅ Lookup by Batch Number or CID
✅ Fetch metadata directly from IPFS (with fallback)
✅ QR-based traceability – scan to verify instantly
✅ Sleek Dark/Light UI Toggle for judges & users
✅ Hackathon-friendly modular architecture
MedLedger/
├── backend/
| ├── node_modules/ # Python cache files (ignored)
| ├── abi/
| ├── artifacts/
| ├── cache/
| ├── config/
| | └── contract.js
| ├── contracts/
| | └── MedLedger.sol
| | └── MedLedgerDonor.sol
| | └── MedLedgerOrgan.sol
| ├
| ├── data/
| ├── routes/
| | └── api.js
| | └── consent.js
| | └── donor.js
| | └── donorInfo.js
| | └── donorLookup.js
| | └── medicine.js
| | └── medicineLookup.js
| | └── organ.js
| | └── stats.js
| | └── verify.js
| |
| ├── scripts/
| | └── deploy.js
| ├── scripts/
| | └── blockchain.js
| | └── ipfs.js
| | └── pintaUploader.js
| |
| ├── test/
| ├── utils/
| | └── uploadToIPFS.js
| ├── .env
| ├── env.js
| ├── package.lock.json
| ├── hardhat.config.js
| ├── pakage.json
| └── server.js
|
|
├── frontend/
| ├── node_modules/
| ├── public/
| ├── src/
| | ├── components/
| | | └── BlobBackground.jsx
| | | └── DashbordsStats.jsx
| | | └── DashbordsSystem.jsx
| | | └── QRViewer.css
| | | └── QRVivewr.jsx
| | | └── Lucidelcons.jsx
| | | └── StatsDashbord.jsx
| | |
| | |
| | ├── pages/
| | | └── ConsentVerify.jsx
| | | └── Dashboard.jsx
| | | └── DonerLookup.jsx
| | | └── Login.jsx
| | | └── MedicineLookup.jsx
| | | └── Registerbatch.jsx
| | | └── RegisterOrgan.jsx
| | | └── ScanQr.jsx
| | | └── ScanVerify.jsx
| | | └── Welcome.jsx
| | |
| | ├── app.css
| | ├── App.jsx
| | ├── index.css
| | └── main.jsx
| |
| ├──.gitignore
| ├──package-lock.json
| ├──package.json
| ├──postcss.config.js
| ├──tailwind.config.js
| └──README.md
|
├──screenshots/
└──README.md
git clone https://github.com/Alirizvi11/MedLedger.git
cd backend npm install node server.js
cd ../frontend npm install npm run dev
🔐 Private key handling with dotenv 🧪 Reproducible smart contract calls 📈 Benchmarked against traceability standards ⚡ Gas-efficient & IPFS-resilient storage
7a54cba21fec42c42598f5531a41961d955be4de
| Name | Role | GitHub |
|---|---|---|
| ** Ali Rizvi ** | Backend Architect | @ali-rizvi |
| ** Lokendra ** | Frontend Lead | @loky |
| ** Abhay ** | Blockchain Dev | @abhay |








