A local-first, browser-powered interview training dashboard for Python and SQL — with supporting machine learning and GenAI fundamentals. No backend, no account, no install required beyond npm install.
It combines a polished dark-mode study dashboard with browser-executed Python (via Pyodide), browser-executed SQLite (via sql.js), flashcards, progress tracking, mistake tracking, and an optional local Ollama tutor.
Most interview prep notes are static. This app turns preparation into an interactive training workspace:
- read a clear exercise prompt
- write a fresh solution
- run Python or SQL directly in the browser (no server needed)
- compare with corrected solutions side-by-side
- track weak / review / strong status per topic
- revise with flashcards, quiz mode, notes, and a mistake tracker
- optionally ask a local Ollama LLM for hints or explanations
- Core Python, OOP, algorithms, testing, async, FastAPI basics
- Data Python, ML basics, GenAI/RAG, advanced Python internals
- Browser-side Python execution through Pyodide — no local Python needed
- Automated checks for many exercises
- Side-by-side "Your answer" vs "Corrected solution" views
- Smart textarea: auto-indent after
:, Tab/Shift+Tab indentation
Topic areas:
| # | Topic |
|---|---|
| 1 | Dictionaries, Lists, Sets, and Tuples |
| 2 | Functions and Comprehensions |
| 3 | try/except and Safe Dictionary Access |
| 4 | Classes and OOP Basics |
| 5 | Generators and Iterators |
| 6 | Decorators |
| 7 | Context Managers |
| 8 | Mutability, Shallow Copy, and Deep Copy |
| 9 | JSON, APIs, and Practical Python Basics |
| 10 | Simple RAG Helper Functions |
| 11 | Simple Agent / Tool Routing Logic |
| 12 | Async Basics |
| 13 | FastAPI Basics |
| 14 | Pytest Basics |
| 15 | Algorithm Patterns: Hash Map, Two Pointers, Stack, Binary Search |
| 16 | Sliding Window and String Patterns |
| 17 | Recursion, Trees, and Graph Basics |
| 18 | Python Standard Library for Interviews |
| 19 | Data Python: Cleaning, Grouping, and Joins |
| 20 | Data Engineering: Files, Batching, and ETL Helpers |
| 21 | AI Engineer Python: RAG Scoring and Prompt Assembly |
| 22 | Debugging, Refactoring, and Code Review Drills |
| 23 | Python Internals and Advanced Concepts |
| 24 | Data Science Python Concepts |
| 25 | Coding Challenges I |
| 26 | Coding Challenges II |
| 27 | AI and ML Python Concepts |
| 28 | Machine Learning Basics for Interviews |
- 10 groups × 5 exercises — LeetCode-style SQL drills
- SELECT, filtering, aggregation, joins, subqueries, window functions, CASE, dates, strings
- Browser-side SQLite execution via sql.js — no database server needed
- Seeded sample database included
- Compares user query result against corrected query result automatically
SQL topic groups:
| # | Group |
|---|---|
| 1 | Basic SELECT |
| 2 | Filtering Conditions |
| 3 | Aggregation |
| 4 | Joins |
| 5 | Subqueries |
| 6 | Window Functions |
| 7 | CASE, Dates, and Strings |
| 8 | LeetCode-Style Drills |
| 9 | Review and Edge Cases |
| 10 | Practical SQL Analytics Patterns |
Best suited for:
- Data Scientist interviews
- AI Engineer interviews
- Data Engineer interviews
- Data Analyst interviews
- Python backend / API roles
- SQL analytics and data querying roles
| Feature | Description |
|---|---|
| Topic cards | Organised by topic with status tags |
| Role-based filtering | Filter topics by target role |
| Flashcards | Quick revision cards per topic |
| Quiz mode | Multiple-choice knowledge checks |
| Notes | Per-topic personal notes |
| Mistake tracker | Log and review errors |
| Review queue | Auto-surfaces weak topics |
| Progress tags | Weak / Review / Strong per topic |
| localStorage persistence | All progress saved in the browser |
- Sandbox tutor mode works fully offline with deterministic templates
- Optional local Ollama connection at
127.0.0.1:11434 - Provides hints, code review, concept explanations, and mock follow-up questions
| Layer | Technology |
|---|---|
| UI framework | React 19 |
| Build tool | Vite 8 |
| Styling | Tailwind CSS 3 |
| In-browser Python | Pyodide (WebAssembly) |
| In-browser SQL | sql.js / SQLite WASM |
| Local persistence | localStorage |
| Optional LLM | Ollama (local, offline) |
| Deployment | GitHub Pages via GitHub Actions |
npm install
npm run devThen open the local URL printed by Vite (typically http://localhost:5173).
Double-click:
Start Interview Prep Dashboard.cmd
Keep the terminal window open while using the dashboard.
npm run build
npm run previewStart Ollama, pull a model, then enable Local Ollama Connect inside the tutor panel:
ollama serve
ollama pull qwen2.5-coder:7bThe selected exercise and current draft are sent only to your local Ollama endpoint — nothing leaves your machine.
Add topics, exercises, corrected solutions, SQL prompts, or role-specific tracks in:
src/InterviewPrepTrainingDashboard.jsx
Key data sections:
| Section | Contents |
|---|---|
topics |
Python topic cards, previous answers, corrected solutions |
exerciseGuides |
Exercise prompts and examples |
exerciseTests |
Browser-side Python assertions |
sqlTopics |
SQL schemas, prompts, starters, corrected queries |
quizDeck |
Quiz questions |
flashcards |
Revision cards |
roleRoadmap |
Role-specific preparation checklist |
src/
InterviewPrepTrainingDashboard.jsx # main dashboard, training data, runners, UI
hooks/usePythonRunner.js # Pyodide worker hook
workers/pythonRunner.worker.js # browser Python execution worker
components/ui/ # reusable UI primitives
- Split large training data into separate
src/data/*modules - Add full CodeMirror / Monaco editor for advanced editing
- Add more SQL seed datasets and expected output fixtures
- Add import / export for progress data (JSON backup)
- Add richer local Ollama tutor workflows
- Add more role-specific tracks (MLE, Backend, Analytics Engineer)
The training material is original and organised around common Python, SQL, ML, data, and GenAI interview patterns. The SQL track covers common interview categories: SELECT, JOIN, GROUP BY, subqueries, and window functions.


