No description
- TypeScript 98.1%
- Dockerfile 1.3%
- HTML 0.6%
| dist | ||
| node_modules | ||
| src | ||
| .dockerignore | ||
| .gitignore | ||
| Dockerfile | ||
| index.html | ||
| package.json | ||
| pnpm-lock.yaml | ||
| README.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
Analytics Dashboard
Operator-facing dashboard for the analytics service (../analytics-be). Vite +
React + MUI + recharts + @mui/x-data-grid + react-query. Talks directly to the
analytics service using the admin key, which is entered at the login screen and
held only in sessionStorage (sent as the x-admin-key header — never in a
request body or the bundle).
Run locally
pnpm install
pnpm dev # http://localhost:5174
Log in with the service URL (e.g. http://localhost:3002) and the
ADMIN_API_KEY the analytics service was started with.
Pages
- Overview — KPI cards + traffic time series (metric/interval toggles).
- Pages & Clicks — top pages (views + avg dwell) and top click targets.
- Audience — referrers, device breakdown, engagement (active/idle + dwell).
- Sessions — paginated grid, per-session timeline drawer, movement heatmap.
- Experiments — A/B results per variant with chi-squared significance.
- AI Insights — on-demand summary + suggestions from local Ollama.
- Manage — create projects, API keys (copy), and experiments.
Build / test
pnpm build # tsc --noEmit && vite build
pnpm test # vitest
Notes
- The bundle is a single chunk (~457 KB gz). It's an internal tool; code-splitting
was skipped — add
manualChunksif it ever ships externally.