This page is fully interactive - explore the timeline, architecture, and every section
Live · Personal Project

CourtVision

Full-stack NBA analytics. 78 years of history. Built in 3 days.

View Live Site
0
Pages
0
Components
0
Data Sources
$0/mo
Monthly Cost
THE STORY

One app instead of five browser tabs

I wanted a single place to check live NBA scores, compare players head-to-head, and dig into 78 years of stats without bouncing between ESPN, Basketball Reference, and three other tabs. Nothing like that existed in one app, so I built it in 3 days.

The platform covers every NBA team and player from the current season back to 1946. You can compare any two players head-to-head, explore shot charts, track clutch performance in close games, run fantasy projections, and follow live scores during the season. The Django backend aggregates data from multiple sources into a unified API that the Next.js frontend consumes through server components and SWR for real-time updates.

THE DASHBOARD

See it in action

CourtVision dashboard showing live NBA scores, standings, player stats, and 78 years of historical data
Live scores, standings, player stats, and 78 years of historical data
FEATURES

Eight features, one platform

Live Scores

Real-time scores with play-by-play updates

Player Comparisons

Head-to-head stats for any two players

Shot Charts

Visual shot distribution maps

Clutch Stats

Performance in high-pressure moments

Fantasy Rankings

Custom scoring projections

Team Analytics

Offensive/defensive ratings, pace, efficiency

Historical Data

Complete stats back to 1946-47 BAA season

Player Profiles

Career arcs, season logs, bio, transactions

THE BUILD

72 hours. Start to finish.

Day 1
Foundation
  • Django backend + data models
  • API integration layer (6 sources)
  • Database schema + initial data ingestion
  • Next.js scaffold with routing
Day 2
Features
  • Player comparison engine
  • Shot chart SVG renderer
  • Live scoreboard with SWR polling
  • Standings + team pages
  • Historical stats browser (1946-present)
Day 3
Polish & Ship
  • Fantasy rankings calculator
  • Clutch stats analyzer
  • Responsive design pass
  • SEO, OG images, deploy to Vercel
ARCHITECTURE

6 sources, 1 platform

Data Sources
NBA Official API
BallDontLie
ESPN
Basketball Reference
SportsData
Custom Scraper
Django REST API
Output
Next.js Frontend
Server Components + SWR
441+ Pages
Teams, players, games, seasons
Real-Time Data
SWR polling, live updates
$0/month
Vercel free tier
6 Data Sources
NBA Official API
BallDontLie
ESPN
Basketball Ref
SportsData
Custom Scraper
Django Backend + REST API
Data aggregation, caching, normalization
Next.js (Server Components + SWR)
441+ pages, real-time updates, $0/mo
BY THE NUMBERS

At a glance

0
Years of Data
$0/mo
Infrastructure
0
Player Profiles
0
NBA Teams
0
Feature Modules
0
Data Sources
TECH STACK

What it runs on

Frontend
Next.js 16 React 19 TypeScript Tailwind CSS SWR
Backend
Django DRF PostgreSQL
Data
6 Data Sources Custom ETL pandas
Infrastructure
Vercel free tier $0/mo

Let's talk about what I can do for you.

I'm exploring leadership roles where building the technology and running the business aren't treated as separate jobs.

Start a Conversation → View on LinkedIn