Skip to content

kzyx/tournament_app

Repository files navigation

tournament_app

A Flutter app that allows you to look at historical NHL Playoff data, including game stats, highlights, etc.

Work on this project began on Sept 8, 2021.
Page last updated Oct 21, 2021

Demo

See game-specific data See round-by-round progression


Features

  • User can browse playoff seasons 2009-2010 through 2018-2019
  • User can toggle the visibility of the different rounds (anywhere between 1 and all of the rounds visible)
  • For each playoff series, user can see all games, and game stats such as goals scored, shots on goal, and save percentage
  • When available, user can see extended highlights of each game in a series (not available for seasons 2013-2014 and earlier, as the NHL API was missing this data)
  • Fast loading speeds, as all playoff data, game data, and video links are saved on the actual device (preprocessed from NHL API and stored in a compact JSON)
  • Sleek material UI design

Design summary

The initial version of this app queried the statsapi.web.nhl.com API in order to retrieve playoff data for the desired season. There was about a ~2 second delay in loading a different playoff season. I wanted to query game data as well, but found that loading the desired data using queries would take several extra seconds (loading 7 games in a single series is tens of megabytes, as the server returns too much data and at least two different queries are needed to obtain game stats and highlights). I created a Python script that queries the NHL API and generates a JSON object with all the relevant information pre-loaded (game data including links to extended highlight videos, playoff data, etc). Generating this JSON takes about a minute per season. Then, this JSON is used by the app to display relevant playoff bracket data.

Detailed information about the design is available in docs/ARCHITECTURE.md.


Installation

To download on Android, simply check out the current release. Alternatively (this is actually the only choice for iOS), simply download the repo, and install Flutter if you don't already have it installed. Run flutter run in cmd/terminal, and you should be good to go!


Libraries/Tools used

  • Chewie for displaying the extended video highlights
  • GraphView for displaying the playoff bracket tree

About

A Flutter app that allows you to look at historical NHL Playoffs

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors