← Back to Work

Research entry

Football Team Tracker — Budget GPS Analytics

2026 · Independent Project

A budget GPS and fitness tracking system for amateur football teams. Django dashboard with Leaflet maps and Chart.js trend charts. ESP32 T-Beam hardware loggers at ~€50/player vs €200–300 for commercial equivalents.

Django Python ESP32 GPS Leaflet Hardware IoT

Open live app / source →

Overview

A full-stack GPS tracking and fitness analytics system for amateur football teams. The commercial alternatives — Catapult, STATSports, Polar Team Pro — cost between €2,000 and €50,000 per team per year. This system costs roughly €100 in hardware for a two-player starter kit, with the Django dashboard already built and running.

The motivation is straightforward: thousands of amateur clubs in Ireland cannot justify professional GPS systems, but want more than a basic phone app with no real hardware and a team dashboard they don’t own.

Hardware

LilyGO T-Beam V1.2 — an ESP32 board with a NEO-M8N GPS module, LoRa radio, OLED display, and an 18650 battery holder, all on one board. Custom firmware (PlatformIO) logs GPS coordinates to a micro SD card as CSV at 1Hz.

Session control is button-driven: press to start, press to stop. LED feedback confirms recording. After training, the SD card CSV is uploaded to the Django dashboard for processing.

Hardware cost per player:

ItemCost
T-Beam V1.2 (868MHz)~€33
18650 battery~€5
Micro SD card + module~€8
Total per player~€46

Dashboard

Built with Django 6 + SQLite (dev) / PostgreSQL (prod), Tailwind CSS, Leaflet.js, and Chart.js.

CSV upload — Haversine distance, sprint detection, high-intensity percentage, and fitness score are all computed on ingest. No manual processing required.

Fitness score algorithm — composite metric weighted across four dimensions:

  • Distance (30%) — total metres covered per session
  • Sprints (20%) — sprint count above speed threshold
  • High-intensity % (20%) — proportion of session above HI threshold
  • Consistency (30%) — stability of effort across the session

Session detail — multi-player stats table, Leaflet GPS track overlay, per-player heatmap (leaflet.heat), speed-over-time chart.

Player profiles — Chart.js trend charts for fitness score, distance, and max speed across sessions.

Comparison

Catapult/STATSportsPolar/GPSportsApp-onlyThis project
Annual cost€10k–50k+€2k–5k€60–180~€120/yr + €46/player HW
Real GPS hardwareYesYesNoYes (T-Beam)
Team dashboardFullGoodBasicFull (Django)
CustomisableNoNoNoFully

Status

Dashboard built and running locally with 19 passing tests and a sample dataset (4 players, 12 sessions, 185k GPS points). T-Beam hardware units ordered for April 2026. Railway deployment config ready for when hardware is live.