PlayVision
Basketball stat tracking and analytics app
Offline-first iPad app built with EmberJS and Cordova, deployed to the iOS App Store. PlayVision enabled coaching staff to track basketball statistics in real-time during games — shots made/missed, shot locations, plays and audibles being run, turnovers, fouls, and defensive formations. Data stored locally via PouchDB and synced to CouchDB, then compiled into downloadable PDF reports with single-game and season comparisons.
Lead Developer
Jan 2016 - Jan 2023
Solo
iOS App Store
PlayVision
Mobile App
Key Features
Real-Time Game Tracking
Track shots, locations, players, plays, audibles, turnovers, and fouls as the game unfolds
Shot Charts
Visual court-mapped shot charts showing makes and misses with scalable canvas rendering
Play & Audible Tracking
Record offensive plays and audible variations with effectiveness metrics per play type
PDF Reports
Generate downloadable PDF reports with stats broken down by player, play, quarter, and game
Season Analytics
Aggregate stats across games with averages, totals, and trend analysis over seasons
Offline-First Sync
PouchDB local storage with CouchDB cloud sync — fully functional without internet
Overview
PlayVision was a basketball statistics tracking application designed for use by coaching staff on iPads during live games. Over seven years of active development and use, it transformed how teams collected and analyzed offensive performance data — helping coaches discover which plays and strategies were most effective.
The Problem
Traditional basketball stat tracking involves:
- Paper-based recording that’s slow and error-prone
- Post-game data entry before analysis can begin
- Limited ability to track shot locations and correlate them with specific plays
- No easy way to compare performance across games or seasons
- Gym environments with unreliable internet connectivity
Solution
PlayVision provided an offline-first iPad app optimized for sideline use:
Real-Time Game Tracking
Coaches could quickly tap to record during live gameplay:
- Shots: Made or missed, including 2-point, 3-point, and putbacks
- Location: Tap position on a rendered court graphic, with flippable orientation
- Player: Select from a managed roster with jersey numbers, positions, and years
- Play: Which offensive play was being run (half-court, baseline, sideline, full-court)
- Audibles: Track play variations and adjustments called on the fly
- Defense: Record the opponent’s defensive formation (man-to-man, 2-3, 3-2, zone)
- Other: Turnovers, fouls, and assists
Playbook & Team Management
- Create and manage a digital playbook of offensive plays with type classifications
- Tag plays with custom icons for quick identification (hourglass, eye, star, horn)
- Manage multiple teams with full roster control
- Clone plays and rosters between teams
- Configure game format (halves vs. quarters)
Downloadable PDF Reports
After each game, PlayVision compiled data into downloadable PDF reports (via jsPDF) showing:
- Individual player shooting percentages (2pt, 3pt, overall)
- Visual shot charts with court-mapped locations rendered via canvas
- Play effectiveness analysis with per-play and per-audible breakdowns
- Stats filterable by quarter/half, game, or full season
- Comparisons to season averages and totals
Long-Term Analytics
Over seven years of use, the app accumulated data that enabled:
- All-time performance tracking across seasons
- Trend identification and regression analysis
- Data-driven coaching decisions backed by real numbers
Technical Approach
Built with EmberJS (Octane edition) using a pods-based architecture and deployed via Apache Cordova to the iOS App Store. The app ran in landscape orientation on iPads using WKWebView.
- Offline-First: All data stored locally in IndexedDB via PouchDB, with background sync to a CouchDB backend every 60 seconds when connected. Fully functional without internet — critical for gym environments
- Speed: Large tap targets and minimal UI for fast-paced game situations. jQuery UI Touch Punch and Hammer.js for gesture support
- Sync: PouchDB replication with batch sync (100 documents per batch) to per-user CouchDB databases, with real-time sync status monitoring
- Reports: Canvas-rendered shot charts exported to PDF via canvg and jsPDF, opened with Cordova file plugins
- CI/CD: Jenkins pipeline for automated iOS builds with TestFlight deployment, build number injection, and keychain-based code signing
- Styling: Bootstrap 3 with Sass and Liquid Fire for animated route transitions
Results
PlayVision served coaching staffs for seven years, providing actionable insights that helped teams understand their offensive patterns, identify their most effective plays, and make data-driven improvements to their game strategy.