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
 
