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 build
The 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! π