A Student Document Management System based on Ethereum Blockchain
Explore the docs »
Demo
Table of Contents
- For help with local setup contact on Telegram
- Don't forget to star ⭐ the repo
Etherdocs.video.final.mp4
Etherdocs is a project that aims to implement an efficient anti-forgery mechanism for academic documents, such as mark sheets, transcripts, diplomas, and other certificates. The goal is to ensure the authenticity of academic documents, reducing the incidence of counterfeit certificates, and saving time and financial resources for all parties involved in document verification.
The solution proposed by Etherdocs revolves around three roles or entities: an Issuer, a Verifier, and a Student.
- The issuer is the authority that creates and issues the electronic version of the certificate, eg: A university issuing graduating certificates
- Verifier is the potential employer or any person who wants to verify the authenticity of the certificate provided by the student, eg: A potential employer doing background check.
- Finally, the student is the recipient of the certificate and can only view the documents issued to him.
Etherdocs is a project that provides an efficient anti-forgery mechanism for academic documents. By using a combination of blockchain, IPFS, and hash functions, the authenticity of the certificate can be ensured, reducing the incidence of counterfeit certificates and saving time and financial resources for all parties involved in document verification.
- Security: By using blockchain, IPFS, and hash functions, Etherdocs provides a highly secure platform for storing and verifying academic documents. The blockchain is tamper-proof and immutable, ensuring that the data stored on it cannot be modified or deleted. The use of hash functions ensures that any modification to the document will be detected, making it difficult for counterfeit certificates to be created.
- Efficiency: Etherdocs streamlines the process of verifying academic documents, saving time and resources for all parties involved. Verifiers can easily access the certificates and compare the hash values, eliminating the need for manual verification.
- Accessibility: Etherdocs makes it easy for students to access and share their academic documents. The use of IPFS allows for quick and easy access to the documents, while the UUID ensures that the documents are easily identifiable and verifiable.
- Transparency: The use of blockchain ensures transparency and accountability in the issuance and verification of academic documents. All data related to the certificate and the IPFS link are stored on the blockchain, providing a transparent and auditable record of the entire process.
- Universality: Etherdocs can be used by any educational institution, making it a universal solution for ensuring the authenticity of academic documents. The platform can also be used by potential employers, government agencies, or any organization that needs to verify the authenticity of academic documents.
The Etherdocs project is needed because the current system of issuing and verifying academic documents is prone to fraud and counterfeiting. Without an efficient anti-forgery mechanism, it is difficult to ensure the authenticity of academic documents, leading to wasted time and resources for all parties involved. Etherdocs provides a secure, efficient, and transparent solution for verifying academic documents, ensuring that the information on the certificate is accurate and trustworthy.
- The below diagram shows the overview of the issuer part of system.
- Issuer submits raw doc and user's blockchain address
- Send raw document to Node server
- Generation of UUID and QR Generate UUID and QR Code, append QR code and UUID to document Calculate hash of document with QR
- Upload doc with QR code to IPFS
- React receives IPFS link & hash value of doc from Node server
- Store hash value, issuer address, user address and IPFS link
- React app returns a response: hash value, issuer and user address, IPFS link
- The below diagram shows the overview of the verifier part of system.
- The student has sent a digital document with a QR code, UUID, issuer name, user address, and user's name.
- Find the authentic address of the issuer.
- Enter the document with the QR code, UUID, issuer address, user address, and user name.
- Pass the document to the node server.
- Compute the hash value of the document entered by the verifier.
- Return the hash value.
- Send the UUID, hash value, issuer address, user address, and user name to the blockchain for verification.
- Execute the smart contract for verification by matching the UUID associated with the user's address and name and the hash with the verifier-provided details.
- Return the result of verification to the React App.
- Return the verification result to the verifier.
- The below are use-case diagrams of Issuer, Verifier and User(Student)
In the event of a human error while issuing a certificate, the issuer can use the invalidate button to invalidate the certificate. This will revoke the certificate's validity and remove it from the blockchain, ensuring that it cannot be used for verification.
The invalidate button can only be accessed by the issuer and is not visible to the student or verifier. This ensures that the issuer has complete control over the validity of the certificates they issue and can take action to correct any errors or revoke certificates that have been issued in error.
By providing a mechanism for revoking certificates, the Etherdocs system ensures the integrity of the certification process and reduces the risk of fraudulent or erroneous certificates being used for verification.
- Workflow and Architecture Design
- Excalidraw • Draw.io
- Frontend
- React.js and related packages
- CSS and related packages
- Blockchain network: Ethereum
- Smart contracts are written in Solidity programming language
- Smart contracts compilation and deployment to test network was done using Hardhat
- Blockchain wallet used: MetaMask
- Javascript library to communicate with blockchain: Ethers.js
- IPFS Desktop for interacting with IPFS without using terminal
GNU General Public License v3.0
Project Guide
Developers
- Aniket More
- Chirag Mahajan
- Shyren More
- Shubhankar Mote