An AI-powered personalized learning platform that generates interactive micro-courses on any topic you're curious about. Built with React, TypeScript, and powered by local AI models running directly in your browser.
- 🤖 AI-Powered Course Generation: Uses WebLLM (Qwen3-0.6B model) to generate comprehensive courses on any topic
- 📚 Interactive Learning: Each course includes multiple lessons with detailed content and quizzes
- 💾 Local Storage: All courses are saved locally - no data leaves your browser
- 🎯 Progress Tracking: Track your learning progress across multiple courses
- 📱 Responsive Design: Beautiful, modern UI that works on all devices
- ⚡ Fast & Offline: AI model runs locally in your browser using WebGPU
- Enter a Topic: Type in anything you want to learn about
- AI Generation: The local AI model creates a structured course with lessons and quizzes
- Interactive Learning: Work through lessons at your own pace
- Test Knowledge: Take quizzes to reinforce your learning
- Track Progress: See your completion status and scores
- Frontend: React 19 + TypeScript + Vite
- Styling: Tailwind CSS 4 + Radix UI components
- AI Model: WebLLM with Qwen3-0.6B (runs locally)
- State Management: Zustand
- Icons: Lucide React
- Notifications: Sonner
- Node.js 18+ or Bun
- Modern browser with WebGPU support (Chrome/Edge 113+, Firefox with experimental features)
- Clone the repository:
git clone https://github.com/yourusername/infinite-learning.git
cd infinite-learning- Install dependencies:
# Using npm
npm install
# Using bun (recommended)
bun install- Start the development server:
# Using npm
npm run dev
# Using bun
bun dev- Open your browser and navigate to
http://localhost:5173
# Using npm
npm run build
# Using bun
bun run buildThe application uses the Qwen3-0.6B model by default. You can modify the model in src/components/CourseGenerator.tsx:
engineRef.current = await CreateWebWorkerMLCEngine(
new Worker(new URL('../worker.ts', import.meta.url), { type: 'module' }),
'Qwen3-0.6B-q4f32_1-MLC' // Change this to use a different model
);src/
├── components/
│ ├── ui/ # Reusable UI components (buttons, cards, etc.)
│ ├── CourseContent.tsx # Main course viewing interface
│ ├── CourseGenerator.tsx # AI course generation logic
│ ├── Quiz.tsx # Interactive quiz component
│ └── TopicInput.tsx # Topic input form
├── lib/
│ └── utils.ts # Utility functions
├── store.ts # Zustand state management
├── worker.ts # Web Worker for AI model
└── App.tsx # Main application component
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- WebLLM for enabling local AI models in the browser
- Radix UI for accessible UI components
- Tailwind CSS for styling
- Lucide for beautiful icons
Happy Learning! 🎓
