mirror of
https://github.com/th30d4y/OpenLearnX.git
synced 2026-05-26 19:26:33 +00:00
4.6 KiB
4.6 KiB
🛠 Step 1: Install Foundry & Anvil
Foundry is a blazing-fast toolkit for Ethereum development written in Rust. It includes forge (for testing), cast (for scripting), and anvil (a local Ethereum node, like Hardhat or Ganache).
✅ Prerequisites
- A Unix-based system (Linux/macOS/WSL)
curlinstalledzshorbashshell
🔽 Install Foundry
Open your terminal and run:
curl -L https://foundry.paradigm.xyz | bash
Then activate Foundry by either:
# If using zsh
source ~/.zshrc
# If using bash
source ~/.bashrc
Now install the Foundry toolchain:
foundryup
Verify Installation
forge --version
anvil --version
cast --version
If all return versions, you’re good to go!
Run Anvil Locally
Start a local Ethereum testnet node:
anvil
Or to fork Ethereum mainnet (for testing with real contract data):
anvil --fork-url https://eth.merkle.io
Step 1 Completed:)
Step 2 Backend
OpenLearnX Quick Start Commands
Terminal 1: Start Anvil Blockchain
anvil --fork-url https://eth.merkle.io
Keep this terminal running
Terminal 2: Deploy Smart Contract
cd backend
source venv/bin/activate
python3 scripts/deploy.py
Copy the contract address to your .env file, then you can close this terminal
Terminal 3: Start Flask Application
cd backend
source venv/bin/activate
python3 main.py
Keep this terminal running
Test Your Platform
# Test API health
curl http://127.0.0.1:5000/
# Test authentication endpoint
curl -X POST http://127.0.0.1:5000/api/auth/nonce \
-H "Content-Type: application/json" \
-d '{"wallet_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"}'
Your OpenLearnX Platform URLs
API: http://127.0.0.1:5000
Network Access: http://192.168.35.250:5000
Step 2 Completed:)
Step 3 Frontend
based on your backend setup and requirements for a comprehensive adaptive learning platform, here's how to build the frontend in your existing frontend directory.
cd frontend
# Create React + TypeScript + Vite project
npm create vite@latest . -- --template react-ts
# Install dependencies
npm install
# Install additional packages for OpenLearnX features
npm install web3 ethers @metamask/detect-provider
npm install react-router-dom react-query
npm install @headlessui/react @heroicons/react
npm install chart.js react-chartjs-2 recharts
npm install axios react-hook-form
npm install framer-motion react-hot-toast
npm install tailwindcss @tailwindcss/forms
Project Structure
frontend/
├── src/
│ ├── components/
│ │ ├── auth/
│ │ │ ├── MetaMaskConnect.tsx
│ │ │ └── WalletAuth.tsx
│ │ ├── testing/
│ │ │ ├── AdaptiveTest.tsx
│ │ │ ├── QuestionCard.tsx
│ │ │ ├── InstantFeedback.tsx
│ │ │ └── ProgressTracker.tsx
│ │ ├── assessment/
│ │ │ ├── PeerReview.tsx
│ │ │ ├── BiasDetection.tsx
│ │ │ └── Portfolio.tsx
│ │ ├── dashboard/
│ │ │ ├── StudentDashboard.tsx
│ │ │ ├── InstructorDashboard.tsx
│ │ │ ├── CompetencyRadar.tsx
│ │ │ └── ProgressChart.tsx
│ │ ├── certificates/
│ │ │ ├── CertificateGallery.tsx
│ │ │ ├── NFTViewer.tsx
│ │ │ └── BlockchainVerify.tsx
│ │ └── common/
│ │ ├── Layout.tsx
│ │ ├── Navigation.tsx
│ │ └── LoadingSpinner.tsx
│ ├── hooks/
│ │ ├── useMetaMask.ts
│ │ ├── useAdaptiveTesting.ts
│ │ ├── useInstantFeedback.ts
│ │ └── useBlockchain.ts
│ ├── services/
│ │ ├── api.ts
│ │ ├── web3.ts
│ │ └── auth.ts
│ ├── types/
│ │ ├── auth.ts
│ │ ├── testing.ts
│ │ └── dashboard.ts
│ ├── utils/
│ │ ├── adaptiveAlgorithm.ts
│ │ ├── biasDetection.ts
│ │ └── competencyMapping.ts
│ └── pages/
│ ├── HomePage.tsx
│ ├── TestingPage.tsx
│ ├── DashboardPage.tsx
│ └── CertificatesPage.tsx
run frontend
cd frontend
pnpm install
pnpm run dev
run mangodb in local for running
# Install MongoDB on Arch Linux
yay -S mongodb-bin
# Start the service
sudo systemctl start mongodb
sudo systemctl enable mongodb
# Verify it's running
sudo systemctl status mongodb
# Test connection
mongosh