<aside>
📈
SH Stats (Spanish Handball Stats) is a Windows desktop application I built to automatically collect, organize, analyse, and visualize match data from Spanish handball competitions published by the Real Federación Española de Balonmano (RFEBM) and regional federations.
</aside>
The Problem
Spanish handball results were publicly available, but distributed across federation competition pages and difficult to reuse for analysis. Coaches and analysts had no simple way to transform those pages into structured datasets, rankings, statistical indicators, and visual reports.
What I Built
- A configurable desktop application where users create reusable panels containing multiple competitions.
- Automatic extraction of match results from RFEBM (Spanish National Handball Federation) and territorial-federation pages through web scraping.
- Support for competitions distributed across multiple links or groups, such as national categories with several regional groups.
- Local persistence of competitions, teams, matches, source URLs, and update timestamps.
- Competition and team dashboards with standings, descriptive statistics, correlations, predictive indicators, and visualizations.
- Dataset export to Excel, CSV, and JSON for further analysis or sharing.
- Importable and shareable panel files so users can distribute complete competition configurations.
- A packaged Windows executable, allowing non-technical users to run the tool without configuring Python.
Data Pipeline
- Users add one or more RFEBM competition URLs to a panel.
- Requests downloads each results page and Beautiful Soup parses its HTML structure.
- Match records are normalized into Pandas DataFrames, including home and away teams, scores, league, group, season, federation, and date fields.
- Competitions, teams, matches, source links, and metadata are persisted in a relational SQLite database.
- The application aggregates the records into standings, team summaries, statistical metrics, and chart-ready datasets.
- Users refresh individual competitions or an entire panel as new results become available.
Analytics