Skip to content

FIFA Player Analytics Dashboard is an interactive web application built with Streamlit that allows users to explore, visualize, and analyze FIFA 21 player data.

Notifications You must be signed in to change notification settings

superTay/FIFA-Player-Analytics-Dashboard-Interactive-Data-Visualization-with-Streamlit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Streamlit Plotly Scikit-learn Pandas Status License Platform

⚽ FIFA Player Analytics Dashboard

An interactive and modular Streamlit dashboard for exploring, visualizing, and predicting FIFA player statistics.
This project showcases advanced skills in data visualization, caching, state management, and AI model integration, following professional engineering standards and a clean modular architecture.


🌟 Overview

This dashboard allows users to:

  • Load and clean FIFA player data from local or remote sources.
  • Explore the dataset through interactive filters and Plotly visualizations.
  • Analyze trends in player performance, value, and potential.
  • Predict player potential using a pre-trained Machine Learning model.

Built with a focus on:

  • Modular Streamlit architecture
  • Optimized caching and session state management
  • Professional UI/UX principles
  • Deployment-ready structure

🧩 Project Structure

proyecto_fifa/ │ ├── app.py # Main Streamlit app controller │ ├── modules/ # Modularized page components │ ├── page_intro.py # Page 1 - Data loading & cleaning │ ├── page_data_viz.py # Page 2 - Data visualization & filters │ └── page_model_inference.py # Page 3 - Predictive model inference │ ├── assets/ │ ├── dataset_description.html # HTML dataset dictionary (from Kaggle) │ └── model_fifa.pkl # Pre-trained model (generated locally) │ ├── data/ │ └── players_21.csv # Local FIFA dataset │ ├── create_dummy_model.py # Script to train and save a regression model ├── requirements.txt # Dependencies for reproducibility └── README.md # Project documentation


⚙️ Installation & Setup

1️⃣ Clone the repository

git clone https://github.com/superTay/fifa-player-analytics.git cd fifa-player-analytics --- ## ⚙️ Installation & Setup ### 1️⃣ Clone the repository ```bash git clone https://github.com/superTay/fifa-player-analytics.git cd fifa-player-analytics  2️⃣ Install dependencies pip install -r requirements.txt  3️⃣ Generate the model (if not already created) python create_dummy_model.py  4️⃣ Run the Streamlit app streamlit run app.py  🧠 Architecture & Functionality  🏁 Page 1 — Introduction  Loads and cleans the dataset with @st.cache_data.  Displays sample data and metadata using st.expander.  Shows dataset dictionary embedded via HTML.  Initializes st.session_state['df'] for global access.  📊 Page 2 — Data Visualization  Includes interactive filters (multiselects, sliders).  Uses @st.cache_data for unique value caching.  Stores filtered DataFrame in st.session_state['df_fil'].  Generates responsive Plotly charts (scatter, histogram, box, bar).  Displays results dynamically based on user filters.  🤖 Page 3 — Predictive Model  Loads a pre-trained regression model (LinearRegression) via joblib.  Allows users to input player attributes (age, overall, value_eur, etc.).  Predicts future potential rating interactively.  Uses @st.cache_resource for efficient model loading.  💾 Caching & State Management  Purpose	Implementation Dataset caching	@st.cache_data Model caching	@st.cache_resource Session control	st.session_state['df'], st.session_state['df_fil'] Filtering	Persistent across interactions Performance	Optimized data loading and resource reuse  🎨 UI/UX Principles  Dark theme aesthetic for data visualization.  Clear visual hierarchy with emoji section titles.  Sidebar-based navigation for intuitive flow.  Use of st.expander, st.columns, and st.form for a clean layout.  Responsive design for desktop and wide-screen displays.  📈 Tech Stack  Area	Technology Frontend	Streamlit  Data	Pandas, NumPy Visualization	Plotly Express Machine Learning	Scikit-learn (Linear Regression) Model Handling	Joblib Deployment	Streamlit Cloud / Render / Docker-ready  🧮 Model Overview  A lightweight Linear Regression model trained with:  y ~ overall + age + value_eur   Predicts a player’s potential rating (potential).  Demonstrates clean separation between training (in create_dummy_model.py) and inference (in page_model_inference.py).  Cached and reusable for future sessions.  🚀 Future Enhancements  Replace dummy model with an advanced Random Forest or XGBoost.  Integrate real-time data via an API (e.g. sofifa.com).  Add KPIs (average overall, mean market value, etc.).  Extend the model for player clustering or similarity search.  Include authentication for personalized dashboards.  🧠 Key Learning Outcomes  This project demonstrates proficiency in:  🧩 Streamlit architecture design (multi-page modularization)  ⚙️ Session state & caching optimization  🎨 Data visualization and UI/UX  🧠 Model inference integration  🧾 Professional software documentation & Git version control  🧑‍💻 Author  Christian Marzal Della Rovere 🎓 Full Stack AI Developer (in progress) 🌐 LinkedIn  • GitHub  🏷️ GitHub Topics  #streamlit #data-visualization #machine-learning #fifa21 #dashboard #ai #python #fullstack  ⭐ If you find this project useful, consider giving it a star on GitHub — it helps others discover it and supports the project’s visibility!

About

FIFA Player Analytics Dashboard is an interactive web application built with Streamlit that allows users to explore, visualize, and analyze FIFA 21 player data.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published