Giter Club home page Giter Club logo

etherdocs's Introduction


Logo

A Student Document Management System based on Ethereum Blockchain
Explore the docs »

Demo

Table of Contents
  1. About the project
  2. Features
  3. Architecture
  4. Technologies used
  5. Local Setup
  6. Authors
  7. Contact

About The Project

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.

(back to top)

Features

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

(back to top)

Architecture

Issuer workflow process

  • The below diagram shows the overview of the issuer part of system.

image

  1. Issuer submits raw doc and user's blockchain address
  2. Send raw document to Node server
  3. Generation of UUID and QR Generate UUID and QR Code, append QR code and UUID to document Calculate hash of document with QR
  4. Upload doc with QR code to IPFS
  5. React receives IPFS link & hash value of doc from Node server
  6. Store hash value, issuer address, user address and IPFS link
  7. React app returns a response: hash value, issuer and user address, IPFS link

Verifier workflow process

  • The below diagram shows the overview of the verifier part of system.

image

  1. The student has sent a digital document with a QR code, UUID, issuer name, user address, and user's name.
  2. Find the authentic address of the issuer.
  3. Enter the document with the QR code, UUID, issuer address, user address, and user name.
  4. Pass the document to the node server.
  5. Compute the hash value of the document entered by the verifier.
  6. Return the hash value.
  7. Send the UUID, hash value, issuer address, user address, and user name to the blockchain for verification.
  8. 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.
  9. Return the result of verification to the React App.
  10. Return the verification result to the verifier.

Use-case diagrams

  • The below are use-case diagrams of Issuer, Verifier and User(Student)

image

image

image

(back to top)

Corner-cases

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.

(back to top)

Technologies Used

  • 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

(back to top)

License 📜

GNU General Public License v3.0

Authors

Project Guide

Developers

(back to top)

etherdocs's People

Contributors

aniketmore311 avatar brute-force-clan avatar chiragmahajan3101 avatar dependabot[bot] avatar leafycharizard avatar shyrenmore avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

etherdocs's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.