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:
pip install nflfan
Note that nflfan requires a running instance of nfldb. Since this means
setting up and importing a PostgreSQL database, we have some installation
instructions here.
Once nflfan is installed, you'll want to configure it. Here is a sample
config
file with
documentation. (Configuration will need to be fleshed out more.)
After nflfan is installed, a script called nflfan-update will be available.
This should update you fantasy rosters as configured in config.toml.
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.)
I'm not much of a frontend guy, so the Javascript is a bit of a mess and undocumented. However, considering the power of the UI, I think there is surprisingly little of it. (Kudos to Knockout for that one, I think.)