← Back to all products
$29
Dashboard Generator
Generate interactive HTML dashboards from JSON/CSV data with charts, tables, and KPI cards.
JSONMarkdownPython
📄 Product Preview
Try the interactive reader and demo tools below, or get the full product with all content unlocked.
📖 Interactive Reader (Free Preview) ⚙ Try Demo Tools 📦 Download Free Sample📁 File Structure 11 files
dashboard-generator/
├── LICENSE
├── README.md
├── examples/
│ ├── dashboard_config.json
│ └── sample_sales.csv
├── free-sample.zip
├── guide/
│ ├── 01_features.md
│ ├── 02_quick-start.md
│ ├── 03_configuration-reference.md
│ └── 04_license.md
├── index.html
└── src/
└── dashboard_generator.py
📖 Documentation Preview README excerpt
Dashboard Generator
Generate interactive HTML dashboards from JSON/CSV data with charts, tables, and KPI cards. Auto-detects chart types from your data, or use a config file for full control.
Features
- Auto-detection — Feed it any JSON/CSV and it builds a sensible dashboard automatically
- SVG charts — Bar, line, and pie charts rendered as inline SVG (no JS dependencies)
- KPI cards — Highlight key metrics with trend indicators (up/down/flat)
- Data tables — Sortable, responsive tables for raw data inspection
- Multi-series line charts — Compare multiple metrics on one timeline
- Config file support — Full control over layout via JSON config
- Self-contained HTML — Single file output with embedded CSS, works offline
- Responsive layout — Looks good on desktop, tablet, and mobile
- Dark theme — Developer-friendly dark UI out of the box
Requirements
- Python 3.10+
- No external dependencies (stdlib only)
Quick Start
# Auto-generate dashboard from CSV data
python src/dashboard_generator.py --data examples/sample_sales.csv --title "Sales Dashboard"
# Auto-generate from JSON
python src/dashboard_generator.py --data examples/sample_metrics.json
# Use a config file for full control
python src/dashboard_generator.py --config examples/dashboard_config.json
# Custom output path and branding
python src/dashboard_generator.py --data data.csv --output report.html --color "#FF3366"
Output
Opens as a self-contained HTML file in any browser. Includes:
- KPI cards with trend arrows showing period-over-period change
- SVG bar charts for categorical comparisons
- SVG line charts for time-series trends (multi-series supported)
- Data tables for detailed inspection
Configuration Reference
For full control, create a JSON config:
{
"title": "Monthly Report",
"subtitle": "Q1 2026 Performance",
"brand_color": "#00E5FF",
"kpis": [
{"label": "Revenue", "value": "$42.5K", "change": 12.3},
{"label": "Users", "value": "1,847", "change": -3.1},
{"label": "Churn", "value": "2.1%", "change": -0.5}
],
*... continues with setup instructions, usage examples, and more.*
📄 Code Sample .py preview
src/dashboard_generator.py
#!/usr/bin/env python3
"""
Dashboard Generator — Analytics Hub (DataNest)
Generates interactive HTML dashboards from JSON/CSV data with charts,
tables, KPI cards, and responsive layout. Zero dependencies — stdlib only.
Usage:
python dashboard_generator.py --data sales.json --title "Sales Dashboard"
python dashboard_generator.py --data metrics.csv --output dashboard.html
python dashboard_generator.py --config dashboard_config.json
Dependencies: Python 3.10+ stdlib only (no pip packages)
License: MIT
"""
from __future__ import annotations
import argparse
import csv
import html
import json
import logging
import math
import sys
from dataclasses import dataclass, field
from datetime import datetime, timezone
from pathlib import Path
from typing import Any
# ---------------------------------------------------------------------------
# Constants
# ---------------------------------------------------------------------------
DEFAULT_TITLE = "Dashboard"
DEFAULT_BRAND_COLOR = "#00E5FF"
MAX_TABLE_ROWS = 100 # Prevent enormous tables from crashing browsers
# Chart dimensions (SVG viewbox units)
CHART_WIDTH = 600
CHART_HEIGHT = 300
CHART_PADDING = 60
logger = logging.getLogger("dashboard_generator")
# ---------------------------------------------------------------------------
# Data models
# ---------------------------------------------------------------------------
@dataclass
# ... 649 more lines ...