Skip to content

georgstsc/Dateam

 
 

Repository files navigation

How Do Player Transfers Affect Football Team Performance? ⚽️📊✨

DaTeam Group

  • Georg Schwabedal — 328434
  • Mathurin Chritin — 288065
  • Amene Gafsi — 345583

Course: COM-480 - Data Visualization
Instructor: Prof. Laurent Gilles Marie Vuillon

Date: 30 May 2025


1 Introduction 🏟️

Football transcends sport, uniting fans, analysts, and professionals through its blend of competition and strategy. Our project transforms this passion into an interactive data visualization platform exploring the relationships between match performance, player transfers, and financial strategies in European football from 2008 to 2016.

The platform is a map-based interface that allows users to navigate club histories through match outcomes (wins, losses, draws) and transfer networks. We integrate two comprehensive datasets: match statistics (2008–2016) and player transfers (2000–2018). Clubs are geolocated on a zoomable European map, transfer flows are visualized as connecting lines, and team details appear in dynamic side panels.

Our target audiences are football fans, data analysts, and scouts/managers. We balance statistical depth with an intuitive UI to inform and spark discussions about football’s modern evolution. ⚡️


2 Work Structure 🧭

Guided by course milestones, the team followed a steady collaborative workflow. We started by selecting datasets, building preprocessing scripts, and producing an MVP website. Work was modularized to allow concurrent development and regular integration checks.

Key project pages and components were prototyped early; the MVP helped to refine visual choices (color palettes, layout, single vs multi-page) and prioritize features.


3 Technical Challenges & Implementations 🛠️

The project was divided into major components. Below we summarize each, who implemented it, and the main technical considerations.

3.1 Data Loading and Processing Pipeline

Implemented by: Amene & Mathurin

  • Converted a ~29,000-match SQLite database and transfer records into browser-friendly JSON/CSV files.
  • Standardized club names (mapping tables), filtered top-tier clubs (2008–2016), and precomputed per-season metrics for frontend performance.
  • Tools: Python, SQL, Jupyter notebooks.

Limitations: Manual name corrections and static preprocessing (updates beyond 2016 require rerunning pipeline). ⚠️

3.2 Team Logo Integration

Implemented by: Georg

  • Optimized logo file paths, preloading, and used logos as custom Leaflet markers and in the sidebar.
  • Created a mapping dictionary to standardize names and link logos; fallbacks used for missing logos.

Limitations: Incomplete coverage for smaller clubs; manual maintenance required. 🖼️

3.3 Introduction Page

Implemented by: Amene & Mathurin

  • Landing page that summarizes the project and guides users to explore the map and team views.
  • Includes a global year selector that filters visuals across the site.

3.4 Interactive Map

Implemented by: Georg

  • Leaflet-based map with custom logo markers, marker clustering, and polylines for transfers (D3 used for SVG paths occasionally).
  • Addressed overlapping markers with offsets and clustering; synchronized map and sidebar selections.

Limitations: Visual clutter at wide zoom levels; some planned filters not implemented. 🗺️

3.5 Side Panel Interface

Implemented by: Georg & Amene

  • Dynamic dashboard showing team name, logo, win/draw/loss charts, and transfer stats.
  • Implemented with D3 charts, HTML/CSS panels and JavaScript event handlers.

3.6 Team List Panel

Implemented by: Amene & Georg

  • Scrollable team list with search bar for direct selection; linked to standardized team IDs for synchronization.

Limitations: Search relies on exact matches; fuzzy search not implemented.

3.7 Team Performance Visualizations

Implemented by: Amene

  • D3.js charts showing season-by-season wins/draws/losses (2008–2016); interactive and responsive to year selector.
  • Precomputed stats used to avoid heavy client-side processing.

3.8 Transfer Visualizations

Implemented by: Mathurin

  • Visualized incoming/outgoing transfers as lines between clubs; encoding direction and volume with color and thickness.
  • Filters applied dynamically to avoid overloading the interface.

3.9 Use of D3.js and Leaflet.js

Implemented by: Mathurin, Amene & Georg

  • Combined Leaflet for maps and D3 for charts and SVG overlays; aligned D3 elements with Leaflet projections.

4 Conclusion ✅

We created an interactive platform to explore club performance and transfer activity across Europe. While some advanced features remain (multi-team comparisons, advanced filters), the project demonstrates a robust data pipeline and an engaging map-driven UI.

We thank Professor Laurent Vuillon and the course staff for guidance and EPFL for supporting the course. 💙


5 References 📚


Environment & Run locally ☁️🔧

If you want to run the website on your local machine, follow these steps:

  1. 📥 Clone the repository
git clone https://github.com/com-480-data-visualization/Dateam.git

Tip: if you want to work from your fork, clone https://github.com/georgstsc/Dateam.git instead.

  1. 📂 Navigate to the web directory
cd Dateam/web
  1. ▶️ Install dependencies & build
npm i
npm run build
  1. ▶️ Start the development server
npm run start
  1. 🌍 Open the website in your browser
    Once the server is running, open your browser and go to:
    http://localhost:8081

Notes & troubleshooting

  • Ensure you have Node.js (LTS) and npm installed. Check with node -v and npm -v.
  • If ports conflict, update the port used by the dev server or stop the process using the port.
  • If npm i fails with permission errors on Unix systems, prefer using a node version manager (nvm) or run with a local project install (avoid global installs).
  • To work on frontend code and see live reloads, consult the web folder scripts — some projects provide npm run dev for live hot-reload.

Acknowledgements 🙏❤️

We gratefully acknowledge everyone who contributed to this project:

  • Georg Schwabedal (student lead)
  • Mathurin Chritin
  • Amene Gafsi
  • Professor Laurent Gilles Marie Vuillon (COM‑480 instructor)
  • All COM‑480 course staff and teaching assistants
  • EPFL for supporting the course

About

Data Visualization Project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 97.2%
  • Jupyter Notebook 2.5%
  • Other 0.3%