PramaanPatra is a decentralized certificate management system built on blockchain technology, aiming to securely generate, validate, and store vital certificates. From birth certificates to graduation certificates and land deed certificates, PramaanPatra ensures transparency, immutability, and efficiency in traditional certificate management.
Click to expand
-
Blockchain Security:
- Utilizes Ethereum blockchain for smart contracts.
- Solidity for smart contract development.
- Ether.js for connecting smart contracts with the frontend.
- Transparent and secure transactions on the Ethereum mainnet.
-
Dynamic Certificate Records:
- Records dynamic and immutable histories of certificates.
- Enhances trust and reliability by capturing the entire lifecycle of each document.
-
User Authentication and Management:
- Secure user registration and login system.
- Database administrator capability to add and remove users manually.
-
Certificate Generation:
- Dynamic form creation for different certificate types.
- Transaction phase facilitated through Metamask or other web3 providers.
- Certificates generated in PDF format with QR code for verification.
-
Advantages Over Traditional Certificates:
- Increased trust and security with transparent transactions on the Ethereum mainnet.
- Automation reduces administrative workload and minimizes human errors.
- Easy verification using transaction details.
- Immune to fraud access with durable and unmodifiable certificate details.
Click to expand
- Ethereum blockchain for smart contracts.
- Solidity for smart contract development.
- Ether.js to connect smart contracts with the frontend.
- Hardhat for Ethereum development environment (development purposes).
- Metamask or other web3 providers for transaction handling.
- Developed using React.js for a responsive user interface.
- Redux.js for state management.
- Material UI for a modern and user-friendly design.
- Metamask or other web3 providers for transaction authentication.
- Hardhat for Ethereum development environment (development purposes).
- MongoDB as the database for user management.
Click to expand
- Install dependencies:
npm install - Run tests:
npx hardhat test - Report gas usage:
REPORT_GAS=true npx hardhat test - Start local Ethereum node:
npx hardhat node - Deploy smart contracts:
npx hardhat run scripts/deploy.js
- Change to the client directory:
cd client - Install dependencies:
npm install - Start the React development server:
npm start
- Change to the server directory:
cd server - Run the Node.js server:
npm run dev
- Start a local Ethereum test node:
npx hardhat node
- Deploy on a local Ethereum network:
npx hardhat run --network localhost scripts/deploy.js
- Switch to the "sih" database:
use sih - Retrieve all documents from the "users" collection:
db.users.find({}) - Delete all documents from the "users" collection:
db.users.deleteMany({})
To ensure the reliability and security of PramaanPatra, rigorous testing is conducted across different components:
-
Smart Contracts Testing:
- Run unit tests using Hardhat:
npx hardhat test
- Run unit tests using Hardhat:
-
Frontend Testing:
- Execute React component tests:
npm test
- Execute React component tests:
-
Security Audits:
- Regular security audits are conducted to identify and mitigate vulnerabilities.
Comprehensive documentation is available to guide users, administrators, and developers through various aspects of the PramaanPatra project. Find detailed information in the Documentation directory:
Contributions to PramaanPatra are welcome! To contribute, follow these steps:
- Fork the repository.
- Create a new branch for your feature:
git checkout -b feature-name - Commit your changes:
git commit -m 'Add some feature' - Push to the branch:
git push origin feature-name - Open a pull request.
For more details, check out the Contribution Guidelines.
Devayan Mandal
- GitHub: @devayanm
- Contribution: Frontend development, UI/UX design
Ashesh Mandal
- GitHub: @ashesh
- Contribution: Smart contract development, Blockchain integration
This project is licensed under the CC BY-NC-ND 4.0 License - see the LICENSE.txt file for details.
Feel free to explore and contribute to the project!