Project Overview
This is a web app that fetches tomorrow’s NBA head-to-head odds, compares prices between target bookmakers, highlights the best side, flags potential arbitrage, and lets you download a CSV. The emphasis: legal data access, minimal code, and production-minded structure.
Core Technologies
- Python 3 with
requestsfor API calls - Streamlit for a one-click UI
- python-dotenv for secure config via
.env - CSV export for analysis
Technical Execution & Problem Solving
- Compliance-first: used a licensed odds API instead of scraping sportsbooks (which often violates T&Cs).
- Time-zone correctness: normalized commence times to
Australia/Sydneyand filtered for “tomorrow”. - Price logic: computed best home/away prices and a simple arbitrage check (
1/home + 1/away < 1). - Resilience: added clear UI messages for missing data, API limits, or unavailable books.
Key Features
- One button to fetch: Fetch → Filter → Normalize → Compare → Export.
- Bookmaker allow-list (easy to extend).
- CSV with stable headers for downstream work.
- Lightweight code with type hints and small, testable helpers.
Demonstrated Skill Set
- API integration and quota awareness
- Secrets management via environment variables
- Data shaping & presentation for decision-making
- Professional judgement: legality, maintainability, and scope control
Why It Matters
Many “scraper” projects are brittle or non-compliant. This build shows a production-minded, minimal, and legal approach that’s easy to extend (more sports/markets, historical logging, dashboards) without rewriting the core.
You can find the project here: oddschecker.cm-web.dev