Dashdribble is a football data platform designed to track leagues, teams, and standings from top European leagues.
Empowering fans and analysts with comprehensive football data and insights. Our platform delivers in-depth analysis and advanced modeling, making football analytics accessible to all.
Before setting up this project, ensure you have the following tools installed:
- Python 3.12+
- SQLite (for local database management)
- Git
First, clone the repository to your local machine.
git clone https://github.com/Shivam9701/DashDribble
cd dashdribbleThis project uses uv for dependency management. If you haven't installed uv yet, follow the official installation guide.
Install dependencies using:
uv installIf you prefer pip, install dependencies via:
pip install -r requirements.txt-
Configuration: Set your database path in the
.envfile located in thedb/folder. The path should point to your SQLite database.Example
.envfile:DB_PATH=path/to/dashdribble.db
-
Create Database Schema: Run the
db_*scripts to create the database and tables:python db/scripts/db_*.py
-
Inserting Leagues Data: Data for the top leagues is stored as JSON files in
data/historical_winners/folder. Run the script to insert this data into theleague_teamstable:python db/scripts/main.py insert_leagues
-
Inserting Team Data: Data for current teams and standings is stored in
data/current_league_teams/folder. Run the script to insert this data intoleague_teamsandcurrent_standingstables:python db/scripts/main.py insert_teams
The project uses an SQLite database with the following tables:
- id (Primary Key): Unique identifier for each league.
- name: Name of the league.
- code: Short code for the league (e.g., "PL").
- emblem: URL to the league's emblem.
- current_season_id: ID of the current season (reference from a separate table).
- current_matchday: The current matchday in the league.
- id (Primary Key): Unique team identifier.
- league_id (Foreign Key): References
idinleagues. - team_id: Unique identifier for the team.
- name: Full name of the team.
- short_name: Short name of the team.
- tla: Three-letter abbreviation of the team.
- crest: URL to the team's crest.
- league_id (Foreign Key): References
idinleagues. - team_id (Foreign Key): References
team_idinleague_teams. - position: Current position of the team in the standings.
- played_games: Number of games played by the team.
- won: Number of games won by the team.
- draw: Number of games drawn by the team.
- lost: Number of games lost by the team.
- points: Current points of the team.
- goals_for: Goals scored by the team.
- goals_against: Goals conceded by the team.
- goal_difference: Difference between goals scored and conceded.
We welcome contributions! If you have any suggestions, fixes, or improvements:
- Fork the repository.
- Create a feature branch (
git checkout -b feature-name). - Commit your changes (
git commit -m 'Add new feature'). - Push to your branch (
git push origin feature-name). - Create a pull request.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Let me know if you'd like any further changes!