DocVer is a web-based platform that leverages blockchain technology to provide secure, efficient, and tamper-proof document verification for institutions and organizations. The platform allows users to upload, verify, and manage documents, ensuring authenticity and trust in digital operations.
- Blockchain-Backed Verification: Uses Ethereum smart contracts to store and verify document hashes, ensuring immutability and transparency.
- IPFS Integration: Documents are uploaded to IPFS (via Infura), providing decentralized and persistent storage.
- MetaMask Authentication: Users interact with the platform using MetaMask for secure wallet-based authentication and transaction signing.
- Document Upload: Upload PDF or image files, which are hashed and stored on the blockchain and IPFS.
- Document Verification: Instantly verify the authenticity of any document by uploading it; the platform checks the hash against the blockchain.
- Document Deletion: Authorized users can remove document hashes from the blockchain.
- Admin Dashboard: Manage exporters (institutions), add/edit/delete their information, and monitor platform statistics.
- QR Code Generation: Downloadable QR codes for each uploaded document, linking to its verification.
- Responsive UI: Built with Bootstrap 5 and enhanced with animations (AOS) for a modern user experience.
The core of DocVer is the Verification.sol smart contract, which manages:
- Exporter (institution) registration and management (add, edit, delete).
- Document hash storage and lookup.
- Ownership and authorization logic for secure operations.
- Frontend: HTML, CSS (Bootstrap, AOS), JavaScript
- Blockchain: Ethereum (Solidity smart contract)
- Web3 Integration: web3.js
- File Storage: IPFS via Infura
- Wallet: MetaMask
- QR Code: qrcode.js
- UI Libraries: Bootstrap 5, AOS
- Node.js and npm
- MetaMask browser extension
- Access to an Ethereum testnet (e.g., Polygon, Goerli)
- Infura project credentials for IPFS
-
Clone the repository:
git clone <repo-url> cd blockchainproject/Blockchain
-
Install dependencies:
npm install
-
Configure Environment:
- Update your Infura Project ID and Secret in
js/App.js. - Set your deployed contract address and ABI in
js/App.js.
- Update your Infura Project ID and Secret in
-
Run the App:
- Open
index.htmlin your browser. - Make sure MetaMask is connected to the correct network.
- Open
Blockchain/
├── about.html
├── admin.html
├── assets/
├── Contract/
│ └── Verfication.sol
├── css/
├── delete.html
├── files/
├── index.html
├── js/
├── package.json
├── upload.html
└── verify.html
- Upload: Go to "Upload" and select a document. Confirm the transaction in MetaMask.
- Verify: Go to "Verify" and upload a document to check its authenticity.
- Delete: Go to "Delete" to remove a document hash (requires authorization).
- Admin: Manage exporters and view stats in the "Admin" section.
See Contract/Verfication.sol for the Solidity code. Key functions:
add_Exporter(address, string)delete_Exporter(address)alter_Exporter(address, string)addDocHash(bytes32, string)findDocHash(bytes32)deleteHash(bytes32)getExporterInfo(address)
- Developer: Praveen Kumar (Full Stack Developer)
- UI/UX: Bootstrap, AOS
- Blockchain: Solidity, web3.js