Advanced sports match crawler and analytics platform designed to track and analyze championships and match results, providing comprehensive statistics about past events.
You can download and use it right away
- backend directory contains following:
- tests directory : testing the crawler and crawl_championship functions functionality
- Analyze.py and Analyzer.py: deep analizing of certain matches
- Crawler.py : retrieving all the championship links for a certain sport using selenium for crawling the data and store them in a database using sqlalchemy
- Crawl_championship: crawling all the matches for a specific championship
- config.ini: contains the database credentials in order to store the matches data
- Drive_backup.py: google drive backup for matches.csv file to store it
- frontend directory contains folowing: -fastapi_setup directory: fastapi initialization for react application -sports-app directory: react application setup
- pyproject.toml: contain dependencies versions, project beeing managed with uv
- uv.lock: uv generated lockfile
1.Download the project as mentioned earlier
2.Install uv if not installed
pip install uv3.Setup the uv venv and sync the dependencies from the .toml file
uv venv
.venv\Scripts\activate
uv sync4.Add your personal database crrdentials in the config.ini
5.Run the Crawler.py to crawl the championships and store in the database
uv run Crawler.py6.Run fastapi (from its directory)
uvicorn main:app --reload7.Start the react application (from its directory)
npm start8.Fetch the leagues in the react interface by inputing the sport and the country
- Analyze.py and Analyzer.py are not ready for use yet
- Crawler.py works only for basketball for now
- React application only outputs the leagues for a specific country, not an analyze for a specific championship, will be fixed in next versions
- Drive_backup.py is outdated and needs to be improved