OpenAthlete
AGPLv3 endurance training platform: EU-oriented hosting, transparent CTL/ATL/TSB logic in code, self-hosting, and full export. Built in Grenoble.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證WNBA-first basketball data platform with a fantasy front end.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Live: https://fantasyscout.beronilla.rodeo · Spec: SPEC.md · Architecture: docs/architecture.md
FantasyScout is a WNBA-first basketball data platform with a fantasy front end. The fantasy app is what you use; the pipelines, models, tests and docs behind it are the platform, built in public.
sources ─► GitHub Actions ingest ─► Databricks lakehouse (dbt: bronze/silver/gold/ops)
─► quality gate ─► export to R2 ─► Cloudflare Worker ─► Astro app, DuckDB-WASM, Tableau, notebooks
| Capability | How FantasyScout does it | Where to see it |
|---|---|---|
| Cloud lakehouse and shared data models | Databricks Free Edition (Unity Catalog, Delta), bronze/silver/gold, star schema | Architecture page, dbt docs |
| Pipelines from third-party APIs | Python ingestors for stats.wnba.com, stats.nba.com and ESPN, landing raw JSON in a volume | ingest/, run history page |
| Large datasets | Play-by-play and shot data for every game since 2018, incremental models, partitioning, Z-ordering | Performance notes, run timings |
| Validation, quality checks, alerts | dbt tests, basketball-logic checks, freshness, anomaly checks, alerts on failure | Public Data Health page |
| Reconciliation across sources | Stats API vs ESPN box scores per player-game, ID crosswalk, mismatch log | Reconciliation table on Data Health |
| Notebooks and dashboards on the same data | Databricks notebooks, Jupyter via SQL connector, Tableau Public, in-browser SQL console | Notebooks and Dashboards pages |
| Products for non-technical readers | Fantasy board, player scouting pages, weekly notes written for a coach or GM | The app itself |
| Documentation of pipelines and definitions | dbt docs site, data dictionary, runbook, ADRs | docs/ |
| Generative AI, kept honest | Deterministic numbers; an LLM only drafts notes from gold tables, schema-validated and cited | AI page, eval results |
| Tracking and event data | Play-by-play events, shot locations, tracking-derived stats where exposed | Shot charts, event models |
Built phase by phase; each phase ends with something live and a PR that passes CI. Current: phase 0, skeleton. See docs/architecture.md and .sdlc/state.md.
ingest/ Python ingestors, one module per source; CLI: fs-ingest
export/ gold -> Parquet/JSON -> R2, manifest, latest pointer
ops/ results recorder and publish gate (ops.test_results, ops.publish_gate)
dbt/ dbt project: models/bronze|silver|gold|ops, tests/ (quality checks), seeds/, macros/, sample/
ai/ notes generator, prompts, evals/
notebooks/ 01_board_backtest, 02_streamer_signals, 03_game_context, 04_data_quality, 05_shooting; replay.py
web/ Astro app
worker/ Cloudflare Worker + wrangler.toml
infra/ self-hosted runner for the jobs that need a residential address
bundles/ Databricks Asset Bundle: jobs, schedules, targets
dashboards/ Tableau extract script + publish README
docs/ adr/, runbook.md, architecture.md, data-dictionary.md (generated)
.github/ ci.yml, deploy-web.yml (ingest.yml, build.yml, notes.yml arrive with their phases)
uv sync --group dbt && uv run pytest # Python
cd dbt && DBT_PROFILES_DIR=. uv run dbt build --target duckdb # lakehouse models on the fixture sample
cd ..
cd web && npm ci && npm run build && npm test # Astro app and Playwright
cd ../worker && npm ci && npm test # Worker against the real build
Full details, including the Windows note about workerd, are in CONTRIBUTING.md.
The league stats API and ESPN's public JSON are unofficial. Requests are throttled hard, raw payloads are never redistributed, and only derived tables are published. Non-commercial use.