Skip to content

manavi-24/ExamLedger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“ Blockchain-Based Online Examination System

A decentralized, secure, and transparent solution for conducting online exams using Ethereum, IPFS, and Smart Contracts.


πŸ“– Table of Contents


πŸ“Œ Introduction

This project aims to eliminate security issues, manipulation, and central authority in online examination systems by leveraging blockchain technology. The system ensures:

  • Tamper-proof question & answer storage
  • Fair evaluation and transparent results
  • Immutable logs of all exam-related actions

πŸ” Project Overview

In recent times, major examination systems have suffered from issues like paper leaks and manipulated result data. Our blockchain-based exam portal provides:

  • βœ… Decentralization β€” IPFS for question/answer storage
  • βœ… Transparency β€” Immutable records on Ethereum
  • βœ… Security β€” Role-restricted smart contract logic
  • βœ… Automation β€” Streamlined exam lifecycle

βš™οΈ How Does It Work?

πŸ“Œ 1. Exam Creation (Admin Role)

  • Admin uploads questions as a JSON file to IPFS
  • Receives a CID (Content Identifier)
  • CID is stored in ExamContract.sol on Ethereum
  • Students can view, not edit

πŸ“Œ 2. Student Submission (Student Role)

  • Student answers questions offline
  • Uploads answer JSON to IPFS
  • CID is stored in SubmissionContract.sol on Ethereum

πŸ“Œ 3. Evaluation (Teacher/Admin Role)

  • Teacher fetches answer using CID from IPFS
  • Evaluates, uploads result to IPFS
  • Stores result CID in EvaluationContract.sol

πŸ“Œ 4. Result Viewing (Student Role)

  • Students fetch result CID from Ethereum
  • View results and feedback from IPFS

🧠 Architecture Flow (Mermaid Diagram)

Use the VS Code Markdown Preview Mermaid Support extension or GitHub preview to view this chart.

flowchart TD
    A[Admin Uploads Exam JSON to IPFS] --> B[Get CID of Exam JSON]
    B --> C[Store CID in ExamContract on Ethereum]
    C --> D[Student Views Exam Using CID]
    D --> E[Student Submits Answer JSON to IPFS]
    E --> F[Get CID of Answer]
    F --> G[Store CID in SubmissionContract on Ethereum]
    G --> H[Teacher Fetches Answer CID from Blockchain]
    H --> I[Retrieve Answer JSON from IPFS]
    I --> J[Evaluate, Upload Result to IPFS]
    J --> K[Store Result CID in EvaluationContract]
    K --> L[Student Fetches Result from Blockchain and IPFS]

    subgraph Blockchain
        C
        G
        K
    end

    subgraph IPFS
        A
        E
        J
    end
Loading

🧩 Technologies Used

Component Technology
Frontend React.js + Ethers.js
Backend Golang + Geth
Blockchain Ethereum (Sepolia Testnet)
Smart Contracts Solidity
Storage IPFS
Authentication MetaMask Wallet

πŸ§ͺ Example Workflow (Step-by-Step)

  1. βœ… Admin uploads exam (JSON) β†’ IPFS β†’ stores CID on Ethereum
  2. πŸ§‘β€πŸŽ“ Student submits answers (JSON) β†’ IPFS β†’ stores CID on Ethereum
  3. πŸ§‘β€πŸ« Teacher/Admin fetches answers β†’ evaluates β†’ uploads evaluated JSON to IPFS β†’ stores result CID
  4. πŸ” Student retrieves result CID β†’ fetches score from IPFS β†’ reads feedback

πŸ‘₯ Roles & Responsibilities

Team Member Role & Responsibilities
UI/UX Designer Design clean, intuitive frontend. Collaborate on MetaMask flows and result display UI.
Frontend Developer Build React interface, integrate Ethers.js, handle wallet connection via MetaMask.
Smart Contract Dev Write & deploy Solidity contracts (Exam, Submission, Evaluation). Secure access.
Backend Developer Build Go backend, connect to Geth, manage API calls and IPFS file management.
Security Specialist Audit smart contracts, optimize gas, test vulnerabilities (via Remix/Hardhat).

πŸš€ Getting Started

βœ… Prerequisites

  • Node.js, npm
  • Go installed
  • MetaMask browser extension
  • IPFS CLI installed
  • Sepolia ETH in MetaMask

πŸ”§ Installation

# Clone the repository
git clone https://github.com/your-repo/blockchain-exam-system.git
cd blockchain-exam-system

# Install frontend dependencies
npm install

βš’οΈ Smart Contract Deployment

  • Use Remix or Hardhat to deploy:

    • ExamContract.sol
    • SubmissionContract.sol
    • EvaluationContract.sol
  • Add contract addresses to .env or config files

▢️ Run the Project

# Start React frontend
npm start

# Start Go backend (assuming main.go exists)
go run main.go

πŸ“· Screenshots

WhatsApp Image 2025-04-10 at 12 58 40_7bfaab80 WhatsApp Image 2025-04-10 at 12 58 40_9ad3171e WhatsApp Image 2025-04-10 at 12 58 41_3cb19d60 WhatsApp Image 2025-04-10 at 12 58 41_861c2fb7 WhatsApp Image 2025-04-10 at 12 58 42_e7f7a0fd

πŸ“œ License

This project is licensed under the MIT License. Feel free to fork, use, or contribute.


πŸ›  Built with πŸ’™ at Hack 5.0 πŸ§‘β€πŸ’» Team: Paradox

About

A decentralized, secure, and transparent solution for conducting online exams using Ethereum, IPFS, and Smart Contracts.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published