SportsTracker header
SportsTracker icon

About

SportsTracker is an application for people who want to track their sporting activities. It is not bound to a specific kind of sport, the user can create categories for all sport types such as cycling, running, swimming or tennis.

The main advantage is a good overview of your exercises, you can easily create diagrams and statistics for specific date ranges and sport types. In the calendar you can also track your body weight or create note entries, e.g. the training plan or upcoming sport events.

All the application data is stored in XML files. So it is very easy to access them with other tools or to write importers and exporters for other applications. The users data can be exported to a SQLite database as well.

If you are using a heartrate monitor with a computer interface you can display the recorded exercise files and evaluate the diagrams with the integrated ExerciseViewer application.
You can organize them by attaching the recorded files to the exercise entries. When adding new exercises you can import the data from the recorded exercise files.

ExerciseViewer supports Polar, CicloSport, Garmin, Timex, Suunto, Oregon, HOLUX and Kalenji heartrate monitors. This is the current compatibility list (other monitors might work too, but I can't test them, user feedback is welcome):

  • Polar S610(i), S710(i), S720i, S725 (tested)
  • Polar S510, S520 (tested)
  • Polar S410, S625x (tested, HRM files only)
  • Polar RS200SD (tested)
  • Polar RS400, RS800 (initial support)
  • Polar CS600 (tested, HRM files only)
  • Polar F6, F11 (tested)
  • Polar RCX3 (tested, HRM files only)
  • CicloSport HAC4, HAC4Pro, HAC5 (tested)
  • Garmin Edge (tested with Edge 500, 520, 530, 705, 820, FIT and TCX files)
  • Garmin Forerunner (tested with Forerunner 35, 305, 910XT, 645, FIT and TCX files)
  • Garmin Oregon (tested with Oregon 450, GPX files)
  • Garmin Fenix (tested with Fenix 2, 5X, 6, 6S Pro, FIT files)
  • Timex Ironmen Race Trainer (tested)
  • Timex Ironmen Run Trainer (tested)
  • Timex Ironmen Global Trainer (tested)
  • Suunto Ambit (tested with Ambit2, downloaded GPX files)
  • Suunto Spartan (tested with Spartan Sport Wrist HR Baro, FIT files)
  • Oregon Scientific SmartSync WM100 (tested)
  • HOLUX FunTrek (tested with FunTrek 130, GPX files)
  • Some Sony Ericsson mobiles (tested with W580i)
  • W Kalenji 300, CW Kalenji 700 (tested, GPX imports)
  • All devices recording GPX files (tested some models)

Users of heartrate monitors with an integrated GPS receiver (e.g. the Garmin Edge series) can also view and replay the track of the recorded exercises in the interactive map viewer component.

SportsTracker itself is not able to download the exercise files from the heartrate monitor. Some monitors (e.g. Garmin) allow the direct download via USB. For other monitors you might need one of these tools:

Screenshots

News

  • 2022/01/02: Version 7.9.0 has been released, which contains some new features in the ExerciseViewer. Power data from FIT files (e.g. Garmin) can now be displayed (if recorded) in various panels (e.g. in Diagram). Heartrate zones are now supported for FIT files and can be displayed in the Main and Diagram panels. The Main panel now also displays the sport type if present (e.g. for Garmin and Polar files).
    In addition there were several updates (e.g. JDK 17, Kotlin 1.6) and bugfixes. The list of all changes can be found in the changelog.
  • 2021/06/26: The SportsTracker release package downloads have been finally migrated from SourceForge to the GitHub SportsTracker project page. From now all project resources are available on this central place. You can find the downloads on the Releases page.
    Initially only the packages of the latest release 7.8.0 have been migrated. Please contact me if you need previous package versions for some reasons.
    The SportsTracker project page at SourceForge has been closed, since it has been used for the package downloads only.
  • 2021/04/06: Users of macOS and Windows 10 might have problems when using the native installer packages, because these don't contain trusted code signing certificates. These can't be provided by an individual open source project, the expense and the effort are just too high. However, there are easy workarounds for using the installers anyway, these are documented in the latest README.txt, chapter 'Installer security notes for macOS and Windows 10 users'.
  • 2021/04/05: Version 7.8.0 has been finally released and it contains a lot of changes since the previous release. Users can now track the usage and the age of their equipment (e.g. running shoes) by using the Equipment Usage dialog. Replaced equipment can now be marked as inactive. The Exercise dialog reminds the user when no equipment has been selected.
    The ExerciseViewer supports newer devices (e.g. Garmin Fenix 5/6, Suunto Spartan) and contains many bugfixes for the existing parsers.
    Internally Java has been updated to version 16, which provides interesting new language features. All libraries have been updated to their latest releases. As always, the list of all changes can be found in the changelog.
  • 2019/07/13: Version 7.7.0 has been released and it provides some nice new features. In Exercise Viewer the Track Panel displays an altitude chart below the track, so the user can locate the climbs and descents easily on the map. The Diagram Panel shows colored slopes in the altitude chart, there are multiple colors for the slope percentage ranges (thanks to Francois Kneib).
    Withdrawn equipment such as worn shoes or replaced bikes can be marked as 'not in use', so there are no long equipment selection anymore. And SportsTracker checks now automatically for application updates on each startup.
    This update also contains several minor improvements and bugfixes, the Kotlin migration has progressed too. The list of all changes can be found in the changelog.
  • 2019/02/07: Version 7.6.0 has been finally released, which contains some long requested features. The user can now define for each sport type separately whether speed data is handled as speed or pace (e.g. for running). Alex Jarosch has provided support for descent exercise data (similar to ascent) and improved support for cadence and steps handling in Garmin FIT exercise files.
    The Java runtime has been updated to version 11.0.2 (uses AdoptOpenJDK now) and Kotlin to version 1.3. Because of the removed packaging system in Java 11, the packaging for Windows, macOS and Linux has been completely rewritten. And the reported macOS 10.14 problems have been fixed in the updated JavaFX library.
    The list of all changes and bugfixes can be found in the changelog.

Requirements

SportsTracker is an application for the Java platform written in Java and Kotlin. It was developed and tested with the OpenJDK JVM, other JVM implementations will probably work too.

The SportsTracker installer packages contain an embedded Java SE Runtime Environment (JRE), a Java installation is not needed. Users of binary packages need to install the JRE before, the OpenJDK can be downloaded e.g. from the Adoptium project website.

If you want to download exercise files from your heartrate monitor you might need one of the tools listed above.

The application was tested on GNU/Linux (e.g. Ubuntu 20.04), Windows 10, macOS (10.15 - 12), although it should work on all systems with the required Java Runtime Environment.

Installation

For Windows, Mac and some Linux systems there are native installer packages available on the GitHub project release page. They include an embedded JRE, so you don't need to install Java before. The installers will create a menu entry for easy SportsTracker startup.

If you are not using an installer, you need to download the ZIP archive with the application sources and build the application locally. Please see the included README.txt file for detailed installation instructions.

Contact

Please use the issue tracker on the GitHub project page when you have comments, suggestions or problems with bugs.

If you want to contribute improvements or translations, feel free to fork the GitHub repository and submit Pull Requests. It would be great when bigger changes could be discussed before starting the implementation.

License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.