1.8 KiB
1.8 KiB
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
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.