# AGENTS.md Guidance for agents working in this repository (Brandize · BI Dashboard). ## What this project is A **flat, server-free browser dashboard** for the Brandize BI webhook. It renders gross revenue (Brutto inkl. USt) per departure country plus a VAT summary, with KPI cards, bar charts and detail tables. There is **no build step, no framework, no package manager** — just static files opened directly in a browser. Supporting tools: a bash dev-server launcher (`start`) and a Python CLI (`send`) that uploads CSV rows to an n8n webhook. SQL scripts (`sql/`) define the upstream queries that feed the webhook (Odoo 17 / PostgreSQL). ## Layout | Path | Purpose | | --- | --- | | `index.html` | Dashboard markup: sidebar nav, shared filter bar, one `
` per report, auth overlay | | `styles.css` | All styling (CSS custom properties in `:root`, BEM-ish class names) | | `app.js` | Everything: data loading, parsing, rendering, CSV export, auth, navigation | | `README.md` | User-facing docs (German/English mixed). Update it when behavior changes | | `start` | Bash: installs `live-server` if missing and serves the folder on :8080 | | `send` | Python CLI: batches CSV rows to the `.../webhook/VAT` n8n webhook | | `sql/*.sql` | Upstream Odoo/PostgreSQL queries (see below) | | `data/` | Git-ignored. Empty in the repo; holds local CSV payloads for `send` | ## Running / validating There is **no test suite and no linter**. Validation is manual: - Open `index.html` directly (double-click) — the intended primary usage, works over `file://`. - Or run `./start` and browse `http://localhost:8080` for live reload. - `./send data/.csv` requires Python 3 + `requests` and network access to the webhook. Because `fetch` hits a remote webhook protected by HTTP Basic Auth, you generally **cannot fully exercise the UI without valid credentials and network access**. Don't claim validation passed unless you actually loaded the page and saw it work; otherwise state clearly what you could not run. ## Architecture notes (`app.js`) Single file, loaded as a plain `