2026In progressPanel 03 / 03
Scoutify
A scouting app that measures how closely a player fits a tactical brief, then explains the score.
- Flutter
- FastAPI
- scikit-learn
- SHAP
- Python

The build
What it actually is
Scoutify is the fifth-semester Project-Based Learning build, made with a team of three, and I was on it as project manager, backend developer and the machine-learning side. It is a scouting tool for football recruitment: instead of asking who the best player is, it scores how well a given player fits a specific tactical brief, and explains why. Flutter covers the interface, a FastAPI service runs the nearest-neighbour search over eight normalised attributes and returns SHAP contributions, and the training notebook fits one weighted KNN model per playing archetype.
Highlights
- Flutter app covering dashboard, discover, tactical fit, similar-player search, comparison and shortlist, with widget tests over the dark/light theme and a 390 px layout
- FastAPI backend exposing the player list, single-player detail and the scouting query from one loaded model registry
- Nearest-neighbour ranking over eight normalised player attributes, with position and maximum-age filters applied on top of the neighbourhood
- Distance-to-contributions split in the notebook, so each similarity score is broken down per statistic instead of arriving as a single opaque number
- Backend degrades cleanly: numpy distance and directional SHAP stand in until the trained KNN and explainer artifacts are dropped into the artifacts folder