top of page

Create Your First Project

Start adding your projects to your portfolio. Click on "Manage Projects" to get started

NBA Shot Tracker

Project type

Real-time Data Analytics and Visualization

Project type

Data Analytics and Visualization

This project involved developing a custom Python script to extract player performance data from the official NBA Stats website. The collected data was organized within a Microsoft Access database and then imported into Power BI for visualization. A custom Python visual was built within Power BI to display each player’s made and missed shots throughout the NBA season, providing an interactive and data-driven view of player shooting performance.

Shot Tracker Report

This project represented a complete end-to-end workflow encompassing data extraction, transformation, dataset creation, and visualization. The process began with data extraction, where I used an agile, iterative “vibe coding” approach with ChatGPT to develop reusable Python scripts leveraging the nba_api package and structured JSON files. These scripts automated the retrieval and loading of the following datasets into corresponding tables within an Access database:

  • Schedule Data

  • Team Data

  • Player Data

  • Team Game Logs

  • Player Game Logs

  • Play-by-Play Data

  • Player Headshot Images

After extraction, I established entity relationships across the database using GameId, TeamId, and PlayerId as foreign keys to ensure referential integrity and analytical consistency.

With the relational model complete, the data was imported into Power BI for visualization and reporting. Finally, I developed a Python-based shot chart visual that dynamically displays player shooting performance, integrating seamlessly within the Power BI environment.

You can explore the report below, but please note that the Python visual isn’t supported for online sharing, so it may not render properly. Additionally, the dataset has been limited to the Charlotte Hornets to improve load times for end users.

Alternatively, I have included a brief video demonstrating the overall report functionality. Feel free to take a look! 

bottom of page