Skip to content
Humble-LibrarianPublic

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

Β 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

xScout Logo

⚽ xScout Dashboard v2.0

Advanced Football Scouting Analytics & Player Profiling Platform

Transform Raw Data Into Tactical Insights.
Analyze player performance β†’ Compare tactical profiles β†’ Identify role fits β†’ Discover similar talents using advanced statistical modeling and interactive visualizations.


πŸ“Έ Screenshots

Player Overview Player Comparison Role Analysis
Attribute breakdown + radar profiling Head-to-head metrics + difference analysis Role suitability scoring
Overview Comparison Role Fit

✨ Features

🎯 Core Intelligence

  • Multi-Dimensional Player Profiling β€” Combines 11 key performance metrics across attacking, creative, defensive, and physical dimensions for comprehensive evaluation.
  • Role-Based Analysis β€” Evaluate players against 7 predefined tactical roles (Poacher, Target Man, Winger, etc.) with weighted scoring algorithms.
  • Euclidean Similarity Engine β€” Find statistically similar players based on performance vector distances across all metrics.

πŸ”¬ Advanced Visualizations

  • Interactive Radar Charts β€” Spider diagrams showing player strengths across 6 composite categories with dynamic coloring.
  • Positional Heatmaps β€” Algorithmic mockups of player activity patterns with intensity-based clustering visualization.
  • Passing Network Graphs β€” Animated connection diagrams showing pass distribution and frequency patterns.
  • Attribute Breakdown Charts β€” Bar graphs with color-coded performance tiers and professional styling.

πŸš€ Scouting Workflow

  • Global Filtering System β€” Filter by gender, competition, season, and country to narrow down player pools.
  • Real-Time Comparison β€” Side-by-side player analysis with visual difference highlighting.
  • Performance Trending β€” Track metrics over time with normalized per-90 minute calculations.
  • Export-Ready Reports β€” Generate printable scouting reports with visual evidence and statistical breakdowns.

πŸ–₯️ Premium Dashboard

  • Modern Dark Theme β€” Professional UI with glass-morphism effects and consistent color palette.
  • Responsive Design β€” Adapts to different screen sizes with mobile-friendly layouts.
  • Smooth Animations β€” Cascading transitions and micro-interactions for premium user experience.
  • Cross-Browser Compatibility β€” Works seamlessly across Chrome, Firefox, Safari, and Edge.

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    HTML5 Frontend                       β”‚
β”‚              (dashboard/index.html β€” UI)                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                      β”‚ DOM Events & State Management
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   JavaScript Engine                     β”‚
β”‚                (dashboard/app.js β€” Logic)               β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                Visualization Layer                      β”‚
β”‚        D3.js Charts + Google Charts Integration         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                    Data Pipeline                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚ Data Fetch   β”‚ β”‚ Processing   β”‚ β”‚ Normalization    β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚ Role Scoring β”‚ β”‚ Similarity   β”‚ β”‚ Filtering        β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                     Data Layer                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚ players.json     β”‚  β”‚ Cache System                β”‚  β”‚
β”‚  β”‚ (1.9MB)          β”‚  β”‚ (Individual Player Files)   β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Tech Stack

Layer Technology
Frontend UI HTML5, CSS3 (Custom Properties), JavaScript ES6+
Data Visualization D3.js (Radar Charts, Heatmaps), Google Charts (Bar Graphs)
State Management Vanilla JavaScript with Global Variables
Data Processing Python 3, pandas, statsbombpy
Data Source StatsBomb Open Data API
Styling Framework Custom CSS with DM Sans/DM Mono Fonts
Deployment Static File Server (Python http.server)

πŸ“ Project Structure

