A decentralized application (dApp) that enables secure and immutable management of digital evidence using Ethereum smart contracts and IPFS. Role-based access control ensures only authorized parties like police officers and court officials can interact with the system, protecting the integrity of uploaded evidence.
- Ethereum (Smart Contracts - Solidity)
- Truffle (Development Framework)
- Ganache (Local Ethereum Blockchain)
- MetaMask (Wallet & Authentication)
- IPFS via Pinata (Decentralized File Storage)
- HTML/CSS/JavaScript (Frontend)
Install the following tools:
git clone https://github.com/Niyati1206/EvidenceManagementSystem.git
cd EvidenceManagementSystemnpm install- Go to https://www.pinata.cloud/
- Sign up and verify your email
- Go to your API Keys dashboard
- Generate a new key and copy: PINATA_API_KEY PINATA_SECRET_API_KEY
- Create a config.js file and add your pinata key as follows:
var config = { PINATA_API_KEY: 'add_your_key_here', PINATA_SECRET_API_KEY: 'add_your_secret_key_here' };
- Open the Ganache app
- Create a new workspace and add the truffle-config.js file to it
- Note the RPC server URL (usually http://127.0.0.1:7545)
truffle compile
truffle migrate --reset- Copy the contract address from the "EvidenceManagement" contract and paste it into
- app.js (line number 7)
- court-dashboard.js (line number 7)
- police-dashboard.js (line number 7)
- Also update the ABI in frontend of all three js files
npx http-server ./publicThen open in your browser:
📍 http://localhost:8080
-
Configure the network and set up a local network
-
Add atleast 2 accounts (For Police and Court) to the metamask wallet using the private key from Ganache accounts
