alubin/llm-course-app

7-day hands-on LLM engineering course with AI-powered Python tutor. Built with React, OpenAI & Anthropic APIs.

0

stars

10

commits

TypeScript

primary language

Dec 27, 2025

updated

llm-course-app.vercel.app

README

πŸŽ“ LLM Engineering Course

An interactive learning platform for mastering Large Language Model engineering through hands-on projects, featuring an AI-powered Python tutor.

✨ Features

  • πŸ“š Complete 7-Day Curriculum β€” All days available with structured learning from fundamentals to advanced topics
  • πŸ€– AI-Powered Python Tutor β€” Ask questions and get personalized explanations with code examples
  • πŸ”‘ Multi-Provider Support β€” Use OpenAI (GPT-4) or Anthropic (Claude) APIs for the AI tutor
  • βœ… Progress Tracking β€” Mark tasks complete and track your journey through the course
  • πŸ’Ύ Persistent Storage β€” Progress and search history saved to localStorage
  • πŸ“ Search History β€” Review past AI tutor queries with feedback tracking
  • 🐍 Python Primer β€” Comprehensive reference guide for all Python concepts
  • πŸ“± Responsive Design β€” Works seamlessly on desktop, tablet, and mobile
  • 🎨 Beautiful UI β€” Dark theme with syntax highlighting and smooth animations

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • npm or yarn
  • (Optional) OpenAI or Anthropic API key for AI Tutor feature

Installation

# Clone the repository
git clone https://github.com/alubin/llm-course-app.git
cd llm-course-app

# Install dependencies
npm install

# Start development server
npm run dev

Open http://localhost:5173 in your browser.

Build for Production

npm run build
npm run preview

πŸ€– AI Tutor Setup

The Python Primer includes an AI-powered tutor that can answer any Python questions. To use it:

  1. Navigate to Python Primer page
  2. Click the AI Tutor toggle button
  3. Click the settings icon to configure your API key
  4. Choose your provider:
  5. Enter your API key (stored locally in browser, never sent to our servers)
  6. Ask any Python question and get detailed explanations!

AI Tutor Features

  • πŸ“– Detailed Explanations β€” Conceptual understanding of Python topics
  • πŸ’» Code Examples β€” Working code snippets with syntax highlighting
  • ⚠️ Common Pitfalls β€” Learn what to avoid
  • πŸ”— LLM Connections β€” How each topic relates to LLM development
  • 🏷️ Related Topics β€” Discover connected concepts
  • πŸ‘ Feedback System β€” Rate responses for better learning
  • πŸ“œ Search History β€” Access up to 50 past queries with full responses

🌐 Deploy to Vercel

Option 1: One-Click Deploy

Deploy with Vercel

Option 2: Manual Deploy

  1. Push your code to GitHub
  2. Go to vercel.com
  3. Click "New Project"
  4. Import your GitHub repository
  5. Click "Deploy"

That's it! Vercel auto-detects Vite projects.

πŸ“ Project Structure

llm-course-app/
β”œβ”€β”€ public/
β”‚   └── favicon.svg
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ Dashboard.jsx          # Home page with course overview
β”‚   β”‚   β”œβ”€β”€ Roadmap.jsx            # Visual course roadmap
β”‚   β”‚   β”œβ”€β”€ CoursePage.jsx         # Individual day content display
β”‚   β”‚   β”œβ”€β”€ PythonPrimer.jsx       # Python reference + AI tutor
β”‚   β”‚   β”œβ”€β”€ ApiKeyModal.jsx        # API key configuration modal
β”‚   β”‚   β”œβ”€β”€ TutorResults.jsx       # AI response display
β”‚   β”‚   β”œβ”€β”€ SearchHistory.jsx      # Search history sidebar
β”‚   β”‚   └── ProviderBadge.jsx      # OpenAI/Anthropic badges
β”‚   β”œβ”€β”€ data/
β”‚   β”‚   β”œβ”€β”€ courseRoadmap.js       # Course structure metadata
β”‚   β”‚   β”œβ”€β”€ day1Content.js         # Day 1: CLI Assistant
β”‚   β”‚   β”œβ”€β”€ day2Content.js         # Day 2: Chatbot Memory
β”‚   β”‚   β”œβ”€β”€ day3Content.js         # Day 3: RAG System
β”‚   β”‚   β”œβ”€β”€ day4Content.js         # Day 4: REST API (Java)
β”‚   β”‚   β”œβ”€β”€ day5Content.js         # Day 5: Fine-tuning
β”‚   β”‚   β”œβ”€β”€ day6Content.js         # Day 6: AI Agents
β”‚   β”‚   β”œβ”€β”€ day7Content.js         # Day 7: Data Pipeline
β”‚   β”‚   └── pythonPrimer.js        # Python primer content
β”‚   β”œβ”€β”€ hooks/
β”‚   β”‚   β”œβ”€β”€ useProgress.js         # Progress tracking hook
β”‚   β”‚   β”œβ”€β”€ useApiKey.js           # API key management hook
β”‚   β”‚   β”œβ”€β”€ ProgressContext.jsx    # Global progress context
β”‚   β”‚   └── SearchHistoryContext.jsx # Search history context
β”‚   β”œβ”€β”€ services/
β”‚   β”‚   └── pythonTutor.js         # OpenAI/Anthropic integration
β”‚   β”œβ”€β”€ App.jsx
β”‚   β”œβ”€β”€ main.jsx
β”‚   └── index.css
β”œβ”€β”€ index.html
β”œβ”€β”€ package.json
β”œβ”€β”€ vite.config.js
β”œβ”€β”€ tailwind.config.js
β”œβ”€β”€ vercel.json
└── README.md

πŸ“– Course Content

DayTopicTech StackStatus
1LLM Fundamentals + CLI AssistantPython, OpenAI APIβœ… Available
2Chatbot with Memory & ContextPython, FastAPI, SQLAlchemyβœ… Available
3RAG: Chat with DocumentsPython, ChromaDB, Gradioβœ… Available
4AI-Powered REST APIJava, Spring Boot, Spring AIβœ… Available
5Transformers & Fine-tuningPython, Hugging Face, LoRAβœ… Available
6AI Agents with Tool UsePython, Function Callingβœ… Available
7Data Pipeline with AI EnrichmentPython, Pandas, AI Classificationβœ… Available

Course Highlights

Each day includes:

  • πŸ“ Theory Sections β€” Core concepts and best practices
  • πŸ› οΈ Hands-On Tasks β€” Step-by-step implementation guides
  • πŸ’‘ Real-World Applications β€” Production-ready patterns
  • 🎯 Learning Objectives β€” Clear goals for each day

Total: 41-57 hours of hands-on learning

πŸ› οΈ Tech Stack

Frontend

  • React 18 β€” UI framework
  • Vite β€” Build tool and dev server
  • Tailwind CSS β€” Utility-first styling
  • Framer Motion β€” Smooth animations
  • React Router β€” Client-side routing
  • React Syntax Highlighter β€” Code highlighting
  • Lucide React β€” Beautiful icons

AI Integration

  • OpenAI SDK β€” GPT-4 integration
  • Anthropic SDK β€” Claude integration
  • JSON Mode β€” Structured AI responses

State Management

  • React Context β€” Global state (progress, search history)
  • localStorage β€” Persistent data storage

🎨 Customization

Adding New Course Content

  1. Create a new content file in src/data/ (e.g., day8Content.js)
  2. Follow the existing structure with sections array
  3. Import in CoursePage.jsx and add to contentMap
  4. Update courseRoadmap.js with the new day's metadata
  5. Add navigation link in App.jsx

Modifying the AI Tutor

The AI tutor service is in src/services/pythonTutor.js. You can:

  • Customize the system prompt for different teaching styles
  • Adjust the response structure in JSON_SCHEMA
  • Add new AI providers by implementing additional methods
  • Modify the model selection (currently uses GPT-4-turbo and Claude-3-sonnet)

Styling

  • Global styles: src/index.css
  • Tailwind config: tailwind.config.js (custom surface and brand colors)
  • Component styles: Inline Tailwind classes

πŸ”’ Privacy & Security

  • API keys are stored locally in browser localStorage
  • No backend β€” all AI calls made directly from browser
  • No tracking β€” your learning progress stays on your device
  • Open source β€” Verify the code yourself

Note: When using dangerouslyAllowBrowser flag with AI SDKs, API keys are exposed in browser. Only use for development/learning. Production apps should proxy API calls through a backend.

πŸ“„ License

MIT License β€” Feel free to use this for your own learning!

🀝 Contributing

Contributions welcome! Areas for improvement:

  • Additional course content for advanced topics
  • More AI providers (Gemini, Mistral, etc.)
  • Backend API proxy for secure API key handling
  • Additional language primers (JavaScript, Java, etc.)
  • Quizzes and assessments

Please open an issue or PR.

πŸ™ Acknowledgments

  • Course content inspired by real-world LLM engineering practices
  • Built with modern React and AI best practices
  • Designed for hands-on, practical learning

Built with ❀️ for aspiring LLM engineers

πŸ€– Generated with Claude Code

Contributors

alubin

10 commits

alubin/llm-course-app

