PlayerTrack

It is a daily use app for the different members of a team sport, both staff and players, in order to centralize all relevant player and team data with the ultimate objective to produce better results. This is possible thanks to a predictive model of injuries, post-injury analysis and performance measurements, based on the information provided daily by the players and the data produced by the GPS.

Login page

Login in page for both player and staff

Player view


When a player logs in they are directed to a personalized view where they can input their daily well-being stats. Weight, sleep, energy and pain levels and a pain description. This is later used by staff members to keep track of each individual players’ current state. The information is transferred within the app through jQuery scripts and is stored and queried from a MySQL database

Staff view


When a staff member logs in, they are directed to a dashboard where they can access several player related functionalities. The list in the middle shows which players have already submitted their daily form for today, in order to keep track and remind them to do so. This is automated by querying the player database and comparing the last entry with today’s date.

Staff view - Player profile


Next is a player profile (Luke) where all the GPS data from selected matches is displayed in a dynamic table created with jQuery’s plugin DataTable which allows for personalized filters and sorting to be carried out.

The last part in the player profiles is the possibility to keep track of injuries. On the left, there is an injury table which shows past or current injuries. In the middle the staff can add a new or old injury and on the right column they can edit or delete them. All injuries are stored in an injury table within the MySQL database and when modifications are done, the table automatically updates.

Staff view - Player profile with Advanced Stats


By clicking on the Advanced Stats button, a list is displayed with performance variables we created based on the GPS variables. These variables were developed after an extensive data analysis and research done in Jupyter Notebook using for example the Pandas and MatPlotLib libraries for Python.

Each is a button by itself that produces a dynamic chart created with Chart.js that shows the player performance, their average and two indexes. The upper index is a risk of injury limit which players should not cross. If they do so, they are in imminent risk of injury. The lower index is an underperformance indicator which players should remain above.

Staff view - Compare players


The following staff functionality is the compare section. Here, as many players as the user wants can be selected from the player list.

Staff view - Compare players with charts


Then, a variable is selected and when submitted, a chart is produced. This chart is dynamic and allows for live edits made possible by our manipulation of the Chart.js library. Without reloading the page the user can create and edit as many charts as they want in order to compare different players with different criteria for a better performance analysis.

About us


Nowadays most professional team sports use GPS trackers on every player for training sessions and matches. These GPS devices produce an extensive/large amount of data that allow for a detailed performance analysis when properly used.

The use of this technology has changed most team disciplines and made them more fast paced and dynamic, changing the focus of the game strategy and even the business that surrounds sports.

We wanted to take this analysis a step further and try to create a predictive model based on this information and see if it was possible to foresee, predict and eventually prevent player injuries. To do so we took as a test case a local professional rugby team who use GPS devices to track their performances. We focused on one specific tournament they recently played which consisted of twelve matches. All the information we used for the project is real, the players and teams, variables and injuries are real, but we changed the names of players and teams for confidentiality reasons. We decided to work collectively as a group, having the three of us equally participate in the construction of it all, focusing on communication and learning from each other’s technical strengths.

Ultimately, PlayerTrack was born.

Github repository

Cecilia Giudice


Linkedin: Cecilia Giudice

Github: ChechG

Julián Arbini


Linkedin: Julián Arbini

Github: JulianArbini97

Soledad Frechou


Linkedin: Soledad Frechou

Github: sfrechou