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:
- Online Mode: Data is fetched from APIs and blockchain in real-time
- Offline Mode: Data is stored in local storage and synchronized when connectivity is restored
- 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