Commit Graph

2 Commits

Author SHA1 Message Date
4a928c10d6 feat: manual CSV/HTML upload for sources without public API (Arbuz/Sharyn)
- src/pipeline/upload.py: parse_csv/parse_html → normalize→categorize→validate→upsert
- POST /api/upload (multipart) + form on /sources
- low-confidence records → review queue, not analytics
- +3 tests (16 passed, 1 skipped)
2026-09-24 07:13:33 +00:00
6c890fa20a v2: Python MVP — price pipeline + analytics + FastAPI dashboard + digest + tests
- pipeline: fetch/extract/normalize/categorize/validate/llm_extract/raw/orchestrator
- analytics: dynamics, spreads/arbitrage, seasonality, anomalies, alerts, forecast
- dashboard: FastAPI + Plotly (overview/products/product/countries/alerts/quality/sources)
- scheduler (APScheduler 07:30), digest (Telegram/SMTP dry-run), demo_data
- SQLite (PORTABLE) with idempotent upserts, quarantine, alerts dedup
- truthfulness: LLM quote-verified, source link + date on every price
- tests: 13 passed, 1 skipped (robots port)
2026-09-24 07:07:32 +00:00