7-day hands-on LLM engineering course with AI-powered Python tutor. Built with React, OpenAI & Anthropic APIs.

0

stars

10

commits

TypeScript

primary language

Dec 27, 2025

updated

llm-course-app.vercel.app

README

πŸŽ“ LLM Engineering Course

An interactive learning platform for mastering Large Language Model engineering through hands-on projects, featuring an AI-powered Python tutor.

✨ Features

  • πŸ“š Complete 7-Day Curriculum β€” All days available with structured learning from fundamentals to advanced topics
  • πŸ€– AI-Powered Python Tutor β€” Ask questions and get personalized explanations with code examples
  • πŸ”‘ Multi-Provider Support β€” Use OpenAI (GPT-4) or Anthropic (Claude) APIs for the AI tutor
  • βœ… Progress Tracking β€” Mark tasks complete and track your journey through the course
  • πŸ’Ύ Persistent Storage β€” Progress and search history saved to localStorage
  • πŸ“ Search History β€” Review past AI tutor queries with feedback tracking
  • 🐍 Python Primer β€” Comprehensive reference guide for all Python concepts
  • πŸ“± Responsive Design β€” Works seamlessly on desktop, tablet, and mobile
  • 🎨 Beautiful UI β€” Dark theme with syntax highlighting and smooth animations

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • npm or yarn
  • (Optional) OpenAI or Anthropic API key for AI Tutor feature

Installation

# Clone the repository
git clone https://github.com/alubin/llm-course-app.git
cd llm-course-app

# Install dependencies
npm install

# Start development server
npm run dev

Open http://localhost:5173 in your browser.

Build for Production

npm run build
npm run preview

πŸ€– AI Tutor Setup

The Python Primer includes an AI-powered tutor that can answer any Python questions. To use it:

  1. Navigate to Python Primer page
  2. Click the AI Tutor toggle button
  3. Click the settings icon to configure your API key
  4. Choose your provider:
  5. Enter your API key (stored locally in browser, never sent to our servers)
  6. Ask any Python question and get detailed explanations!

AI Tutor Features

  • πŸ“– Detailed Explanations β€” Conceptual understanding of Python topics
  • πŸ’» Code Examples β€” Working code snippets with syntax highlighting
  • ⚠️ Common Pitfalls β€” Learn what to avoid
  • πŸ”— LLM Connections β€” How each topic relates to LLM development
  • 🏷️ Related Topics β€” Discover connected concepts
  • πŸ‘ Feedback System β€” Rate responses for better learning
  • πŸ“œ Search History β€” Access up to 50 past queries with full responses

🌐 Deploy to Vercel

Option 1: One-Click Deploy

Deploy with Vercel

Option 2: Manual Deploy

  1. Push your code to GitHub
  2. Go to vercel.com
  3. Click "New Project"
  4. Import your GitHub repository
  5. Click "Deploy"

That's it! Vercel auto-detects Vite projects.

πŸ“ Project Structure

llm-course-app/
β”œβ”€β”€ public/
β”‚   └── favicon.svg
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ Dashboard.jsx          # Home page with course overview
β”‚   β”‚   β”œβ”€β”€ Roadmap.jsx            # Visual course roadmap
β”‚   β”‚   β”œβ”€β”€ CoursePage.jsx         # Individual day content display
β”‚   β”‚   β”œβ”€β”€ PythonPrimer.jsx       # Python reference + AI tutor
β”‚   β”‚   β”œβ”€β”€ ApiKeyModal.jsx        # API key configuration modal
β”‚   β”‚   β”œβ”€β”€ TutorResults.jsx       # AI response display
β”‚   β”‚   β”œβ”€β”€ SearchHistory.jsx      # Search history sidebar
β”‚   β”‚   └── ProviderBadge.jsx      # OpenAI/Anthropic badges
β”‚   β”œβ”€β”€ data/
β”‚   β”‚   β”œβ”€β”€ courseRoadmap.js       # Course structure metadata
β”‚   β”‚   β”œβ”€β”€ day1Content.js         # Day 1: CLI Assistant
β”‚   β”‚   β”œβ”€β”€ day2Content.js         # Day 2: Chatbot Memory
β”‚   β”‚   β”œβ”€β”€ day3Content.js         # Day 3: RAG System
β”‚   β”‚   β”œβ”€β”€ day4Content.js         # Day 4: REST API (Java)
β”‚   β”‚   β”œβ”€β”€ day5Content.js         # Day 5: Fine-tuning
β”‚   β”‚   β”œβ”€β”€ day6Content.js         # Day 6: AI Agents
β”‚   β”‚   β”œβ”€β”€ day7Content.js         # Day 7: Data Pipeline
β”‚   β”‚   └── pythonPrimer.js        # Python primer content
β”‚   β”œβ”€β”€ hooks/
β”‚   β”‚   β”œβ”€β”€ useProgress.js         # Progress tracking hook
β”‚   β”‚   β”œβ”€β”€ useApiKey.js           # API key management hook
β”‚   β”‚   β”œβ”€β”€ ProgressContext.jsx    # Global progress context
β”‚   β”‚   └── SearchHistoryContext.jsx # Search history context
β”‚   β”œβ”€β”€ services/
β”‚   β”‚   └── pythonTutor.js         # OpenAI/Anthropic integration
β”‚   β”œβ”€β”€ App.jsx
β”‚   β”œβ”€β”€ main.jsx
β”‚   └── index.css
β”œβ”€β”€ index.html
β”œβ”€β”€ package.json
β”œβ”€β”€ vite.config.js
β”œβ”€β”€ tailwind.config.js
β”œβ”€β”€ vercel.json
└── README.md

πŸ“– Course Content

DayTopicTech StackStatus
1LLM Fundamentals + CLI AssistantPython, OpenAI APIβœ… Available
2Chatbot with Memory & ContextPython, FastAPI, SQLAlchemyβœ… Available
3RAG: Chat with DocumentsPython, ChromaDB, Gradioβœ… Available
4AI-Powered REST APIJava, Spring Boot, Spring AIβœ… Available
5Transformers & Fine-tuningPython, Hugging Face, LoRAβœ… Available
6AI Agents with Tool UsePython, Function Callingβœ… Available
7Data Pipeline with AI EnrichmentPython, Pandas, AI Classificationβœ… Available

Course Highlights

Each day includes:

  • πŸ“ Theory Sections β€” Core concepts and best practices
  • πŸ› οΈ Hands-On Tasks β€” Step-by-step implementation guides
  • πŸ’‘ Real-World Applications β€” Production-ready patterns
  • 🎯 Learning Objectives β€” Clear goals for each day

Total: 41-57 hours of hands-on learning

πŸ› οΈ Tech Stack

Frontend

  • React 18 β€” UI framework
  • Vite β€” Build tool and dev server
  • Tailwind CSS β€” Utility-first styling
  • Framer Motion β€” Smooth animations
  • React Router β€” Client-side routing
  • React Syntax Highlighter β€” Code highlighting
  • Lucide React β€” Beautiful icons

AI Integration

  • OpenAI SDK β€” GPT-4 integration
  • Anthropic SDK β€” Claude integration
  • JSON Mode β€” Structured AI responses

State Management

  • React Context β€” Global state (progress, search history)
  • localStorage β€” Persistent data storage

🎨 Customization

Adding New Course Content

  1. Create a new content file in src/data/ (e.g., day8Content.js)
  2. Follow the existing structure with sections array
  3. Import in CoursePage.jsx and add to contentMap
  4. Update courseRoadmap.js with the new day's metadata
  5. Add navigation link in App.jsx

Modifying the AI Tutor

The AI tutor service is in src/services/pythonTutor.js. You can:

  • Customize the system prompt for different teaching styles
  • Adjust the response structure in JSON_SCHEMA
  • Add new AI providers by implementing additional methods
  • Modify the model selection (currently uses GPT-4-turbo and Claude-3-sonnet)

Styling

  • Global styles: src/index.css
  • Tailwind config: tailwind.config.js (custom surface and brand colors)
  • Component styles: Inline Tailwind classes

πŸ”’ Privacy & Security

  • API keys are stored locally in browser localStorage
  • No backend β€” all AI calls made directly from browser
  • No tracking β€” your learning progress stays on your device
  • Open source β€” Verify the code yourself

Note: When using dangerouslyAllowBrowser flag with AI SDKs, API keys are exposed in browser. Only use for development/learning. Production apps should proxy API calls through a backend.

πŸ“„ License

MIT License β€” Feel free to use this for your own learning!

🀝 Contributing

Contributions welcome! Areas for improvement:

  • Additional course content for advanced topics
  • More AI providers (Gemini, Mistral, etc.)
  • Backend API proxy for secure API key handling
  • Additional language primers (JavaScript, Java, etc.)
  • Quizzes and assessments

Please open an issue or PR.

πŸ™ Acknowledgments

  • Course content inspired by real-world LLM engineering practices
  • Built with modern React and AI best practices
  • Designed for hands-on, practical learning

Built with ❀️ for aspiring LLM engineers

πŸ€– Generated with Claude Code

Contributors

alubin

10 commits

Languages

TypeScript

98.8%