How it works
This repository is a portfolio demo. The two featured dashboards run entirely in the browser with synthetic Northwind Cloud data. The description below matches what shipped in production before this public scrub.
Architecture (production)
[ GA4 ] [ Google Search Console ]
\ /
\ /
v v
[ Browser dashboards ] ----OAuth----> Google APIs (per-user token)
|
| (optional nightly ETL, not in this repo)
v
[ BigQuery warehouse ] design / ops
|
v
[ Zapier or scheduled job ] automation
|
+------+------+
v v
[ Slack alert ] [ Claude summary ] LLM briefing
|
v
[ Asana task draft ] human approval
What this repo ships in code
- Static HTML dashboards with Chart.js, shared export helpers in
assets/exports.js. - GA4 Data API client in each dashboard (
gaReportPOST toanalyticsdata.googleapis.com). Disabled in the portfolio build. - Search Console queries on the Marketing dashboard organic tab. Disabled in the portfolio build; mock JSON is embedded instead.
- Anomaly detection (14-day rolling mean and standard deviation, configurable z threshold) in
anomaly/index.html. Runs on demo series viaassets/demo-ga4.js. - PDF export via browser print. Spreadsheet export targets Google Sheets in production; demo mode blocks Google APIs and falls back to local XLSX when Sheet creation fails.
Demo adapters this deploy
assets/portfolio-demo.jssetsGROWTH_OPS_DEMO.enabledand blocks fetch to Google, Anthropic, and Asana hosts.assets/demo-ga4.jsimplementsDemoGA4.runReport()with the same response shape as GA4'srunReportfor daily and breakdown queries Anomaly Watch needs.- Marketing Analytics uses large in-file mock objects (already used for unsigned preview in production); OAuth and live loaders are not initialized in this build.
Documented but not simulated here design / ops
- BigQuery as the warehouse for rolled-up marketing tables (fed by GA4 export or ETL). No BigQuery client ships in these HTML files.
- Claude for weekly narrative summaries and anomaly explanations. Production used API calls from automation, not from the dashboard bundle.
- Asana for task drafts after an anomaly or SLA breach. Humans approved tasks before assignees were notified.
- Slack alerts from Zapier on the same z-score logic as Anomaly Watch (spec lived in internal runbooks; not bundled in this demo).