This project aims to develop a secure and decentralized certificate generation and validation system leveraging Blockchain and IPFS technologies. The system ensures data integrity and user authentication by combining the immutability of blockchain with the decentralized nature of IPFS.
- Secure Certificate Generation: Users can generate certificates with unique details such as name, email, GST number, and contact info.
- Decentralized Storage: Certificates are stored on IPFS, ensuring secure and tamper-proof storage.
- Blockchain Integration: The certificate hash is stored on a blockchain via smart contracts, providing an immutable record.
- Verification Feature: Users can validate certificates by inputting the certificate hash to check its authenticity against the blockchain.
- User Authentication: Registration and login are required to generate certificates, ensuring security through database verification.
-
Frontend:
- React.js
- Vite for fast development setup
-
Backend:
- Node.js with Express.js
- MongoDB for user credentials storage
- JWT for user authentication
-
Blockchain:
- Ethereum smart contracts (via Solidity)
- Web3.js for interaction with the blockchain
-
Storage:
- IPFS (InterPlanetary File System) for decentralized file storage
Users can enter valid credentials to log in to the system.
If the user is not registered in our database, they must sign up first.
After successful login, users are redirected to the home page, where they can interact with the system and use the "Generate Certificate" or "Validate Certificate" functionality.
Users have the flexibility to select from a range of provided templates and generate certificates tailored to their specific requirements.
Organizations can fill in these details to generate the certificate and download it in PDF format.
Upon selecting a template, users can generate their certificate, preview it, and then have the option to download it. They can also choose to add the certificate to IPFS to obtain the necessary hash.
After adding the certificate to IPFS, users will see a pop-up showing the certificate hash received from IPFS.
Verifiers can check whether the certificate is valid by entering the certificate hash.
To use the Secure and Decentralized Certificate Generation and Validation System:
-
Generate a Certificate:
- Navigate to the frontend application.
- Log in or register an account.
- Fill in the required certificate details (e.g., name, email, GST number).
- Submit the form to generate a certificate. The certificate will be stored on IPFS, and the hash will be recorded on the blockchain.
-
Verify a Certificate:
- Access the verification page on the frontend application.
- Enter the certificate hash.
- The application will fetch the certificate details from IPFS and validate the hash against the blockchain.
Contributions are welcome! If you want to contribute to this project, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and test them thoroughly.
- Submit a pull request with a detailed description of your changes.