Skip to content

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.

License

Notifications You must be signed in to change notification settings

devayanm/PramaanPatra

Repository files navigation

PramaanPatra - Decentralized Certificate Management System

PramaanPatra Logo

GitHub last commit GitHub issues GitHub pull requests

Introduction

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.

Features

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.

System Architecture

Click to expand

Blockchain Infrastructure

  • 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.

Frontend

  • 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.

Backend

  • Hardhat for Ethereum development environment (development purposes).
  • MongoDB as the database for user management.

Getting Started

Click to expand

Ethereum Smart Contracts

  1. Install dependencies: npm install
  2. Run tests: npx hardhat test
  3. Report gas usage: REPORT_GAS=true npx hardhat test
  4. Start local Ethereum node: npx hardhat node
  5. Deploy smart contracts: npx hardhat run scripts/deploy.js

Frontend

  1. Change to the client directory: cd client
  2. Install dependencies: npm install
  3. Start the React development server: npm start

Backend

  1. Change to the server directory: cd server
  2. Run the Node.js server: npm run dev

Testnet

  • Start a local Ethereum test node: npx hardhat node

Blockchain Deployment

  • Deploy on a local Ethereum network: npx hardhat run --network localhost scripts/deploy.js

MongoDB

  1. Switch to the "sih" database: use sih
  2. Retrieve all documents from the "users" collection: db.users.find({})
  3. Delete all documents from the "users" collection: db.users.deleteMany({})

Testing and Security

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
  • Frontend Testing:

    • Execute React component tests: npm test
  • Security Audits:

    • Regular security audits are conducted to identify and mitigate vulnerabilities.

Documentation

Comprehensive documentation is available to guide users, administrators, and developers through various aspects of the PramaanPatra project. Find detailed information in the Documentation directory:

Contributing

Contributions to PramaanPatra are welcome! To contribute, follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature: git checkout -b feature-name
  3. Commit your changes: git commit -m 'Add some feature'
  4. Push to the branch: git push origin feature-name
  5. Open a pull request.

For more details, check out the Contribution Guidelines.

Contributors

Devayan Mandal

Devayan Mandal

  • GitHub: @devayanm
  • Contribution: Frontend development, UI/UX design

Ashesh Mandal

Ashesh Mandal

  • GitHub: @ashesh
  • Contribution: Smart contract development, Blockchain integration

License

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!

About

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •