An interactive, all-in-one learning platform covering Python, algorithms, system design, finance, AI/ML, and more through hands-on coding practice, structured modules, quizzes, and real-world problems.
- 567+ Coding Problems across multiple difficulty levels and topics
- 110+ Interactive Modules with structured learning paths
- 1,216+ Multiple Choice Questions for concept reinforcement
- 1,197+ Quiz Questions with detailed explanations
- Discussion Questions with video recording capability
- In-Browser Python Execution using Pyodide (no backend needed!)
- Interactive Code Editor with Monaco Editor (VS Code powered)
- Custom Test Cases - create and save your own test cases for each problem
- Instant Test Feedback - run test cases immediately with execution time metrics
- Progress Tracking - track your learning journey across all content types
- Export/Import Progress - backup and restore your learning progress and video recordings
- Beautiful, Modern UI built with Next.js 15 and Tailwind CSS
- 100% Client-Side - all code runs in your browser with IndexedDB for local storage
- Hands-on Coding Problems with predefined and custom test cases, solutions, and explanations
- Comprehensive Module Sections with theory, code examples, and interactive exercises
- Interactive Quizzes with sample answers for knowledge validation
- Multiple Choice Assessments with detailed explanations and key points
- Discussion Prompts with video recording for deeper understanding and practice
- Progress Dashboards showing completion across sections, problems, quizzes, and discussions
- π Python - Fundamentals, Intermediate, Advanced, OOP, Async, Django, FastAPI, Testing
- β‘ Algorithms & Data Structures - Arrays, Trees, Graphs, Dynamic Programming, Backtracking, and more
- π Competitive Programming - Advanced problem-solving techniques
- ποΈ System Design - Fundamentals, Databases, Networking, Microservices, Distributed Systems, Real-world Architectures
- βοΈ Frontend Development - React & Next.js fundamentals
- βοΈ DevOps & AWS - Linux System Administration, Cloud Infrastructure
- π€ Applied AI / LLM Engineering - Prompt Engineering, RAG, Multi-Agent Systems, Code Generation, Tool Use, Production Systems
- π§ Machine Learning - Mathematical Foundations, Supervised/Unsupervised Learning, Deep Learning, NLP, Large Language Models
- π Quantitative Programming - Financial ML, Time Series Analysis, Statistical Methods
- π° Finance Foundations - Corporate Finance, Financial Statements, Valuation, Portfolio Theory
- π Trading & Markets - Algorithmic Trading, Risk Management, Options & Derivatives, Market Microstructure
- π’ Quantitative Finance - Time Series, Financial ML, Backtesting, Trading Infrastructure
- πΌ Product Management - Fundamentals and best practices
- π Engineering Management - Leadership and team management
- π¬ Behavioral Interview Prep - Common interview questions and answers
- π¦ Big Data - Distributed systems and data processing
- π Crypto & Blockchain - Blockchain fundamentals
- 567 Coding Problems - From easy warm-ups to hard challenges
- 110 Modules - Comprehensive learning paths
- 1,241 Sections - Detailed content sections with theory, examples, and exercises
- 1,216 Multiple Choice Questions - Test your understanding with instant feedback
- 1,197 Quiz Questions - Reinforce concepts with detailed sample answers
- 84 Discussion Questions - Deep dive into topics with video recording support
- 14 Learning Topics - Organized into clear learning paths
- Node.js 18+ (you have v22.13.1 β )
- npm or pnpm
# Install dependencies
npm install
# Start development server
npm run devOpen http://localhost:3000 in your browser.
The platform organizes content into topic-based learning paths, each containing multiple modules:
- Choose a Topic - Select from 14 different topic areas
- Explore Modules - Each topic contains 5-20+ modules with structured content
- Complete Sections - Work through detailed sections with theory and examples
- Practice Problems - Solve coding problems related to each module
- Take Quizzes - Validate your understanding with multiple choice and discussion questions
- Track Progress - Monitor your completion across sections, problems, quizzes, and discussions
Python Fundamentals Path:
- Start with Python Fundamentals module
- Read through sections on syntax, data types, and control flow
- Complete multiple choice questions to reinforce concepts
- Practice with coding problems from easy to hard
- Record discussion question responses to solidify understanding
- Move to Python Intermediate β Advanced β OOP β etc.
System Design Path:
- Begin with System Design Fundamentals
- Learn core building blocks (databases, caching, load balancing)
- Study trade-offs and design patterns
- Explore real-world architectures (Twitter, Uber, Netflix)
- Practice with case studies and practical projects
frontend/
βββ app/
β βββ layout.tsx # Root layout with Pyodide script
β βββ page.tsx # Home page with learning paths
β βββ modules/[slug]/ # Module viewing pages
β βββ problems/[id]/ # Individual problem pages
β βββ topics/[slug]/ # Topic problem listing pages
βββ components/
β βββ PythonCodeRunner.tsx # Code editor + test runner with custom test cases
β βββ SimpleCodeEditor.tsx # Alternative code editor for simpler problems
β βββ MultipleChoiceQuiz.tsx # Interactive quiz component
β βββ VideoRecorder.tsx # Discussion question video recorder
β βββ ExportImportMenu.tsx # Progress backup/restore functionality
β βββ InteractiveCodeBlock.tsx # Syntax-highlighted code blocks
β βββ MathText.tsx # Math rendering with KaTeX
β βββ ... # Other interactive components
βββ lib/
β βββ content/
β β βββ modules/ # 110 module definitions
β β βββ sections/ # 1,241 content sections
β β βββ problems/ # 567 problem definitions
β β βββ multiple-choice/ # 1,216+ MCQ definitions
β β βββ quizzes/ # 1,197+ quiz definitions
β β βββ discussions/ # 84+ discussion questions
β β βββ topics/ # Topic organization
β βββ pyodide.ts # Pyodide loader
β βββ types.ts # TypeScript interfaces
β βββ helpers/ # Storage and utilities
βββ curricula/ # 13 curriculum markdown files
- Pyodide: Python (CPython 3.11) compiled to WebAssembly runs directly in the browser - no server needed!
- Monaco Editor: Same editor that powers VS Code for a familiar coding experience with syntax highlighting
- Next.js 15: React framework with App Router for optimal performance and SEO
- IndexedDB: Client-side storage for progress tracking, code persistence, custom test cases, and video recordings
- LocalStorage Sync: Hybrid storage approach with IndexedDB for large data (videos) and localStorage for fast access
- No Backend: Everything runs client-side - zero infrastructure costs, infinite scalability!
- Framework: Next.js 15 (App Router) with React 19
- Language: TypeScript for type safety
- Styling: Tailwind CSS 4 with custom Dracula theme
- Code Editor: Monaco Editor (@monaco-editor/react)
- Python Runtime: Pyodide (CPython 3.11 compiled to WebAssembly)
- Storage: IndexedDB + localStorage hybrid for optimal performance
- Math Rendering: KaTeX via react-katex
- Syntax Highlighting: react-syntax-highlighter and Prism.js
- Deployment: Vercel with optimized build configuration
Edit the appropriate file in lib/content/problems/[topic]/:
{
id: 'problem-slug',
title: 'Problem Title',
difficulty: 'Easy', // or 'Medium', 'Hard'
topic: 'Arrays & Hashing',
description: '...',
examples: [...],
starterCode: `def solution(...):
pass
`,
testCases: [...],
// ... other fields
}- Create a module file in
lib/content/modules/ - Import sections, quizzes, and multiple choice questions
- Define the module object with sections array
- Add the module to the appropriate topic in
lib/content/topics/
- Sections: Add content files in
lib/content/sections/[module-name]/ - Quizzes: Add quiz files in
lib/content/quizzes/[module-name]/ - Multiple Choice: Add MCQ files in
lib/content/multiple-choice/[module-name]/
- Colors: Edit Tailwind classes in components (uses Dracula theme by default)
- Pyodide Version: Update CDN URL in
app/layout.tsx - Editor Theme: Change
themeprop inPythonCodeRunner.tsx - Progress Tracking: Modify storage helpers in
lib/helpers/
The easiest way to deploy this Next.js app is using Vercel:
-
Install Vercel CLI (optional):
npm i -g vercel
-
Connect to Vercel:
vercel login
-
Deploy:
vercel
-
Production deployment:
vercel --prod
- Push your code to GitHub
- Import your repository in Vercel Dashboard
- Vercel will automatically detect Next.js and configure the build
- Every push to
mainwill trigger a new deployment
If you need environment variables:
- Go to your project in Vercel Dashboard
- Navigate to Settings β Environment Variables
- Add your variables
The project includes vercel.json with optimized settings:
- Build command:
pnpm run build - Framework detection: Next.js 15
- Security headers configured
- Pyodide CDN proxying for better performance
Python not loading?
- Check internet connection (Pyodide is ~10MB CDN download)
- Check browser console for errors
- Try refreshing the page
Code not running?
- Ensure function name matches the problem's expected function name
- Check for Python syntax errors
- Make sure you're returning the correct data type
Progress not saving?
- Check browser console for IndexedDB errors
- Ensure cookies/local storage is enabled
- Try using the Export/Import feature to backup and restore
- Use the "Force Sync to IndexedDB" button if sync seems stuck
Videos not saving?
- Videos are stored in IndexedDB (larger storage capacity)
- Check browser storage quota in DevTools β Application β Storage
- Ensure sufficient disk space available
Vercel Build Failing?
- Ensure
pnpm-lock.yamlis committed - Check build logs in Vercel Dashboard
- Run
pnpm run buildlocally first - Verify all dependencies are in
package.json
MIT - Feel free to use this for your own learning!
Happy Learning! π Master programming, algorithms, system design, finance, AI, and more, one module at a time.