chore: remove college basketball (CBB) from iOS app

Remove CBB (~5,000+ games per season) to reduce complexity.

Changes:
- Remove .cbb enum case from Sport
- Remove CBB theme color (cbbMint)
- Update documentation to reflect 7 supported leagues

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-01-11 01:44:35 -06:00
parent 171221af0e
commit c9e5bd9909
5 changed files with 5 additions and 27 deletions

View File

@@ -4,7 +4,7 @@ An iOS app for planning multi-stop sports road trips across North America. Plan
## Features
- **Multi-Sport Trip Planning** - Plan trips across 8 professional and college leagues
- **Multi-Sport Trip Planning** - Plan trips across 7 professional leagues
- **Three Planning Modes**
- **By Date Range** - Find the best games within your travel window
- **By Must-See Games** - Build a trip around specific matchups you want to attend
@@ -26,7 +26,6 @@ An iOS app for planning multi-stop sports road trips across North America. Plan
| MLS | Soccer | February - December |
| WNBA | Basketball | May - October |
| NWSL | Soccer | March - November |
| CBB | College Basketball | November - April |
## Requirements

View File

@@ -14,7 +14,6 @@ enum Sport: String, Codable, CaseIterable, Identifiable {
case mls = "MLS"
case wnba = "WNBA"
case nwsl = "NWSL"
case cbb = "CBB"
var id: String { rawValue }
@@ -27,7 +26,6 @@ enum Sport: String, Codable, CaseIterable, Identifiable {
case .mls: return "Major League Soccer"
case .wnba: return "Women's National Basketball Association"
case .nwsl: return "National Women's Soccer League"
case .cbb: return "College Basketball"
}
}
@@ -40,7 +38,6 @@ enum Sport: String, Codable, CaseIterable, Identifiable {
case .mls: return "soccerball"
case .wnba: return "basketball.fill"
case .nwsl: return "soccerball"
case .cbb: return "basketball.fill"
}
}
@@ -53,7 +50,6 @@ enum Sport: String, Codable, CaseIterable, Identifiable {
case .mls: return .green
case .wnba: return .purple
case .nwsl: return .teal
case .cbb: return .mint
}
}
@@ -67,7 +63,6 @@ enum Sport: String, Codable, CaseIterable, Identifiable {
case .mls: return (2, 12) // February - December
case .wnba: return (5, 10) // May - October
case .nwsl: return (3, 11) // March - November
case .cbb: return (11, 4) // November - April (wraps, March Madness)
}
}
@@ -87,7 +82,7 @@ enum Sport: String, Codable, CaseIterable, Identifiable {
/// Currently supported sports
static var supported: [Sport] {
[.mlb, .nba, .nfl, .nhl, .mls, .wnba, .nwsl, .cbb]
[.mlb, .nba, .nfl, .nhl, .mls, .wnba, .nwsl]
}
}

View File

@@ -128,7 +128,6 @@ enum Theme {
static let mlsGreen = Color(hex: "00A651")
static let wnbaPurple = Color(hex: "FF6F20") // WNBA orange
static let nwslTeal = Color(hex: "009688") // NWSL teal
static let cbbMint = Color(hex: "3EB489") // College Basketball mint
// MARK: - Dark Mode Colors

View File

@@ -217,7 +217,6 @@ extension Sport {
case .mls: return Theme.mlsGreen
case .wnba: return Theme.wnbaPurple
case .nwsl: return Theme.nwslTeal
case .cbb: return Theme.cbbMint
}
}
}

View File

@@ -4,7 +4,7 @@ This document describes the SportsTime schedule scraping system, including all d
## Overview
The scraping system (`Scripts/scrape_schedules.py`) fetches game schedules for 8 sports leagues from multiple data sources. It uses a **multi-source fallback architecture** to ensure reliability—if one source fails or returns insufficient data, the system automatically tries backup sources.
The scraping system (`Scripts/scrape_schedules.py`) fetches game schedules for 7 sports leagues from multiple data sources. It uses a **multi-source fallback architecture** to ensure reliability—if one source fails or returns insufficient data, the system automatically tries backup sources.
## Supported Sports
@@ -17,7 +17,6 @@ The scraping system (`Scripts/scrape_schedules.py`) fetches game schedules for 8
| WNBA | Women's National Basketball Association | 2025 | ~200 |
| MLS | Major League Soccer | 2025 | ~500 |
| NWSL | National Women's Soccer League | 2025 | ~180 |
| CBB | NCAA Division I Basketball | 2025-26 | ~5,000+ |
## Data Sources by Sport
@@ -111,19 +110,6 @@ Each sport has 3 data sources configured in priority order. The scraper tries so
- ESPN's league ID for NWSL is `usa.nwsl`
- 14 teams, ~180 regular season games
### CBB (College Basketball - Division I)
| Priority | Source | URL Pattern | Min Games |
|----------|--------|-------------|-----------|
| 1 | ESPN API | `site.api.espn.com/apis/site/v2/sports/basketball/mens-college-basketball/scoreboard` | 1,000 |
| 2 | Sports-Reference | `sports-reference.com/cbb/seasons/{year}-schedule.html` | 500 |
| 3 | CBS Sports | `cbssports.com/college-basketball/schedule/` | 300 |
**Notes:**
- ~360 Division I teams = 5,000+ games per season
- ESPN provides group filtering (D1 = group 50)
- Season runs November-April (March Madness)
## Fallback Architecture
### ScraperSource Configuration
@@ -196,10 +182,10 @@ python scrape_schedules.py --sport all --season 2026 --output ./custom_data
| Option | Values | Default | Description |
|--------|--------|---------|-------------|
| `--sport` | `nba`, `mlb`, `nhl`, `nfl`, `wnba`, `mls`, `nwsl`, `cbb`, `all` | `all` | Sport(s) to scrape |
| `--sport` | `nba`, `mlb`, `nhl`, `nfl`, `wnba`, `mls`, `nwsl`, `all` | `all` | Sport(s) to scrape |
| `--season` | Year (int) | `2026` | Season ending year |
| `--stadiums-only` | Flag | False | Only scrape stadium data (legacy method) |
| `--stadiums-update` | Flag | False | Scrape ALL stadium data for all 8 sports |
| `--stadiums-update` | Flag | False | Scrape ALL stadium data for all 7 sports |
| `--output` | Path | `./data` | Output directory |
## Output Format