LearnChain is a decentralized learning platform where educators can upload courses to a decentralized database and students can access them with blockchain-verified credentials. It aims to provide an affordable, global, and blockchain-powered education system with transparent transactions and verifiable achievements.
- 👩🏫 Educator Dashboard: Create, manage, and monetize courses with real-time analytics
- 🎓 Student Learning Portal: Discover, enroll in, and track progress on courses
- 🔐 Web3 Authentication: Secure login with MetaMask and other Ethereum wallets
- 🧾 Smart Contract Integration: Transparent course ownership and enrollment
- 📜 NFT Certificates: Blockchain-verified credentials for completed courses
- 📁 Decentralized Storage: Course content stored on IPFS for censorship resistance
- 💰 Token Economy: LRN utility token for platform transactions
- 📱 Responsive Design: Optimized for all devices and screen sizes
| Layer | Technology |
|---|---|
| Frontend | React (Vite) + CSS |
| Blockchain | Solidity + Ethers.js |
| Wallet | MetaMask + Web3 Providers |
| Storage | IPFS / Arweave |
| State Management | React Context API |
| Routing | React Router |
learnchain-dapp/
├── public/ # Static assets
├── src/
│ ├── components/ # React components
│ │ ├── CourseCard/ # Course display component
│ │ ├── Footer/ # Site footer
│ │ ├── Navbar/ # Navigation component
│ │ └── ... # Other components
│ ├── context/ # React context providers
│ │ └── WalletContext.jsx # Wallet connection context
│ ├── contracts/ # Smart contract code and ABIs
│ │ ├── abis/ # Contract ABIs
│ │ ├── CourseRegistry.sol # Course management contract
│ │ └── CertificateNFT.sol # NFT certificate contract
│ ├── pages/ # Page components
│ ├── services/ # Service integrations
│ │ ├── blockchainService.js # Smart contract interactions
│ │ └── ipfsService.js # IPFS storage integration
│ ├── utils/ # Utility functions
│ ├── App.jsx # Main application component
│ ├── App.css # Global styles
│ ├── index.css # Base styles
│ └── main.jsx # Application entry point
├── .env # Environment variables
├── index.html # HTML entry point
├── package.json # Dependencies and scripts
└── vite.config.js # Vite configuration
- Node.js (v16+)
- npm or yarn
- MetaMask or another Ethereum wallet
-
Clone the repository
git clone https://github.com/yourusername/learnchain-dapp.git cd learnchain-dapp -
Install dependencies
npm install # or yarn -
Create a
.envfile in the root directory with the following variables:VITE_INFURA_ID=your_infura_project_id VITE_CHAIN_ID=80001 # Mumbai testnet -
Start the development server
npm run dev # or yarn dev -
Open your browser and navigate to
http://localhost:3000
LearnChain uses two main smart contracts:
- CourseRegistry: Manages course creation, enrollment, and completion
- CertificateNFT: Issues and verifies NFT certificates for completed courses
The contracts are deployed on the Polygon Mumbai testnet for development and testing.
Comprehensive documentation is available within the application. Navigate to the /documentation route to access:
- User guides for students and educators
- Technical documentation for developers
- Smart contract specifications
- API references
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For questions or support, please open an issue or contact the team at support@learnchain.io
© 2025 LearnChain. All rights reserved.