# OpenLearnX - Quick Start Guide Get OpenLearnX running in 15 minutes! ⚡ ## Prerequisites Checklist Before starting, ensure you have: - [ ] **Node.js 18+** - `node --version` - [ ] **Python 3.10+** - `python3 --version` - [ ] **MongoDB** - `mongosh --version` - [ ] **Git** - `git --version` - [ ] **MetaMask** - Browser extension installed --- ## 🚀 5-Step Setup ### Step 1: Install Foundry (2 minutes) ```bash # Install Foundry (Ethereum toolkit) curl -L https://foundry.paradigm.xyz | bash # Reload your shell source ~/.bashrc # or source ~/.zshrc for zsh # Install the toolchain foundryup # Verify (should show version numbers) forge --version anvil --version ``` ### Step 2: Clone & Setup (1 minute) ```bash # Clone repository git clone https://github.com/th30d4y/OpenLearnX.git cd OpenLearnX ``` ### Step 3: Start Blockchain (1 minute) **Open Terminal 1:** ```bash # Start local Ethereum node anvil --fork-url https://eth.merkle.io # Leave this running! # Note: Copy one of the private keys shown for later ``` ### Step 4: Backend Setup (5 minutes) **Open Terminal 2:** ```bash cd backend # Create Python virtual environment python3 -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate # Install dependencies pip install -r requirements.txt # Deploy smart contract python3 scripts/deploy.py # ⚠️ IMPORTANT: Copy the contract address from output! # Create .env file cat > .env << EOF FLASK_ENV=development SECRET_KEY=dev-secret-key-change-in-production MONGODB_URI=mongodb://localhost:27017/openlearnx WEB3_PROVIDER_URL=http://127.0.0.1:8545 CONTRACT_ADDRESS=0x5FbDB2315678afecb367f032d93F642f64180aa3 JWT_SECRET_KEY=jwt-secret-key EOF # Update CONTRACT_ADDRESS in .env with your deployed address! # Start backend python3 main.py # Should see: Running on http://127.0.0.1:5000 ``` ### Step 5: Frontend Setup (6 minutes) **Open Terminal 3:** ```bash cd frontend # Install dependencies pnpm install # or: npm install # Create environment file cat > .env.local << EOF NEXT_PUBLIC_API_URL=http://localhost:5000/api NEXT_PUBLIC_CHAIN_ID=31337 NEXT_PUBLIC_CONTRACT_ADDRESS=0x5FbDB2315678afecb367f032d93F642f64180aa3 NEXT_PUBLIC_RPC_URL=http://127.0.0.1:8545 EOF # Update CONTRACT_ADDRESS with your deployed address! # Start frontend pnpm run dev # or: npm run dev # Should see: Local: http://localhost:3000 ``` --- ## 🦊 MetaMask Setup (2 minutes) 1. **Open MetaMask extension** 2. **Add Local Network**: - Click network dropdown - "Add Network" → "Add a network manually" - **Network Name**: `Anvil Local` - **RPC URL**: `http://127.0.0.1:8545` - **Chain ID**: `31337` - **Currency Symbol**: `ETH` - Click "Save" 3. **Import Test Account**: - Click account icon → "Import Account" - Paste private key from Anvil Terminal 1 (starts with 0xac...) - Now you have 10000 test ETH! --- ## ✅ Test Your Setup ### 1. Open Browser Navigate to: http://localhost:3000 ### 2. Connect Wallet - Click "Connect Wallet" button - Select the imported account - Approve connection ### 3. Test Backend API ```bash # In a new terminal curl http://127.0.0.1:5000/ # Should return: {"message": "OpenLearnX API is running"} ``` ### 4. Take a Quiz - Navigate to "Courses" or "Quizzes" - Start an adaptive quiz - Answer questions - See instant feedback! ### 5. Mint a Certificate - Complete a quiz with passing score - Navigate to "Certificates" - Click "Mint Certificate" - Approve MetaMask transaction - View your NFT certificate! --- ## 🐛 Troubleshooting ### Backend won't start ```bash # Check MongoDB is running sudo systemctl status mongodb # or: mongosh # Check Python version python3 --version # Must be 3.10+ # Check virtual environment which python # Should show venv path ``` ### Frontend errors ```bash # Clear cache and reinstall rm -rf node_modules package-lock.json npm install ``` ### MetaMask connection fails 1. Check Anvil is running (Terminal 1) 2. Verify RPC URL is `http://127.0.0.1:8545` 3. Verify Chain ID is `31337` 4. Try switching networks back and forth ### Smart contract deployment fails ```bash # Ensure Anvil is running # Check you're in the backend directory cd backend source venv/bin/activate python3 scripts/deploy.py ``` --- ## 📚 Next Steps Now that you're set up: 1. **Explore Features**: - Try adaptive quizzes - Write and run code in the compiler - View your dashboard analytics - Mint certificates 2. **Read Documentation**: - [DOCUMENTATION.md](./DOCUMENTATION.md) - Comprehensive guide - [steps.md](./steps.md) - Detailed setup instructions 3. **Customize**: - Add your own courses (`backend/seed_courses.py`) - Modify quiz questions - Customize UI theme 4. **Contribute**: - Report bugs - Suggest features - Submit pull requests --- ## 🎯 Common Commands Reference ### Start Development ```bash # Terminal 1: Blockchain anvil --fork-url https://eth.merkle.io # Terminal 2: Backend cd backend source venv/bin/activate python3 main.py # Terminal 3: Frontend cd frontend pnpm run dev ``` ### Stop Everything ```bash # Stop Anvil: Ctrl+C in Terminal 1 # Stop Backend: Ctrl+C in Terminal 2 # Stop Frontend: Ctrl+C in Terminal 3 ``` ### Reset Database ```bash cd backend source venv/bin/activate mongosh openlearnx --eval "db.dropDatabase()" python3 seed_courses.py # Reseed data ``` ### Redeploy Contract ```bash cd backend source venv/bin/activate python3 scripts/deploy.py # Update CONTRACT_ADDRESS in both .env files! ``` --- ## 🆘 Getting Help - 📖 **Full Documentation**: [DOCUMENTATION.md](./DOCUMENTATION.md) - 🐛 **Issues**: [GitHub Issues](https://github.com/th30d4y/OpenLearnX/issues) - 💬 **Discussions**: [GitHub Discussions](https://github.com/th30d4y/OpenLearnX/discussions) --- **Happy Learning! 🎓**