20
Experience
Dribs
Architecture
6 Local Sites → Python Scrapers → events.json → PostgreSQL → Flask API → Solid.js Frontend
How Far You've Come
Done
- 6 working scrapers (Urner Wochenblatt, KBU, Musikschule Uri, Schulen Altdorf, Gemeinde Altdorf, Gemeinde Andermatt) — mix of custom HTML parsers and RSS
- Central orchestrator (scraping/scraping.py) with deduplication by title+date+time
- 400+ scraped events in events/events.json
- PostgreSQL schema with events + sources tables, UUID keys, foreign keys
- Data ingestion pipeline (db/parse_json.py) that upserts sources and inserts events
- Flask REST API (api/app.py) — GET /api/events?date=YYYY-MM-DD and GET /api/sources, CORS enabled
- Frontend skeleton (frontend/src/) — Solid.js + Tailwind, with Header and Card components styled
7 hours ago