tree -L 2 -I 'venv|__pycache__|*.pyc|node_modules|*.egg-info|dist|build'
.
├── Dockerfile
├── README.md
├── add_season_to_teams.py
├── artifacts
│ ├── predicted_team_2024-08-14.csv
│ ├── predicted_team_2024-08-16.csv
│ └── predicted_team_2024-08-24.csv
├── data
│ ├── gameweeks
│ └── teams
├── fpl_data_modeling.drawio
├── fpl_data_modeling.png
├── inital_prediction.ipynb
├── logs
├── manual_upload_to_minio.py
├── requirements.txt
├── src
│ ├── __init__.py
│ ├── components
│ ├── etl
│ ├── exception.py
│ ├── fastapi
│ ├── logger.py
│ ├── ml_pipeline
│ ├── streamlit
│ └── utils.py
└── tests
├── test_api.py
├── test_data
├── test_data_ingestion.py
├── test_data_ingestion_fixtures.py
├── test_data_ingestion_gameweeks.py
├── test_placeholder.py
├── test_streamlit_app.py
└── test_streamlit_utils.py
DO NOT REMOVE ANY COMMENTS OR DOCSTRINGS FROM THE CODE.
Fantasy Premier League (FPL) analytics and prediction system. Let me break down the key architectural components:
1. Core Components
src/ contains the main application code organized into several key modules:
etl/: Extract, Transform, Load pipelines for FPL data
ml_pipeline/: Machine learning models and prediction logic
components/: Reusable components across the application
fastapi/: API endpoints for serving predictions
streamlit/: Web interface for visualization and interaction
Data Management
data/
gameweeks/: Likely contains historical match data per gameweek
teams/: Team-specific data and statistics
artifacts/: Stores model outputs and predictions
Contains CSV files with predicted team compositions for specific dates
Infrastructure
Dockerfile: Containerization configuration
manual_upload_to_minio.py: Suggests cloud storage integration with MinIO
requirements.txt: Python dependencies
Testing
tests/ directory with separate test files for:
API testing (test_api.py)
Streamlit interface (test_streamlit_app.py, test_streamlit_utils.py)
Documentation & Design
fpl_data_modeling.drawio and .png: Data model documentation
README.md: Project documentation
6. Utilities
exception.py: Custom exception handling
logger.py: Logging configuration
utils.py: Shared utility functions
Architecture Pattern:
Follows a modular architecture with clear separation of concerns
Multi-interface system (API + Web UI)
Data pipeline architecture for ETL processes
ML model training and prediction pipeline
Containerized deployment ready
Key Workflows:
1. Data Collection & Processing:
ETL processes fetch and process FPL data
Data stored in structured format in data/ directory
Prediction Pipeline:
ML models process the data
Generates predictions stored in artifacts/
User Interfaces:
FastAPI backend serving predictions
Streamlit frontend for visualization
Both interfaces likely share common components
Deployment:
Containerized application (Docker)
Cloud storage integration (MinIO)
Logging and error handling infrastructure
analytics
docker
dockerfile
fastapi
jupyter notebook
python
First Time Repository
Jupyter Notebook
Languages:
Dockerfile: 0.6KB
Jupyter Notebook: 364.8KB
Python: 109.3KB
Created: 8/11/2024
Updated: 1/18/2025