REST API for NBA ELT Project

Tests Deployment Coverage Status Code Style

Version: 1.8.9

About the Project

The REST API has the following functionalities:

  • Serves Data built from the NBA ELT Pipeline through various GET endpoints
  • Hosts a user-facing Frontend that Allows people to login & make NBA Game Win Predictions and Betting
  • Hosts an Internal Admin Frontend w/ various pages to manage things like Feature Flags and other functionality used throughout the project

The Project uses:

  • A Postgres Database for the backend
  • A Redis Database to enable caching across various endpoints to improve performance
  • JWT for Authentication and Authorization

The Project was hosted on an AWS Lambda Function URL for cost-savings compared to ECS or EKS, but is no longer running on AWS as of August 2024.

Running The App

Clone the Repo & run make up which spins up the App locally served here using 3 Docker Containers:

  • Postgres Database
  • Redis Database
  • FastAPI Server

To Login to the App locally, a set of Credentials for an Admin User are listed below:

  • Username: test1
  • Password: password

When finished run make down to spin resources down.

Tests

To run tests locally, run make test.

The same Test Suite is ran after every commit on a PR via GitHub Actions.

Project

nba_pipeline_diagram

  1. Links to other Repos providing infrastructure for this Project