Skip to content
EduFi Scholar

EduFi Scholar

Empowering Education Through Decentralized Trust

4

Created on 12th March 2025

EduFi Scholar

EduFi Scholar

Empowering Education Through Decentralized Trust

The problem EduFi Scholar solves

The Problem: Broken Trust in Educational Funding 🚫💸

Traditional scholarship systems suffer from:

  • Opaque Processes: Students and donors lack visibility into fund allocation
  • Bureaucratic Delays: Manual verification slows down disbursements
  • 🕵️ Fraud Risks: Fake scholarships and misused funds
  • 🌍 Access Barriers: Geographic and institutional limitations
  • 📉 Inefficient Tracking: No real-time updates on applications or fund usage

How EduFi Scholar Revolutionizes Education Funding 🚀

For Students 🎓

  • Global Access: Apply for scholarships worldwide without intermediaries
  • Real-Time Tracking:

    + View application status instantly + Track fund disbursement timelines

  • Direct Payouts: Receive funds securely via smart contracts
  • Reduced Paperwork: Digital verification replaces manual submissions

For Funders & Institutions 💼

  • Transparent Allocation:

    // Smart contract logic ensures: - Funds locked until milestones met - Automatic disbursement triggers

  • Audit Trail: Immutable blockchain records of every transaction
  • Global Reach: Support students across borders with crypto-native payments
  • Tax Efficiency: Automated compliance through smart contracts

For Administrators 🔐

  • Fraud Prevention:

    - Biometric/KYC integration - Tamper-proof scholarship records

  • Automated Workflows:

    graph LR A[Application] --> B(Smart Contract Check) B --> C{Approved?} C -->|Yes| D[Disburse Funds] C -->|No| E[Notify Student]

  • Real-Time Analytics: Dashboard monitoring of fund utilization

Challenges I ran into

Key Challenges & Solutions 🛠️


1. MetaMask Connection & Account Refresh 🔄

Problem:

  • Accounts wouldn’t update after wallet disconnects/switches
  • Stale data caused UI/contract state mismatches

Approach:

// Added Ethereum event listeners window.ethereum.on('accountsChanged', handleAccountChange); window.ethereum.on('chainChanged', refreshPage);

Solution:

  • Implemented real-time wallet monitoring
  • Auto-refreshed contract instance on account changes

2. Role Assignment Race Conditions ⏱️

Bug:

UI showed "admin" role before blockchain confirmation

Debugging:

// Added async/await with state updates const tx = await contract.setUserRole(...); await tx.wait(); // Wait for blockchain confirmation fetchUpdatedRole(); // Refresh from contract

Fix:

  • Implemented loading states during transactions
  • Added post-transaction role verification

3. Gas Estimation Failures

Error:

[ethjs-query] Gas estimation failed: execution reverted

Root Cause:

  • Contract logic rejected txs due to missing preconditions
    • e.g., disbursing unassigned scholarships

Solution:

// Added pre-check modifiers function disburseScholarship(uint _id) external { require(scholarships[_id].recipient != address(0), "No recipient"); // ... }

Outcome:

  • Clear error messages via

    try/catch

  • UI warnings before submitting invalid txs

Lessons Learned 🎓
Blockchain ≠ Real-Time: Implement explicit refresh triggers

Gas Optimization: Pre-checks save users from failed txs

ABI Hell: Version-control contract artifacts

Wallet Quirks: Account changes require full state resets

Discussion

Builders also viewed

See more projects on Devfolio