NFLfan is a web application that provides a user interface for searching NFL data (back to 2009), collecting all of your fantasy teams into one place for live scoring updates and watching video of any play available on your system.
These features are a culmination of the following projects:
- nflgame - Retrieve statistics from NFL's JSON feed. This reverse engineers the JSON feed into easily searchable statistics and caches JSON game data to disk.
- nfldb - Stores statistics from
nflgamein a relational PostgreSQL database. This provides a convenient and programmatic querying interface and also meets the performance requirements for a simple web application.
- nflvid - A rough-around-the-edges command line tool to download broadcast footage from publicly available sources and slice that footage into play-by-play segments.
This README is pretty sparse at the moment. It will be fleshed out a bit more before the season starts.
Coming soon. (This will be a video since I cannot provide a public web service that distributed NFL broadcast footage.)
I will also provide a real demo that lacks NFL broadcast footage.
nflfan can be installed with
pip install nflfan
nflfan requires a running instance of
nfldb. Since this means
setting up and importing a PostgreSQL database, we have some installation
nflfan is installed, you'll want to configure it. Here is a sample
documentation. (Configuration will need to be fleshed out more.)
Loading fantasy teams
nflfan is installed, a script called
nflfan-update will be available.
This should update you fantasy rosters as configured in
This script looks pretty broken right now. I will fix it shortly before the regular season starts.
Including all of the other
nfl* projects, the following tech is used:
- Python as the main backend programming language.
- PostgreSQL for the database.
- RequireJS, jQuery, Bootstrap and Knockout for the frontend.
- Bottle for the web framework. (Web server is customizable, but I prefer
bjoern for deployment. For local
single user mode, the default
wsgirefdevelopment server is quite suitable.)
- Something resembling a REST interface is exposed in the
nflfan.webmodule, but it needs some love and documentation. (I am skeptical that a full REST interface is warranted.)