A decentralized inventory management system built on blockchain technology to ensure product authenticity and traceability. This project combines smart contracts with a modern web interface to provide a secure and transparent way to manage product inventory.
The project consists of three main components:
-
Smart Contracts (
/contracts)- Contains the core blockchain logic
- Handles product registration, verification, and inventory management
- Ensures data immutability and transparency
-
Frontend Application (
/trustdrive)- Modern React-based web interface
- User-friendly dashboard for inventory management
- Real-time blockchain interaction
-
Backend Server (
/trustdrive_server)- Handles API requests
- Manages database operations
- Integrates blockchain functionality with traditional systems
- Product authenticity verification
- Real-time inventory tracking
- Secure product registration
- Transparent supply chain management
- User authentication and authorization
- Blockchain-based data immutability
- Node.js (v14 or higher)
- MetaMask or similar Web3 wallet
- Hardhat development environment
- MongoDB (for backend storage)
- Clone the repository:
git clone [repository-url]
cd Blockchain-Inventory-Management-for-Displaying-Genuine-Products- Install dependencies:
# Install root dependencies
npm install
# Install frontend dependencies
cd trustdrive
npm install
# Install backend dependencies
cd ../trustdrive_server
npm install- Configure environment variables:
- Create
.envfiles in both frontend and backend directories - Add necessary configuration (see respective README files for details)
- Create
- Start the local blockchain:
npx hardhat node- Deploy smart contracts:
npx hardhat run scripts/deploy.js --network localhost- Start the backend server:
cd trustdrive_server
npm run dev- Start the frontend application:
cd trustdrive
npm startRun the test suite:
npx hardhat testFor gas usage reports:
REPORT_GAS=true npx hardhat testThis project is licensed under the MIT License - see the LICENSE file for details.
For support, please open an issue in the GitHub repository or contact the development team.