Sahil181045 / Certificate-Validation-System

MIT License
18 stars 5 forks source link

Certificate Validation using Blockchain


You can read my article on Medium to get a better overall understanding of this project.


Introduction

This project provides a Blockchain based solution for generating and verifying digital certificates. The certificate information (uid, candidate_name, course_name, org_name, ipfs_hash) is stored on the blockchain. First, the certificate pdf is generated and stored onto IPFS using Pinata service. Then, the IPFS hash obtained is stored on the blockchain along with other information.

The system comprises of 2 main entities:


Features


Getting Started

Clone the repository using the command:

git clone https://github.com/Sahil181045/Certificate-Validation-System.git

You can run the project either through:


Local Setup

Prerequisites

Running the project

  1. Open a terminal anywhere and start the Ganache blockchain.

    ganache-cli -h 127.0.0.1 -p 8545
  2. Open a new terminal in the project's root directory and execute the following command to compile and deploy the smart contracts.

    truffle migrate
  3. Change the working directory to application directory inside the project's root directory.

    cd application
  4. Launch the streamlit app.

    streamlit run app.py
  5. You can now view the app on your browser running on localhost:8501.

  6. To stop the application, press Ctrl+C.


Using Docker

Prerequisites

Running the project

  1. Start the Docker engine by running the Docker Desktop application.

  2. Open a terminal in the project's root directory.

  3. Run the following command to start the 2 containers (ganache and streamlit-app).

    docker-compose up
  4. You can now view the app on your browser running on localhost:8501.

  5. To stop and remove the containers, use the command:

    docker-compose down

    Note: The insitute email id is "institute@gmail.com" and password is "123456". You will require this for logging in as Institute for the process of Certificate generation.


Additional Notes


Application Screenshots

Home page

Home Page



Login page

Login Page



Generate Certificate Page

Generate Certificate Page



View Certificate Page

View Certificate Page



Verify Certificate using Certificate ID

Verify Certificate using Certificate ID



Verify Certificate using Certificate PDF

Verify Certificate using Certificate PDF




License

This project is licensed under the MIT license. See the LICENSE file for more details.