Bongbetic
Reporter
A dashboard helper that turns Excel sheets into useful visual readouts and correlates data between worksheets.
Analytics
Excel
Dashboards
Problem
Teams spent too much time manually cross-checking worksheets before sharing performance updates.
Outcome
Reporter reduced repetitive analysis by creating clean dashboard views with sheet-to-sheet correlation.
Technical Spec Sheet
Reporter engineering blueprint
Platform
Cross-platform desktop analytics workbench (Electron)
Architecture
- Electron main process hosts secured IPC handlers for AI, dashboard serialization, settings, and Google Sheets import.
- Preload bridge exposes controlled APIs to renderer for file and AI operations.
- Renderer app (React + TypeScript + Zustand) manages datasets, widgets, relationships, and dashboard state.
- Shared type contracts (`src/types/shared.ts`) align main/renderer message formats.
Stack
- Electron 39 + electron-vite + TypeScript
- React 19 + Zustand + Radix UI + Tailwind
- Recharts + react-grid-layout for dashboard composition
- DuckDB + xlsx + PapaParse for data ingestion/manipulation
- OpenAI / Anthropic / Gemini / Ollama provider support
Core Modules
- `src/main/ipc/ai.ts`: provider routing, key testing, structured widget suggestions, tool-call filtering by autonomy level
- `src/main/ipc/sheets.ts`: Google Sheets URL parse + tab discovery + CSV fetch with redirect/private-sheet handling
- `src/renderer/src/store/useAppStore.ts`: multi-dataset state, calculated columns, relationships, widget schema
- `src/renderer/src/lib/*`: aggregation, joins, formula evaluation, trendline, formatting/export utilities
Data Flow
- CSV/XLSX/Sheets input parsed into normalized dataset metadata.
- User composes widgets mapped to dataset columns, relationships, and optional temporal/join transforms.
- Dashboard engine computes chart-ready datasets and table outputs in renderer state.
- AI assistant can propose/operate widgets through constrained tool blocks and store-aware context sharing.
Integrations
- OpenAI, Anthropic, Gemini, Ollama inference providers
- Google Sheets public-share import path
- Multi-format export pipeline (HTML, PPTX, image, workbook workflows)
Packaging and Delivery
- electron-builder targets: Windows installer, macOS dmg, Linux AppImage
- Separate dev/build pipelines (`electron-vite dev`, `build:win|mac|linux`)
- Settings + dashboard spec persistence for offline-first usage
Quality and Reliability Measures
- Vitest unit coverage across aggregation, joins, formulas, trendline, and AI tooling helpers
- Strict typed store/actions for widget schema evolution
- Main-process boundary for network-sensitive operations