Architecture, file structure, the manage.py menu, and the API reference were each documented in two or three of README.md, SPEC.md, and CLAUDE.md — the same drift trap the SQL just had. SPEC.md, examples/GETTING_STARTED.md, and ui/README.md move into docs/. PERSPECTIVE.md and docs/perspective-pivot.md merge into docs/perspective.md, version rationale first, then the API reference. README.md becomes an entry point that links out, and CLAUDE.md keeps only working rules and non-obvious behaviour, pointing at docs/spec.md for the rest. examples/ keeps just the sample CSV the tutorial loads. Corrections found while consolidating: - the spec's API table was missing 20 routes — every override endpoint, most of /api/stacks, the mapping remap routes, /health. Rebuilt from the route files - the tutorial used port 3000 (default is 3020) and never mentioned Basic auth, so every curl in it would have 401'd - the tutorial and the spec each hand-listed the SQL deploy order; both now point at manage.py, which is where the order actually lives - CLAUDE.md described deduplication as an MD5 hash (it is a plain JSONB object), claimed 5 tables and 4 functions, and told you to run a setup.sh that has not existed for some time Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
26 lines
594 B
Markdown
26 lines
594 B
Markdown
# Dataflow UI
|
|
|
|
React + Vite + Tailwind CSS frontend for Dataflow.
|
|
|
|
## Development
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev # dev server on :5173, proxies /api to :3020
|
|
```
|
|
|
|
## Build
|
|
|
|
```bash
|
|
npm run build # outputs to ../public/
|
|
```
|
|
|
|
The Express server serves `../public/` as static files — no separate web server needed in production.
|
|
|
|
## Key packages
|
|
|
|
- `react` / `react-router-dom` — SPA routing
|
|
- `@perspective-dev/client`, `viewer`, `viewer-datagrid`, `viewer-d3fc` — pivot table (npm, inline WASM builds)
|
|
- `tailwindcss` — utility CSS
|
|
- `sql-formatter` — SQL display formatting
|