Zoe Olson, Kyle Holmberg, and Ryan Collier set out a goal to learn about data collection, analyzation, and visualization.
We chose the English Premier League as our source of data, with an emphasis on improving Fantasy Premier League scores.
https://www.cs.uoregon.edu/Classes/16F/cis451/final.html
FPL Player API Endpoints (1 to a variable number around 656)
Asynchronous HTTP Requests in Python 3.5+
Making 1 million requests with python-aiohttp
Please install Virtual Environments.
Webscraper
- Clone repository.
- Open terminal within repo/webscraper/
- Create and activate your virtual environment.
$ pip3 install -r requirements.txt
$ python3 fpl_csv_converter.py
Flask App
- Install Homebrew
- Open terminal and use
$ brew install mysql
- Clone repository.
- Change directories in terminal to repo/
$ mysql -u <username> -p <password> <database name> < create_fpl_models.sql
$ cd app
- (Temporary) Edit line 23 of entry.wsgi.py to local MySQL DB location.
- Create and activate your virtual environment.
$ pip3 install -r requirements.txt
$ python3 entry.wsgi.py
To view our Jupyter Notebook, click HERE
├── LICENSE
├── README.md
├── app
│ ├── entry.wsgi.py
│ ├── requirements.txt
│ ├── static
│ └── templates
├── create_fpl_model.sql
├── docs
│ ├── CIS407_Retrospective.pdf
│ ├── CIS451_Final_Report.pdf
│ ├── Retrospective.pdf
│ └── create_fpl_model.sql
├── jupyter_notebook
│ ├── Jupyter_viz.ipynb
│ ├── README.md
│ └── jupyter_viz_files
├── mysql_dump.sql
└── webscraper
├── CurrentSeasonStats.csv
├── History.csv
├── Managers.csv
├── Player.csv
├── PlayerResultStats.csv
├── Result.csv
├── Teams.csv
├── TotalPastStats.csv
├── fpl_csv_converter.py
└── requirements.txt
- Statistical Analysis with Visuals: Jupyter Notebook utilizing pandas and matplotlib
- Data Collection: Python Web Scraper that converts API endpoint JSON into a MySQL Database
- Interactive Data Visualization(s): d3.js, matplotlib, pandas, and Flask
- Webscraper Refactor
- Flask App Redesign (planned 2017-2018 season release)
- Create an automated Fantasy Manager
MIT © Kyle Holmberg