Skip to content

Malang, Indonesia

All work
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
Scoutify cover, captured on a phone: the dark home screen, with the SCOUTIFY label and Home title above the 'Hello, Scout' greeting and its 'Find your next signing' subtitle, the player search field with its filter button, and the top of three summary tiles reading 12 analysed players, 6 leagues and 0 shortlisted.
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
Next panelTB Cahaya BaruRead it