74 lines
3.2 KiB
Markdown
74 lines
3.2 KiB
Markdown
# SixFlagsSuperCalendar
|
|
|
|
## What This Is
|
|
|
|
A personal website that consolidates theme park operating calendars into a single full-month grid view. Starting with all Six Flags parks scraped from their website, expanding to any theme park via configurable scraper adapters, and eventually becoming a trip planning engine that suggests nearby parks and estimates travel costs.
|
|
|
|
## Core Value
|
|
|
|
One place to see every park's open days — so planning a trip takes seconds, not a dozen browser tabs.
|
|
|
|
## Requirements
|
|
|
|
### Validated
|
|
|
|
(None yet — ship to validate)
|
|
|
|
### Active
|
|
|
|
- [ ] Full month grid calendar showing open/closed days across all Six Flags parks
|
|
- [ ] Web scraper pulls park hours from sixflags.com (URL pattern: `/{park}/park-hours?date=YYYY-MM-DD`)
|
|
- [ ] Scraper adapter architecture so other park chains can be added with minimal new code
|
|
- [ ] Any theme park can be added via manual configuration (URL pattern + scraper adapter)
|
|
- [ ] Trip planner suggests nearby open parks given a target park and date range
|
|
- [ ] Drive time shown between parks
|
|
- [ ] Rough flight cost estimate via Google Flights for farther destinations
|
|
|
|
### Out of Scope
|
|
|
|
- Booking / ticketing — just planning and discovery, not purchasing
|
|
- User accounts — personal use, no auth needed
|
|
- Real-time wait times or crowd levels — calendar/hours only
|
|
- Mobile app — web-first
|
|
|
|
## Context
|
|
|
|
- Six Flags park hours follow a consistent URL pattern: `https://www.sixflags.com/{park-slug}/park-hours?date=YYYY-MM-DD`
|
|
- Other major theme park chains (Cedar Fair, Universal, Disney, Busch Gardens) have similar site structures — a reusable scraper base should cover most cases
|
|
- Trip planning example: planning King's Dominion → surface Busch Gardens Williamsburg as a nearby park that's also open
|
|
- Google Flights rough estimates (not bookable) are sufficient for V2 flight cost
|
|
|
|
## Constraints
|
|
|
|
- **Data**: Web scraping — no official API, fragile to site redesigns; mitigate with adapter isolation so fixes are localized
|
|
- **Audience**: Personal use only — no need for scalability, auth, or uptime SLAs
|
|
- **Tech**: Website (browser-based); stack TBD during planning
|
|
|
|
## Key Decisions
|
|
|
|
| Decision | Rationale | Outcome |
|
|
|----------|-----------|---------|
|
|
| Scrape over API | No public Six Flags API exists | — Pending |
|
|
| Adapter pattern for scrapers | Different parks have different HTML; reuse parsing logic where possible | — Pending |
|
|
| Personal use (no auth) | Just for the owner; no user management complexity | — Pending |
|
|
|
|
## Evolution
|
|
|
|
This document evolves at phase transitions and milestone boundaries.
|
|
|
|
**After each phase transition** (via `/gsd:transition`):
|
|
1. Requirements invalidated? → Move to Out of Scope with reason
|
|
2. Requirements validated? → Move to Validated with phase reference
|
|
3. New requirements emerged? → Add to Active
|
|
4. Decisions to log? → Add to Key Decisions
|
|
5. "What This Is" still accurate? → Update if drifted
|
|
|
|
**After each milestone** (via `/gsd:complete-milestone`):
|
|
1. Full review of all sections
|
|
2. Core Value check — still the right priority?
|
|
3. Audit Out of Scope — reasons still valid?
|
|
4. Update Context with current state
|
|
|
|
---
|
|
*Last updated: 2026-04-03 after initialization*
|