[verified] build tourism signal dashboard

This commit is contained in:
Kunthawat Greethong
2026-08-23 07:41:31 +07:00
commit 3e978c5948
19 changed files with 2597 additions and 0 deletions

47
docs/HANDOFF.md Normal file
View File

@@ -0,0 +1,47 @@
# Handoff — Tourism Vertical Slice
## Project
- Path: `/Users/kunthawat/Gitea/set50-alternative-data-platform`
- Mode: research + paper only
- Frontend: Vue 3 + Vite
- Backend: Flask
- Current data: deterministic fixture with lineage metadata
## Completed
- Tourism snapshot schema with source, publication, retrieval and vintage fields.
- Deterministic Tourism Pulse score: standardized surprise × exposure × confidence.
- Ranked target weights and LONG/SHORT/NEUTRAL classification.
- Flask endpoints for health, summary, observations, signals and paper ledger.
- English dashboard with live API data, lineage panel, signal table and paper-entry form.
- No external webhook or MT5 integration.
## Verified commands
```text
PYTHONPATH=backend .venv/bin/python -m unittest discover -s backend/tests -v
Ran 10 tests ... OK
Paper writes use a server-side token exchange and HttpOnly `paper_session` cookie; the token is not embedded in the frontend bundle.
npm run build
Vite build completed successfully.
GET /api/v1/health
{"mode":"research","status":"ok","version":"0.1.0"}
POST /api/v1/paper/ledger + GET /api/v1/paper/ledger
PAPER_RECORDED and readback verified.
Independent review
PASSED — no concrete security or logic blockers.
```
## Known limitation
The data adapter is a fixture. It demonstrates the contract and calculation, not live tourism data quality. Browser visual screenshot verification was blocked by a Chrome remote-debugging permission prompt; served HTML, API response and frontend build were verified instead.
## Next action
Implement one replayable Tourism source adapter without changing the snapshot contract. Add parser fixture tests, publication timestamp handling, raw snapshot hash, and a data-health failure state before adding LLM analysis.