A browser-based data analysis platform from raw CSV to a finished report, in one tab.
Built by Sanjay Polamarasetti - Data Analyst
Data Analyst Workbench is a fully browser-based analysis tool that takes a raw CSV file through cleaning, querying, visualization, and reporting without requiring Python, Excel, a server, or an API key.
Open it in a browser, upload a file, and start analyzing.
| Module | Description |
|---|---|
| 📁 Upload & Preview | Drag-and-drop CSV support for 1M+ rows, with automatic column-type detection and virtual scrolling |
| 🧹 Clean & Transform | Remove nulls and duplicates, rename columns, create calculated fields all changes logged for audit |
| 🔍 SQL Query Engine | Write SQL directly, or describe a query in plain English, executed instantly via in-browser SQLite |
| 📈 Visualize | Seven chart types, auto-generated KPI cards, and chart-type suggestions based on the data |
| 🔢 Pivot Tables | Excel-style pivot builder with drag-and-drop fields and multiple aggregation types |
| 🐍 Python EDA | Real pandas, numpy, and matplotlib running in-browser via Pyodide no Jupyter required |
| 🤖 AI Executive Report | One-click narrative report covering dataset overview, KPIs, insights, and recommendations |
| 📄 Export | Download CSVs, charts, pivot tables, and full reports as PDF |
Run locally
git clone https://github.com/YOUR_USERNAME/ai-data-analyst-workbench.git
cd ai-data-analyst-workbench
npx serve .
# open http://localhost:3000/landing.htmlOr run directly in the browser
Open landing.html in any modern browser and click Launch Workbench.
Upload CSV → Clean & Transform → Query (SQL / NL) → Visualize → Pivot → Python EDA → AI Report
- Upload - drag in a CSV; column types (number, text, date, boolean) are detected automatically
- Clean - remove empty rows and duplicates, rename or recast columns, add calculated fields (e.g.
Profit = Sales - Cost) - Query - write SQL directly, or describe the query in plain English
- Visualize - auto-generated KPI cards and charts (bar, line, pie, scatter, doughnut, area, radar)
- Pivot - build Excel-style pivot tables with row/column/value fields and multiple aggregations
- Python EDA - describe an analysis in plain English (e.g. "correlation matrix") to generate and run Python code with chart output
- Report - generate a full executive summary and export it as a PDF
| 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 | Chart rendering and labeling |
| Python Runtime | Pyodide v0.25.0 | pandas / numpy / matplotlib in-browser |
| PDF Export | jsPDF + AutoTable | Report and chart export |
| Icons | Lucide Icons | Consistent UI iconography |
| NL Engine | Custom JS keyword engine | Plain-English → SQL/Python translation, no API calls |
| PWA | Service Worker + manifest.json | Installable, offline-capable |
| Styling | Vanilla CSS + CSS Variables | Dark/light mode, responsive layout |
ai-data-analyst-workbench/
├── landing.html Landing page
├── index.html Main application
├── style.css Styles (dark/light mode)
├── app.js Application logic
├── manifest.json PWA manifest
├── sw.js Service worker (offline support)
├── CHANGES.md Development changelog
├── data_analyst_workbench_PRD.md Product requirements
└── execution_plan.md Phase-by-phase build plan
SQL
| Input | Generated Query |
|---|---|
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 |
Python EDA
| Input | Output |
|---|---|
show basic statistics |
df.describe() summary table |
correlation matrix |
Heatmap via matplotlib |
plot histogram of revenue |
Distribution chart |
top 10 by sales |
Bar chart with printed table |
show outliers |
IQR-based outlier detection |
Built in 11 phases using AI-assisted development:
| Phase | Scope |
|---|---|
| 0 | App shell, navigation, dark/light mode, PWA setup |
| 1 | CSV upload, stats bar, column detection, data table |
| 2 | Clean & Transform core operations and action log |
| 3 | SQL query engine (sql.js) and template queries |
| 4 | Session persistence |
| 5 | NL-to-SQL keyword engine |
| 6 | Settings modal and API key management |
| 7 | Visualize KPI cards and chart builder |
| 8 | Pivot table workspace |
| 9 | AI executive report generator |
| 10 | PDF export, mobile responsiveness, PWA |
| 11 | Python EDA tab (Pyodide + NL-to-Python engine) |
AI tools used: Claude (Anthropic) as primary architect and code generator, Gemini/Antigravity for phase-level builds.
Sanjay Polamarasetti - Data Analyst
Built entirely with AI-assisted development, without writing code by hand this project set out to show that a data analyst can turn a well-defined product requirements document into a production-grade tool.
MIT License - free to use, fork, and build upon.
Built by Sanjay Polamarasetti | Data Analyst