https://github.com/mongetro/certichain
Blockchain-based Certificate/Diploma verification system using Ethereum, IPFS, Node.js, and React
https://github.com/mongetro/certichain
blockchain certification ethreum ipfs nodejs react smart-contracts solidity typescript
Last synced: 3 months ago
JSON representation
Blockchain-based Certificate/Diploma verification system using Ethereum, IPFS, Node.js, and React
- Host: GitHub
- URL: https://github.com/mongetro/certichain
- Owner: Mongetro
- Created: 2025-11-03T17:43:41.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2025-11-03T18:01:45.000Z (3 months ago)
- Last Synced: 2025-11-03T19:29:55.804Z (3 months ago)
- Topics: blockchain, certification, ethreum, ipfs, nodejs, react, smart-contracts, solidity, typescript
- Language: TypeScript
- Homepage:
- Size: 203 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CertiChain
## Overview
CertiChain is a decentralized certificate and diploma verification platform that uses Ethereum blockchain technology to provide tamper-proof, transparent, and instant verification of academic and professional certificates.
## Problem Solved
- 🔍 Certificate Fraud Prevention: Eliminates fake certificates through blockchain immutability
- ⚡ Instant Verification: Reduces verification time from days to seconds
- 🔒 Data Integrity: Ensures certificates cannot be altered after issuance
- 🌐 Global Accessibility: Provides decentralized verification without central authority
## ✨ Key Features
### For Educational Institutions
- 🏛️ Role-based Access Control: Ministry of Education as SUPER_ADMIN (for issuer roles assignment)
- 📜 Certificate Issuance: Authorized institutions can issue tamper-proof certificates
- 🔄 Revocation Management: Ability to revoke compromised certificates
- 📊 Transparent Audit Trail: Complete history of all certificate operations
### For Certificate Holders
- 🔍 Instant Verification: Verify certificate authenticity in seconds
- 📱 Easy Sharing: Share verifiable certificates with employers/universities
- 💼 Permanent Storage: Certificates stored permanently on blockchain and IPFS
### For Verifiers
- 🎯 Dual Verification: Certificate ID + Document Hash verification
- 🔗 Direct Blockchain Proof: Link to exact transaction on Etherscan
- 📄 Document Integrity: SHA hash comparison for tamper detection
- 🌐 No Registration Required: Public verification without accounts
## Quick start
The project is configured for deployment on the local node network with Hardhat and on the Sepolia test blockchain network. In this tutorial, we provide instructions for a real-world deployment on the Sepolia Ethereum test network.
## Prerequisites
Before you begin, ensure you have:
- [Docker](https://www.docker.com/products/docker-desktop/) (installed and running)
- [MetaMask](https://metamask.io/) browser extension
- [Git](https://git-scm.com/install/)
- Testnet ETH (for Sepolia deployment). You can get some on [Alchemy Faucet ](https://www.alchemy.com/faucets/ethereum-sepolia) or [Google Faucet ](https://cloud.google.com/application/web3/faucet/ethereum/sepolia)
## 1. Clone & Setup
The first things you need to do are cloning this repository and setting up the project environment files
```sh
git clone https://github.com/Mongetro/certichain.git
```
## 2. Blockchain (.env) configuration
Create a .env file in the blockchain-smart-contracts directory :
In the project root directory:
```sh
cd certiChain
```
```sh
cp ./blockchain-smart-contracts/.env.example ./blockchain-smart-contracts/.env
```
Once you have copied the .env file, configure all environment variables according to the instructions included in the file.
PS : ⚠️ NEVER commit real private keys in your .env to version control
## 3. Backend (.env) configuration
Always in the project root directory:
```sh
cp ./backend/.env.example ./backend/.env
```
Once you have copied the .env file, configure all environment variables according to the instructions included in the file.
PS : ⚠️ NEVER commit real private keys in your .env to version control
## 4. Deployment of smart contracts and launch of the decentralized application (backend + frontend) using the Sepolia network
In the project root directory:
- Launch all services:
```sh
make sepolia
```
Wait until all services are up and running. The decentralized application (dApp) will usually be available at [http://localhost:5173/](http://localhost:5173/).
Remember that in the browser, you must have the account whose private key you added to certichain/blockchain-smart-contracts/.env. This account is registered as the Ministry of Education (SUPER_ADMIN) during deployment. You should have other accounts (with Sepolia ETH) which will be considered certificate issuing institutions.
- Stop all services:
```sh
make stop
```
## User Guide
## 1. Connect Wallet
- Open the application in your browser at [http://localhost:5173/](http://localhost:5173/)
- Connect your wallet (MetaMask)
- Ensure you're on the correct network (Sepolia ...)
## 2. Institution Management
- Make sure you log in with the correct account (Ministry of Education (SUPER_ADMIN))
- Navigate to "Admin"
- Clic the Add Institution butont and fill the Register New Institution form
- Send data and confirm the blockchain transaction via your wallet (metamask)
## 3. Issue Certificate
- Make sure you log in with the correct account (an account registered as an issuer)
- Navigate to "Issue Certificate"
- Fill in details and upload the PDF certificate/diploma file
- Send data and confirm the blockchain transaction via your wallet (metamask)
## 4. Verify Certificate/Diploma
- Navigate to " Verify Certificate"
- Enter the certificate ID and upload the certificate PDF file
- Verify the Certificate via Verify Certificate Authenticity button
## Troubleshooting
**Common Issues**
**_Metamask Connection Issues_**
- Ensure you're on the correct network
- Reset account in MetaMask (Settings > Advanced > Clear activity tab data)
**_Transaction Failures_**
- Check you have sufficient gas funds (Sepoli ETH)
- Verify tha the services are running and contracts are deployed
**CERTICHAIN : Built with ❤️ for a more transparent and verifiable future ! 🎉**