Wire up Ticketmaster, SeatGeek, Telegram, scoring, Playwright stubs. Deduplicate events with fuzzy venue/name matching. Retry calendar updates on transient failures. Backlog tasks marked complete. Made-with: Cursor
66 lines
2.6 KiB
Markdown
66 lines
2.6 KiB
Markdown
# Backlog
|
|
|
|
## Epic: Automated Airbnb Event Pricing
|
|
|
|
### Story 1: Event Data Ingestion
|
|
|
|
> As a host, I want to fetch upcoming Toronto events from public APIs so I can identify dates with high accommodation demand.
|
|
|
|
| Task | Status | Notes |
|
|
|---|---|---|
|
|
| 1.1 Integrate Ticketmaster Discovery API | Done | `src/providers/ticketmaster.py`, major-venue filter |
|
|
| 1.2 Integrate SeatGeek API | Done | `src/providers/seatgeek.py`, score threshold |
|
|
| 1.3 Normalize events to common model | Done | `NormalizedEvent` in `src/models.py` |
|
|
| 1.4 Deduplicate events across providers | Done | `src/dedup.py` — date + fuzzy venue + fuzzy name |
|
|
|
|
### Story 2: Telegram Notification System
|
|
|
|
> As a host, I want to receive a Telegram message containing the flagged dates so I can review findings before automated pricing kicks in.
|
|
|
|
| Task | Status | Notes |
|
|
|---|---|---|
|
|
| 2.1 Build Telegram bot alerter | Done | `src/notifications/telegram.py` (httpx, Bot API) |
|
|
| 2.2 Format message with grouped dates | Done | MarkdownV2, grouped by date |
|
|
|
|
### Story 3: Browser Automation (Playwright)
|
|
|
|
> As a host, I want a script to log into Airbnb and change prices on specific dates so I don't have to do it manually.
|
|
|
|
| Task | Status | Notes |
|
|
|---|---|---|
|
|
| 3.1 Handle authentication & session state | Done | `src/airbnb/auth.py`, `scripts/airbnb_login.py` |
|
|
| 3.2 Automate calendar UI updates | Done | `src/airbnb/calendar.py` (selectors need live verification) |
|
|
| 3.3 Add retry/fallback on UI failure | Done | Retries in `update_price`; runner skips dates on failure |
|
|
|
|
### Story 4: Scoring & Filtering
|
|
|
|
> As a host, I want events scored by likely pricing impact so I only adjust prices for meaningful demand drivers.
|
|
|
|
| Task | Status | Notes |
|
|
|---|---|---|
|
|
| 4.1 Define venue size/type scoring rules | Done | `src/scoring/impact.py` (`VENUE_CAPACITY`) |
|
|
| 4.2 Filter by date window (lookahead) | Done | `filter_by_window` in `src/main.py`, `lookahead_days` in config |
|
|
|
|
### Story 5: Orchestration & Deployment
|
|
|
|
> As a developer, I want to orchestrate the pipeline and deploy via Docker on cron.
|
|
|
|
| Task | Status | Notes |
|
|
|---|---|---|
|
|
| 5.1 Main CLI runner with modes | Done | `src/main.py` — `--dry-run`, `--alerts-only`, full |
|
|
| 5.2 Dockerfile for Playwright | Done | `Dockerfile` (Chromium + deps) |
|
|
| 5.3 Cron configuration guide | Done | See [README.md](README.md) |
|
|
|
|
---
|
|
|
|
## Future ideas (not scheduled)
|
|
|
|
- Eventbrite integration
|
|
- PredictHQ integration (paid, but powerful)
|
|
- Web scraping fallback for niche events
|
|
- Historical price tracking (SQLite)
|
|
- Multi-listing support
|
|
- Smarter pricing model (base + multiplier per event score)
|
|
- Slack/Discord notification channel
|
|
- Dashboard/web UI
|