EduChain Documentation

Comprehensive documentation for the EduChain blockchain education platform

Last updated: March 17, 2025

Application Architecture

Overview

EduChain is built using a modern web architecture with Next.js as the frontend framework. The application follows a client-server model with blockchain integration for certificate verification and user progress tracking.

Core Components

  • Frontend: Next.js 14 with App Router, React Server Components, and Client Components
  • Styling: Tailwind CSS with shadcn/ui component library
  • State Management: React Context API and local storage for offline capabilities
  • AI Integration: Gemini API for generating quizzes, explanations, and localized use cases
  • Blockchain Integration: StarkNet for certificate verification and progress tracking

Data Flow

The application uses a hybrid data flow model:

  1. Online Mode: Data is fetched from APIs and blockchain in real-time
  2. Offline Mode: Data is stored in local storage and synchronized when connectivity is restored
  3. Blockchain Verification: Certificates and achievements are verified on-chain

Directory Structure


/app                   # Next.js App Router pages
  /api                 # API routes
  /courses             # Course pages
  /resources           # Resource pages
  /community           # Community pages
  /dashboard           # User dashboard
  /learn               # Learning interface
/components            # React components
  /ui                  # UI components
  /layout              # Layout components
  /connection          # Connection management
  /wallet              # Wallet integration
  /certificate         # Certificate components
/lib                   # Utility functions
  /gemini-api.ts       # Gemini API integration
  /utils.ts            # General utilities
/hooks                 # Custom React hooks
/public                # Static assets
                  

Technical Stack

Frontend Technologies

  • Next.js 14: React framework with App Router
  • React 18: UI library with hooks and server components
  • Tailwind CSS: Utility-first CSS framework
  • shadcn/ui: Accessible component library
  • TypeScript: Static typing for JavaScript

Blockchain Integration

  • StarkNet: Layer 2 scaling solution for Ethereum
  • Cairo: Programming language for StarkNet smart contracts
  • starknet.js: JavaScript library for StarkNet interaction
  • get-starknet: Wallet connection library