How jaeke131/nba-pipeline works
This repository is an in-progress NBA player-game-log ETL project. Its implemented extraction workflow requests regular-season logs from the NBA Stats API and saves timestamped raw JSON; transformation and database loading are not yet wired into that workflow. The transform module contains schema, type, and duplicate checks, while table creation executes the PostgreSQL schema. API and dashboard capabilities are planned, not implemented. The graph reflects documented plans separately; no orchestration between extraction, transformation, and loading is evidenced in the sampled source.
Main entry points: create_tables.py Table creation · extract_player_game_logs.py Game-log extractor · connection.py Database connection · app Planned API
Components 11
Data acquisition
- Game-log extractor
etl/app/extract/extract_player_game_logs.py - Raw JSON files
etl/app/data/raw
Data preparation
- Schema and type transform
etl/app/transform/transform_player_game_logs.py
PostgreSQL storage
- Table creation
etl/app/load/create_tables.py - Database connection
etl/app/db/connection.py - Fact-table schema
etl/app/db/schema.sql - PostgreSQL
Planned analytics
- Planned API
etl/app - Planned React dashboard
etl/app
Other components
- Pipeline operator
- NBA Stats API
Connections 9
- Pipeline operator → Game-log extractor: runs
- Game-log extractor → NBA Stats API: requests logs
- Game-log extractor → Raw JSON files: writes JSON
- Table creation → Database connection: uses engine
- Table creation → Fact-table schema: reads SQL
- Table creation → PostgreSQL: executes schema
- Database connection → PostgreSQL: connects
- PostgreSQL → Planned API: serves modeled data
- Planned API → Planned React dashboard: serves analytics