xScout/
β”œβ”€β”€ dashboard/
β”‚   β”œβ”€β”€ index.html        # Main dashboard application
β”‚   β”œβ”€β”€ app.js           # Core application logic & visualizations
β”‚   └── style.css        # Custom styling & responsive design
β”‚
β”œβ”€β”€ data/
β”‚   β”œβ”€β”€ players.json     # Processed player statistics (1.9MB)
β”‚   └── cache/           # Individual player data files
β”‚       └── {player_id}_{season}.json
β”‚
β”œβ”€β”€ scripts/
β”‚   └── pipeline.py      # Data processing pipeline
β”‚
β”œβ”€β”€ requirements.txt     # Python dependencies
β”œβ”€β”€ README.md           # Project documentation
└── xScout_PRD.docx     # Product requirements documentation

πŸš€ Getting Started

Prerequisites

  • Python 3.8+
  • Modern Web Browser (Chrome, Firefox, Safari, Edge)
  • Local Server Environment (Built-in Python server recommended)

Installation

# 1. Clone the repository
git clone https://github.com/<your-username>/xscout.git
cd xscout

# 2. Create a virtual environment
python -m venv .venv

# 3. Activate the virtual environment
# Windows:
.venv\Scripts\activate
# macOS/Linux:
source .venv/bin/activate

# 4. Install dependencies
pip install -r requirements.txt

Running the Application

Option 1: Local Development Server

# Start Python's built-in HTTP server
python -m http.server 8000

# Navigate to http://localhost:8000/dashboard

Option 2: Direct File Access

# Open dashboard/index.html directly in your browser
# Note: Some features may not work due to CORS restrictions

πŸ“– How It Works

Data Pipeline Execution
    β”‚
    β–Ό
StatsBomb API Fetch ──► Event Processing ──► Per-90 Normalization
    β”‚
    β–Ό
JSON Data Generation ──► Dashboard Loading
    β”‚
    β–Ό
Player Selection ──► Dynamic Visualization Rendering
    β”‚
    β”œβ”€β”€β–Ί Radar Chart Generation (D3.js)
    β”œβ”€β”€β–Ί Attribute Bars (Google Charts)
    β”œβ”€β”€β–Ί Heatmap Creation (Algorithmic Mockup)
    └──► Network Diagrams (Animated SVG)
            β”‚
            β–Ό
        Interactive Analysis
            β”‚
            β”œβ”€β”€β–Ί Role Fit Scoring
            β”œβ”€β”€β–Ί Player Comparison
            └──► Similarity Matching

πŸ€– Key Algorithms

Component Methodology Purpose
Role Fit Engine Weighted Metric Scoring Match players to tactical positions
Similarity Detector Euclidean Distance Find statistically comparable players
Normalization Engine Per-90 Minute Calculation Standardize playing time differences
Visualization Engine D3.js + SVG Animation Create interactive performance charts

βš™οΈ Configuration

Key settings can be modified in dashboard/app.js:

// Performance metrics configuration
const METRICS = [
  'shots_p90', 'xg_p90', 'shot_conversion',
  'prog_passes_p90', 'pass_completion', 'key_passes_p90',
  'dribbles_p90', 'pressures_p90', 'press_success',
  'aerial_win_rate', 'distance_p90'
];

// Role templates with weighted importance
const ROLES = {
  'Poacher': { shot_conversion: 0.30, xg_p90: 0.25, ... },
  'Target Man': { aerial_win_rate: 0.30, xg_p90: 0.25, ... }
};

// Visualization thresholds
function getBarColor(val) {
  if (val >= 85) return '#b8ff57';  // Excellent
  if (val >= 70) return '#00e5ff';  // Good
  if (val >= 55) return '#ffd166';  // Average
  return '#ff5e3a';                 // Below Average
}

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/player-analytics)
  3. Commit your changes (git commit -m 'Add advanced heatmap visualization')
  4. Push to the branch (git push origin feature/player-analytics)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License β€” see the LICENSE file for details.


Built with ❀️ using JavaScript, D3.js & Python
xScout β€” Transforming Data Into Tactical Excellence.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages