Skip to content

pphulara/Nishaan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nishaan: Decentralized Evidence Management System

Nishaan Hero Solidity Status Next.js Status

Nishaan is a comprehensive Web3 solution for secure, immutable, and transparent evidence management designed for modern law enforcement and judicial systems. With a cinematic WebGL-powered frontend and robust Ethereum-based blockchain architecture, the system guarantees cryptographically verifiable chains of custody.

🌟 Key Features

  • Cryptographic Integrity: Evidence files are securely uploaded to the InterPlanetary File System (IPFS) utilizing Pinata. The resulting CID hash and evidence metadata are anchored directly onto an Ethereum smart contract.
  • Role-Based Execution Policies: Strict, smart-contract enforced access controls ensure only verified Police officers can submit evidence, and Court officials can review, verify or archive the evidence. A centralized Admin node governs access provisioning.
  • Transparent Chain of Custody: An immutable log of every view, status change, and system interaction ensures total auditability without compromising sensitive data.
  • Cinematic & Immersive UI: Built with Next.js, Framer Motion, and WebGL (Three.js/React Three Fiber) to provide a visually stunning, responsive, and fluid user experience.

🏗️ Technology Stack

Frontend (/frontend)

  • Next.js 16 (App Router) & React 19
  • Tailwind CSS v4 & Framer Motion (Animations)
  • Three.js & React Three Fiber (Cinematic WebGL elements)
  • Ethers.js v6 (Web3 Integration)
  • Lucide React (Icons)

Backend & Contracts (/backend)

  • Hardhat Node & Tooling
  • Solidity (^0.8.28)
  • IPFS via Pinata (Decentralized file storage)
  • Chai / Mocha (Contract testing suite)

🚀 Getting Started

Follow these steps to run the complete project locally. You will need multiple terminal windows.

Prerequisites

  1. Node.js: v22.20.0 or higher recommended.
  2. Browser Wallet: Install MetaMask (or similar Web3 wallet) into your browser.
  3. Pinata Account: Setup a Pinata account to obtain API Keys for uploading evidence to IPFS.

1. Setup & Start the Local Blockchain Node

Open a new terminal and start the Hardhat local node:

cd backend
npm install
# Set up your environment variables locally
cp .env.example .env
npm run node

Keep this terminal running.

1.5 Configure Browser Wallet for Local Network

To connect your browser wallet (e.g., MetaMask) to the local Hardhat node:

  1. Open your browser wallet extension.
  2. Click on the network dropdown and select "Add Network".
  3. Enter the following details:
  4. Save the network.

2. Deploy Smart Contracts

Open a second terminal to deploy the smart contracts (EvidenceManagement.sol) to the local node:

cd backend
npm run deploy:local

Note the deployed contract address and update the frontend configuration appropriately.

3. Run the Frontend Development Server

Open a third terminal to start the Next.js frontend:

cd frontend
npm install
# Configure frontend environment keys
cp .env.example .env.local
# Add Pinata keys, contract address, etc. to .env.local
npm run dev

Once the frontend is running, you can access the application at http://localhost:3000.


📜 Available Scripts

Backend (/backend)

  • npm run node: Starts the Hardhat local node.
  • npm run compile: Compiles the smart contracts.
  • npm run deploy:local: Deploys contracts to the localhost network.
  • npm test: Runs the testing suite.

Frontend (/frontend)

  • npm run dev: Starts the Next.js development server.
  • npm run build: Builds the app for production.
  • npm run start: Runs the built production application.
  • npm run lint: Runs ESLint over frontend files.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors