ShotGeek is a Django web application that provides NBA stats, scores, and player comparisons. Whether you're a casual fan or a stats enthusiast, ShotGeek helps you explore player performance and compare careers with detailed tables and visualizations.
- Player Search: Look up any NBA player by full name to access their career statistics.
- Career Stat Totals: View detailed career stats for individual players.
- Graphical Analysis: Use interactive graphs to visualize player performance over time.
- Player Comparison: Compare two players' career stats side by side.
- Customizable Views: Select stat categories for table and graph comparisons.
Ensure you have the following installed on your system:
- Python 3.10
- Django
- PostgreSQL
For setup without installing dependencies locally, you can use Docker Compose:
- Install Docker and Docker Compose on your system
- Run the application:
docker compose up --build
- In a new terminal, run migrations:
docker compose exec web python manage.py migrate - Open your browser and visit:
http://127.0.0.1:8000/
The Docker Compose setup includes live reloading, so changes to your code will automatically refresh the application.
- Clone the repository:
git clone https://github.com/ShotGeek/ShotGeek.git cd shotgeek - Create and activate a virtual environment:
python3.10 -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
- Install dependencies:
pip install -r requirements.txt
- Uncomment DEVELOPMENT=True in .env:
# .env SECRET_KEY='django-insecure-enfgxe59+e1kt+c#unqrutb9y#_0)+aht&+@5@^r@pupks1wt8' DEVELOPMENT=True
- Set up the database:
python manage.py migrate
- Run the development server:
python manage.py runserver
- Open your browser and visit:
http://127.0.0.1:8000/
When running the application locally team logos won't be displayed by default. Insert them with:
python manage.py insert_teams- Enter the player's full name in the search bar.
- Ensure correct spelling to avoid incorrect results.
- Example: Searching for
Charles Barkleywill take you to his player page.
- Click the Compare Players button to access the comparison tool.
- Enter the full name of two players to compare their stats side by side.
- Select specific stat categories for in-depth analysis.
- Navigate to a player's page or the comparison page.
- Use the dropdown menu to select a stat category.
- The graph will display trends over the player's career.
We welcome contributions from the open-source community. If you find any issues or want to suggest enhancements, feel free to create a pull request or submit an issue. For more information on contributing visit Contributing
ShotGeek is licensed under the Apache License 2.0.