Built 100% with AI by a Data Analyst, not a Developer. Sanjay Polamarasetti, Data Analyst
Data Analyst Workbench is a fully browser-based data analysis tool that lets anyone - technical or non-technical - go from raw CSV data to professional insights in minutes.
No Python installation. No Excel license. No server. No API keys. No cost.
Just open the browser, upload your CSV, and start analyzing.
| # | Feature | What It Does |
|---|---|---|
| 📁 | Upload & Preview | Drag & drop CSV - even 1M+ rows. Auto column type detection. Virtual scroll. |
| 🧹 | Clean & Transform | Remove nulls, fix duplicates, rename columns, create calculated fields. Full audit log. |
| 🔍 | SQL Query Engine | Write real SQL OR describe in plain English → instant results via in-browser SQLite. |
| 📈 | Visualize | 7 chart types, KPI cards, auto chart suggestions. Feels like mini Power BI. |
| 🔢 | Pivot Tables | Excel-style drag-and-drop pivot builder with aggregation controls. |
| 🐍 | Python EDA | Real pandas + numpy + matplotlib running in your browser via Pyodide. |
| 🤖 | AI Executive Report | One click generates a full professional analysis report. Export as PDF. |
| 📄 | Download Everything | Export CSV, PDF, charts, pivot tables, and full combined reports. |
# 1. Clone the repo
git clone https://github.com/YOUR_USERNAME/ai-data-analyst-workbench.git
# 2. Enter the folder
cd ai-data-analyst-workbench
# 3. Start local server
npx serve .
# 4. Open in browser
# Go to: http://localhost:3000/landing.htmlOpen landing.html in any modern browser → click Launch Workbench → done.
📁 UPLOAD CSV
↓
Drag & drop your file (supports 1M+ rows)
Auto-detects column types: NUMBER | TEXT | DATE | BOOLEAN
↓
🧹 CLEAN & TRANSFORM
↓
Remove empty rows & duplicates
Rename columns, change types
Create calculated columns (e.g. Profit = {Sales} - {Cost})
Every action logged with timestamp
↓
🔍 QUERY YOUR DATA
↓
Option A: Write SQL directly
Option B: Type plain English → auto-generated SQL
Results in milliseconds via sql.js (SQLite in browser)
↓
📈 VISUALIZE
↓
Auto-generated KPI cards for all numeric columns
Build charts: Bar, Line, Pie, Scatter, Doughnut, Area, Radar
AI auto-suggests best chart type for your data
↓
🔢 PIVOT TABLES
↓
Drag fields into Rows / Columns / Values / Filters
Multiple aggregations: Sum, Avg, Count, Min, Max
Row & column totals auto-calculated
↓
🐍 PYTHON EDA
↓
Type: "show correlation matrix" → Python code generated
pandas + numpy + matplotlib available
Charts render directly in browser (no Jupyter needed)
↓
🤖 AI EXECUTIVE REPORT
↓
One click generates professional narrative
Covers: dataset overview, KPIs, insights, recommendations
Export individual section PDFs OR full combined report
| Category | Technology | Purpose |
|---|---|---|
| CSV Parsing | PapaParse | Chunked streaming for large files |
| SQL Engine | sql.js (SQLite → WASM) | In-browser SQL queries |
| Charts | Chart.js + DataLabels | 7 chart types with animations |
| Python | Pyodide v0.25.0 | pandas, numpy, matplotlib in browser |
| PDF Export | jsPDF + AutoTable | Professional PDF generation |
| Icons | Lucide Icons | Clean consistent icon system |
| NL Engine | Custom JS keyword engine | Plain English → SQL/Python (no API) |
| PWA | Service Worker + manifest.json | Installable, offline-capable |
| Styling | Vanilla CSS + CSS Variables | Dark/Light mode, responsive |
ai-data-analyst-workbench/
│
├── 📄 landing.html ← Beautiful landing page
├── 📄 index.html ← Main application
├── 🎨 style.css ← All styles (dark/light mode)
├── ⚙️ app.js ← All logic (3500+ lines)
├── 📋 manifest.json ← PWA manifest
├── 🔧 sw.js ← Service worker (offline support)
├── 📝 CHANGES.md ← Development changelog
├── 📋 data_analyst_workbench_PRD.md ← Full product requirements doc
└── 📋 execution_plan.md ← Phase-by-phase build plan
Type plain English — get instant SQL results:
| You Type | Generated SQL |
|---|---|
top 10 sales |
SELECT * ORDER BY sales DESC LIMIT 10 |
count by region |
SELECT region, COUNT(*) GROUP BY region |
average salary by department |
SELECT dept, AVG(salary) GROUP BY dept |
show missing values |
WHERE column IS NULL OR column = '' |
duplicates in product column |
GROUP BY product HAVING COUNT(*) > 1 |
Type plain English - get instant Python code + chart output:
| You Type | What Happens |
|---|---|
show basic statistics |
df.describe() — full stats table |
correlation matrix |
Heatmap rendered with matplotlib |
plot histogram of revenue |
Distribution chart appears instantly |
top 10 by sales |
Bar chart + printed table |
show outliers |
IQR method, outlier rows highlighted |
Total Phases Built : 11
Total Lines of Code : 3,500+
Tools Available : 8
Chart Types : 7
PDF Export Options : 10+
Cost to Use : $0
Installation Required : None
Time to First Insight : < 30 seconds
This project was built in 11 phases using AI tools:
| Phase | What Was Built |
|---|---|
| 0 | App shell, navigation, dark/light mode, PWA setup |
| 1 | CSV upload, stats bar, column detection, data table |
| 2 | Clean & Transform — 8 operations + action log |
| 3 | SQL query engine (sql.js) + template chips |
| 4 | Session persistence (sessionStorage) |
| 5 | NL-to-SQL keyword engine (no API needed) |
| 6 | Settings modal, API key management |
| 7 | Visualize — KPI cards + Chart builder |
| 8 | Excel-style Pivot Table workspace |
| 9 | AI Executive Report generator |
| 10 | Full PDF export + mobile responsiveness + PWA |
| 11 | Python EDA tab (Pyodide + NL-to-Python engine) |
| Tool | Role |
|---|---|
| Claude (Anthropic) | Primary architect, code generation, debugging |
| Gemini (Google) | Antigravity AI assistant for phase builds |
| Antigravity | VS Code-based AI coding environment |
Sanjay Polamarasetti - Data Analyst
This entire project was built without writing a single line of code manually. Using AI tools, I turned a detailed PRD into a fully working web application - proving that data analysts can build production-grade tools without being developers.
"The goal was simple: build the tool I always wished existed."
MIT License - free to use, fork, and build upon.
Built with ❤️ by Sanjay Polamarasetti | Data Analyst
⭐ Star this repo if you found it useful!