RyanLynchUF / auction-aid

MIT License
1 stars 0 forks source link

alt text

Auction AId

Welcome to Auction AId! A Fantasy Football auction draft tool designed to use your league's data to identify where you can find value during your next auction draft. The tool currently only supports leagues using ESPN for their Fantasy Football league using the API from cwendt94/espn-api.

If you'd like to learn more about how Auction AId works under the hood, read this blog post.

Please free to make suggestions, bug reports, or pull requests for features or fixes! If you enjoyed using Auction AId, feed my caffeine addiction.

Buy Me A Coffee

Key Features

Prerequisites

Currently, Auction AId is in a basic Beta version. In the future, it may be hosted online for easy access, but this version requires running the application on your local computer. This requires some basic knowledge of Python, React, and running applications through an IDE or terminal. My personal preference is using the Visual Studio IDE, so these instructions are from that perspective.

Installation

  1. Download the current code base from this GitHub repository and save to your preferred location on your local computer
  2. Open the auction-aid-master repository in the IDE (or navigate to the location in the terminal)

Install Backend - Python and Packages

  1. Install the latest version of Python
  2. Create and activate Python virtual environment
  3. Install the required packages from requirements.txt
pip install -r /path/to/requirements.txt

Install Frontend - Node.js and npm for React

  1. Install Node.js and node package manager (npm) using instructions here

Configuration

Auction AId allows for storing data locally or on AWS S3. If you'd like to save data to S3, the following updates must be made:

Create and Configure S3 Bucket and AWS IAM User

  1. Create an AWS S3 bucket
  2. Create a User in AWS IAM
  3. Assign the following S3 IAM Policy to the user. Update details to your bucket name.
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::your-bucket-name/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::your-bucket-name"
            ]
        }
    ]
}
  1. Create AWS Access Keys for the User

Update Auction AId Configuration Files

  1. Update the settings.py file location in the backend/config folder:
# backend/config/settings.py
CURR_LEAGUE_YR = 2024
S3 = True # Update to True if running on S3
  1. Create a file titled .env in the auction-aid-master folder
  2. Populate the .env file with your S3 bucket details:
AWS_ACCESS_KEY_ID=your-S3-user-access-key
AWS_SECRET_ACCESS_KEY=your-S3-user-secret-access-key
AWS_S3_BUCKET_NAME_LEAGUE=your-bucket-name

Run Auction AId

  1. Open a terminal in the IDE or on the computer. Navigate to the frontend folder of the auction-aid repository; if you're currently in the auction-aid folder:
cd frontend
  1. Start the frontend web application
npm start
  1. Open an additional terminal in the IDE or on the computer. Navigate to the backend folder of the auction-aid-master repository; if you're currently in the auction-aid folder:
cd backend
  1. Run the backend of the application
python3 main.py

A successful result will show a message like the below:

alt text

The application is now running!

Generate Auction AId

  1. Login to your league. If you are in an ESPN Private League, you can find your ESPN_S2 and SWID values manually or using a Google Chrome extension. See details here.
  2. Pick your 'League Settings' and 'Auction AId Settings'. The details for these settings are available by hovering over the info icon. More details can be found on the blog post here.
  3. Click 'Generate Auction Values (AV)'! Be patient :) if there is a lot of league history this may take some time!

Troubleshooting / FAQ

This section will be updated as questions become asked frequently!

1.) What is Expected Auction Value (EAV) vs. True Auction Value (TAV)? EAV is what Auction AId expects your league to pay for a player based on draft history. TAV is what Auction AId believes a player is worth based on their past performances. To learn more, read here.

Acknowledgements

This project is possible thanks to: