Welcome to RoboTracker

[ About RoboTracker | Acknowledgements | Release Notes | Installation | Running | Testing | Appendix (using MySQL) ]

version 0.7.8 available now!

About RoboTracker

The initial versions of RoboTracker are intended to be used as a tool for improving developers' task estimation skills. For now, RoboTracker offers the following features:
  1. The User may define stories; each story is a high-level description of something that needs to be done.
  2. The User may define tasks; each task is a low level description of something that needs to be done in order to complete a story.
  3. Each task has a name, an estimated completion time, and optionally a parent story
  4. The User may select a "current task" (system tracks time spent on each current task).
  5. The User may view how much effort has been expended on each task, and the percent of actual effort relative to estimated effort.
  6. Report type: load-factor: calculated for a subset of tasks over a specified period.
  7. Report type: activity log: lists user's task-switch events
  8. Report type: expended effort: total time spent on each task, per day, or within a user-defined period.
  9. User may choose a subset of tasks for inclusion in a report.
  10. Hierarchical view of stories and tasks.

Screenshots are available, and you might even be interested in a UML overview of the internals of the system.

The "grand vision": Subsequent versions will become a comprehensive tool to assist the Tracker role on an XP project, allowing the creation of projects, iterations, stories, and tasks in a sensible hierarchy; role-based access (developer/tracker/customer); developers assign tasks to themselves after creating and estimating them; reporting on every aspect of a project, using gathered data to attempt predictions about the future of the project.

RoboTracker is hosted at http://savannah.gnu.org/projects/robotracker/. It is released under the GNU General Public License.

Contact: robotracker@conandalton.net.


I would mention my mother, too ... but she doesn't have a web page. However, her impact on this project ought to be self-evident.

Release Notes

version 0.7.8: 2002-08-22

version 0.7.3: 2002-08-10

version 0.7.2: 2002-07-30

version 0.6.4


  1. RoboTracker uses Java version 1.4. Make sure you have a Java 1.4-compatible JVM installed on your system.

  2. create a database for the application using your favourite database application (for example, MySQL).

  3. Note the jdbc string used to access the database. For example, if you create a database called "robotracker" on your own machine using MySQL, the jdbc string will be "jdbc:mysql://localhost/robotracker"

  4. create a subdirectory of your home directory called ".robotracker"; this directory will be referred to below as the init directory.

  5. in the init directory, create a file called "init.properties" with the following content (change the values as appropriate):
    RoboTracker uses this file to connect to the database.

  6. unzip the RoboTracker distribution file anywhere you like


Execute robotracker in the /bin directory of your distribution.

By default, RoboTracker looks for its "init.properties" file in the ".robotracker" directory you created in your home directory. If you specify a command-line parameter, however, RoboTracker will interpret it as the name of a directory to use instead of the default. This may be useful

  • if you are running different versions of RoboTracker,
  • if you are developing RoboTracker and need separate database instances for testing,
  • if you can't find your home directory, which is not unlikely for Windows users,
  • if you simply don't want to add clutter to your home directory,
  • if you want to establish a system-wide init file for all users
  • ... anyway, the feature is there.


    In order to run the tests, you will need The BeanShell, a java-based scripting language, JUnit 3.7, and Ant. For the BeanShell and jUnit, download and include the relevant jars in your classpath. For Ant, read the installation document.

    There are two sets of tests - the unit tests, and the functional tests.

    The Functional Tests

    These tests use The BeanShell to script user events and JUnit to make assertions. User events include selecting items in a list, clicking on buttons, entering text, and so on. Assertions include checking that a particular window is open and visible, that a label is showing the correct text, that a checkbox is in a certain state, that items in a list are in a certain order, that certain items in a list are selected ... and so on. These tests are launched by executing robotracker-test in the /bin subdirectory of your distribution.

    The Unit Tests

    Please see The Build Process for more information about running the unit tests.

    Appendix: How to set up a MySQL user and database

    1. From the shell prompt type

      mysql -u root

      (note that you don't have to be root on your system to do this; MySQL users and system users are separate entities; if this is the first time you have used mysql on your system, you won't even have to supply a password; please "info mysql" at your shell prompt to learn more about securing your mysql installation)

    2. From the MySQL prompt type the following:

      create database robotracker;
      grant all privileges on robotracker.* to robotracker_user@localhost identified by 'robotracker_password';

    3. To verify the database was created, type show databases; - MySQL will draw a single-column table listing all existing databases on your system.

    4. To verify the user was created, type

      use mysql
      select * from user;

      - you should see a line containing "robotracker" in the "db" column, and "robotracker_user" in the "user" column.