You can check out our project in action here:
Feel free to explore the platform, generate your custom learning roadmap, and try out the quiz-to-NFT flow!
Proof Of Learn is our submission for the NearX & ZKVerify Hackathon.
This project combines AI-generated learning roadmaps with Web3 incentives to create a more interactive and rewarding learning experience. Users receive a personalized roadmap powered by AI, and upon completing a knowledge quiz, they are rewarded with an on-chain NFT that serves as proof of their learning.
By integrating AI + Web3, we turn traditional education into a gamified, goal-oriented journey — increasing motivation, engagement, and verifiability.
- 📚 AI-Powered Roadmaps: Generate personalized study plans based on your goals or topics of interest.
- 🧪 Interactive Quizzes: Validate your learning through dynamic questions.
- 🏆 NFT Certifications: Earn blockchain-based NFTs when you pass a quiz, acting as verifiable proof of knowledge.
- 🌐 Seamless Web3 Integration: Use your wallet to claim NFTs and interact with the blockchain layer.
- 💡 Engaging UX: Smooth animations and intuitive UI to enhance the user journey.
- Solidity
- Foundry
- TypeScript
- Node.js
- Express.js
- Zod
- Gemini AI SDK
- TypeScript
- React
- Vite
- Zod
- Zustand
- React Query
- Framer Motion
- Ethers.js
Before running the project, ensure you have the following installed:
- Docker – Used to run local development services (e.g., database)
- Node.js (v18+) – JavaScript runtime for both frontend and backend
- Gemini API Key – Required to access AI-generated roadmaps
- Get yours from Gemini API
git clone https://github.com/your-username/proof-of-learn.git
cd proof-of-learn
- Move to
/api
folder
cd api
- Copy ".env.example" file and create a ".env"
cp .env.example .env
Add an Gemini API Key
GOOGLE_AI_API_KEY=your_key_here
Also add a JWT_SECRET
JWT_SECRET=your_secret_here
- With docker running on your machine, following commands:
it will compose the docker file
pnpm services:up
run pending migrations
pnpx prisma migrate dev
run development server
pnpm dev
- Or, just run this command:
pnpm dev:all
- Server is running at http://localhost:3000
- To populate database with seed data, run:
pnpm database:seed
Move to the /frontend
folder
- Copy ".env.example" file and create a ".env"
cp .env.example .env
Install Dependencies
pnpm install
Run application
pnpm dev
Meet the builders of the project:
Pablo Montes |
Yuri Bodó |
Gabriel Alves |
João Soares |
💬 Feel free to reach out to us for collaboration or questions!