# OpenLearnX **OpenLearnX** is a cutting-edge decentralized learning and assessment platform that revolutionizes education through adaptive testing, instant feedback, and blockchain-based certification. The platform provides learners with a smarter, personalized, and verifiable way to build and prove skills โ€” from code challenges to real-world learning paths, all backed by blockchain technology. > ๐Ÿ“š **Documentation**: [DOCS_INDEX.md](./DOCS_INDEX.md) | [DOCUMENTATION.md](./DOCUMENTATION.md) | [QUICK_START.md](./QUICK_START.md) --- ## โœจ What Makes It Different? - **๐ŸŽฏ Adaptive Learning:** Challenges that scale dynamically with your skill level using advanced algorithms - **โšก Instant Feedback:** Get results and detailed explanations in real-time - **๐Ÿ” Blockchain Certificates:** Earn tamper-proof NFT certificates as verifiable proof of learning - **๐Ÿ“Š Skill Dashboard:** Track progress over time with comprehensive analytics and competency mapping - **๐ŸŒ Decentralized Storage:** Own your data with IPFS-powered decentralized storage - **๐Ÿ’ป Multi-Language Compiler:** Execute code in 8+ programming languages with secure sandboxing - **๐Ÿค– AI-Powered Quizzes:** Intelligent question generation and adaptive difficulty adjustment - **๐Ÿ‘ฅ Peer Review System:** Collaborative learning with bias detection --- ## ๐Ÿ“Œ Use Cases - **Coding Bootcamps:** Verify student progress with blockchain certificates - **Professional Certification:** Issue tamper-proof credentials for completed courses - **Corporate Training:** Track employee skill development with transparent analytics - **Academic Assessments:** Adaptive testing that accurately measures student ability - **Portfolio Building:** Showcase verified skills to potential employers - **Skill Verification:** Employers can instantly verify candidate credentials on blockchain --- ## ๐Ÿ— Architecture Overview ``` Frontend (Next.js + React) โ†’ Backend (Flask + Python) โ†’ MongoDB Database โ†“ Web3 Layer (Ethereum) โ†“ Smart Contracts (Solidity) โ†’ IPFS Storage ``` **Key Components:** - **Frontend**: Next.js 14, TypeScript, TailwindCSS, MetaMask integration - **Backend**: Flask, TensorFlow, Web3.py, JWT authentication - **Blockchain**: Solidity smart contracts, ERC-721 NFTs, Foundry toolkit - **Database**: MongoDB, Redis cache - **Storage**: IPFS for decentralized metadata --- ## ๐Ÿš€ Quick Start ### Prerequisites - Node.js 18+ - Python 3.10+ - MongoDB 6.0+ - Docker (optional) - MetaMask browser extension ### Installation 1. **Install Foundry** (Blockchain toolkit): ```bash curl -L https://foundry.paradigm.xyz | bash foundryup ``` 2. **Clone the repository**: ```bash git clone https://github.com/th30d4y/OpenLearnX.git cd OpenLearnX ``` 3. **Start local blockchain** (Terminal 1): ```bash anvil --fork-url https://eth.merkle.io ``` 4. **Setup and start backend** (Terminal 2): ```bash cd backend python3 -m venv venv source venv/bin/activate pip install -r requirements.txt # Deploy smart contract python3 scripts/deploy.py # Start backend server python3 main.py ``` 5. **Setup and start frontend** (Terminal 3): ```bash cd frontend pnpm install pnpm run dev ``` 6. **Access the application**: - Open http://localhost:3000 - Connect MetaMask wallet - Start learning! > ๐Ÿ“– **For detailed setup instructions, see [DOCUMENTATION.md](./DOCUMENTATION.md#setup--installation)** --- ## ๐ŸŒฑ Project Status **Current Version**: Alpha 1.0.0 **Status**: ๐ŸŸข Active Development This is an open-source project under active development. Core features are functional, with continuous improvements being made. ### Recent Updates - โœ… NFT certificate minting system - โœ… Adaptive quiz algorithm - โœ… Multi-language code compiler - โœ… Comprehensive dashboard analytics - โœ… Wallet-based authentication ### Roadmap - ๐Ÿ”„ AI question generation refinement - ๐Ÿ”„ Peer review system enhancements - ๐Ÿ“… Mobile app (React Native) - ๐Ÿ“… Live proctoring for exams - ๐Ÿ“… Marketplace for courses --- ## ๐Ÿงช Built With ### Frontend - **Next.js 14** - React framework - **TypeScript** - Type safety - **TailwindCSS** - Styling - **shadcn/ui** - Component library - **ethers.js** - Ethereum interaction - **MetaMask SDK** - Wallet integration ### Backend - **Flask** - Python web framework - **TensorFlow** - Machine learning - **MongoDB** - Database - **Redis** - Caching - **Web3.py** - Blockchain interaction - **Flask-JWT-Extended** - Authentication ### Blockchain - **Solidity 0.8.19** - Smart contracts - **Foundry** - Development toolkit - **OpenZeppelin** - Secure contract libraries - **IPFS** - Decentralized storage - **Anvil** - Local Ethereum node --- ## ๐Ÿ“Š Key Features ### For Students - ๐ŸŽ“ Personalized adaptive learning paths - ๐Ÿ’ฏ Instant feedback on assessments - ๐Ÿ† Blockchain-verified certificates (NFTs) - ๐Ÿ“ˆ Progress tracking and analytics - ๐Ÿ’ป Interactive coding challenges - ๐ŸŒŸ Skill competency mapping ### For Instructors - ๐Ÿ“š Course creation and management - ๐Ÿ‘ฅ Student progress monitoring - ๐Ÿ“Š Comprehensive analytics dashboard - โœ๏ธ Quiz and assessment authoring - ๐Ÿ” Bias detection in grading - ๐Ÿ“ Automated and manual grading ### For Employers - โœ… Instant credential verification - ๐Ÿ”— Blockchain-backed authenticity - ๐Ÿ“‹ Detailed skill assessments - ๐ŸŽฏ Candidate skill mapping - ๐Ÿ” Transparent learning history --- ## ๐Ÿ“š Documentation Comprehensive documentation is available in [DOCUMENTATION.md](./DOCUMENTATION.md), including: - ๐Ÿ“– Detailed architecture explanation - ๐Ÿ”ง Technology stack deep dive - ๐Ÿ“ Project structure overview - ๐Ÿ“œ Smart contract documentation - ๐Ÿ–ฅ๏ธ Backend services guide - ๐ŸŽจ Frontend components reference - ๐Ÿ’พ Database schema - ๐Ÿ”Œ API documentation - โš™๏ธ Advanced configuration - ๐Ÿš€ Production deployment guide - ๐Ÿ”’ Security best practices --- ## ๐Ÿค Contributing We welcome contributions from the community! Whether it's: - ๐Ÿ› Bug reports and fixes - โœจ New features - ๐Ÿ“š Documentation improvements - ๐ŸŒ Translations - ๐ŸŽจ UI/UX enhancements - ๐Ÿงช Test coverage **How to contribute:** 1. Fork the repository 2. Create a feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'feat: add amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request Please read [DOCUMENTATION.md](./DOCUMENTATION.md#contributing) for detailed contribution guidelines. --- ## ๐Ÿ“„ License [Include your license here - e.g., MIT License] --- ## ๐Ÿ™ Acknowledgments - **OpenZeppelin** - Secure smart contract libraries - **Foundry** - Ethereum development toolkit - **Next.js Team** - Amazing React framework - **TensorFlow** - Machine learning framework - **All Contributors** - Thank you for making OpenLearnX better! --- ## ๐Ÿ“ž Contact & Support - ๐ŸŒ Website: [your-website.com] - ๐Ÿ’ฌ Discord: [your-discord-link] - ๐Ÿฆ Twitter: [@OpenLearnX] - ๐Ÿ“ง Email: [your-email] - ๐Ÿ“– Docs: [DOCUMENTATION.md](./DOCUMENTATION.md) --- ## โญ Show Your Support If you find OpenLearnX useful, please consider: - โญ Starring this repository - ๐Ÿ”„ Sharing with others - ๐Ÿ› Reporting bugs - โœจ Contributing code - ๐Ÿ’ฌ Joining our community **Together, let's revolutionize education! ๐Ÿš€** ---