This is a fun, well-scoped project. Before I start building, let me nail down the crux and a couple of design choices.
The crux: API access. Everything depends on the specifics of the Fringe API. The Edinburgh Festival Fringe does publish a developer API (historically at api.edinburghfestivalcity.com), which typically requires an API key + secret and returns show/performance data as JSON. To build the fetcher correctly I'll need to know:
- Do you already have credentials (key/secret or token)? If so, we'll want to put them somewhere safe (env var / gitignored file), not in code.
- Do you have a link to the API docs, or should I look them up to confirm the current endpoints, auth scheme, and the shape of the event data (especially how venue location, dates, and times are represented)?
That last point matters because your three filters — venue distance from centre, performance date, and start time — depend entirely on which fields the API exposes (e.g. does it give venue lat/long, or just an address? are performances listed as individual dated instances or as a date range + schedule?).
Let me also pin down two design choices so I build the right thing: