ArunBalajiR / Authentic-Certification-System-Using-Blockchain

Generating and Validating Academic E-Certificates through Smart Contracts in Ethereum Blockchain Network

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Blockchain-based-Certificate-Authentication-System

Decentralized Application to store and verify the authenticity of Academic Certificates

Built using Ethereum on local blockchain setup and deployed on Ropsten test network.

Contract deployed at 0xAC677Fd653576A70b9fAde4396caEE4AE21fc95a
RPC Network Ropsten Test Network

Steps to set up local development environment

Setting local blockchain

  1. We need to install Node, Ganache and Truffle.

    Download Node.js

    Download Ganache & create a workspace.

    For Truffle

    npm i -g truffle
  2. Install dependencies

    Launch cmd in project folder path

    npm install

    after completion

    cd client
    npm install
  3. Deploy the smart contract to the local blockchain.

    truffle migrate

If the contracts are modified, then they should be re-migrated.

Setting MongoDB

  1. Create account in MongoDB Atlas

  2. Create a cluster and get the URI key, add it to .env file.

Setting Mail Service

  1. Create an account in Sendgrid

  2. Verify single sender email and get the API key, add them to .env file

Now we can start the server

In project folder, for server

npm run dev

In client folder

npm start

Deploying Smart Contract

The contract can be deployed in any test networks. We are using Ropsten test network with the help of truffle.

  1. First of all we need to have a metamask account. When we create an account in metamask a mnemonic is given to us. You can read how to get a mnemonic here.

  2. After that create a project in Infura. This will help us to use ropsten network through infura.

  3. You will get an endpoint like this https://ropsten.infura.io/yourapikey.

  4. Add this API key, Ropsten Account address and it's private key in .env files.

  5. Now you can deploy the smart contract using a single command:

    truffle migrate --network ropsten

Deploy client to heroku

Deploy

Install heroku-cli & follow the steps to deploy.

Happy coding!! 😎

About

Generating and Validating Academic E-Certificates through Smart Contracts in Ethereum Blockchain Network

License:GNU General Public License v3.0


Languages

Language:JavaScript 97.5%Language:Solidity 1.4%Language:HTML 0.7%Language:Shell 0.4%