Project of the Month, December 2009

By Community Team


OpenGTS (Open-Source GTS Tracking System) is an open-source alternative for companies wishing to provide GPS tracking for their fleet of vehicles.

OpenGTS is highly configurable, and has many available features. Here is a brief list of some of them:

  • Customizable web-based user interface (using standard CSS files).
  • Multiple login accounts.
  • Multiple users per account, with access-control-lists to control which users have access to which features.
  • Multiple vehicles per account, which can be placed into vehicles groups.
  • Geofencing/Geozones for defining specific geographical regions and custom address assignment.
  • Mapping using OpenLayers/OpenStreetMap (as well as other map providers).
  • Access to external reverse-geocoding services.
  • Customizable reports.
  • Tools for integrating most types of GPS tracking devices.

Why and how did you get started?

The OpenGTS project was first released January 25, 2007. Before that time, I was working on another SourceForge project, OpenDMTP, which was the client-side GPS tracking communication protocol, with an included reference implementation. However, I quickly realized that a GPS tracking system that was hardware independent, allowing the integration of nearly any existing GPS tracking device, was much more useful to people wanting to provide themselves with a GPS tracking system.

The first release of OpenGTS just supported storing received events from OpenDMTP protocol devices, and exported KML for display of a map on Google Earth. All database administration to add accounts, device, etc, was performed through command-line tools.

From that point, the project quickly evolved with the addition of other mapping service providers, an included reporting engine, web-based account/device administration interfaces, etc. As various commercial enterprises became aware of the capabilities of the system, they provided a number of suggestions for enhancing the project to fit their particular vertical GPS tracking markets.

Today, OpenGTS is being used for tracking busses, taxis, ships, ATVs, runners, skiiers, patients, pets, emergency service vehicles, water tank levels, scrap containers, tractor/trailers, maintenance crews, etc. To date, it’s been downloaded and put to use in over 70 countries around the world and is tracking assets around every continent (including Antarctica).

Who is the software’s intended audience?

For anyone wanting to have a commercial grade GPS tracking system. While the project does come with a step-by-step installation guide, it does require some knowledge of generation server installation procedures, and some familiarity with installing services such as MySQL and Tomcat.

What are a couple of notable examples of how people are using your software?

The Panama Canal Authority is using the system to track their service personnel along the Panama Canal. It is being used to track ships to and from Antarctica. There are also several other exciting projects currently underway.

What are the system requirements for your software, and what do people need to know about getting it set up and running?

OpenGTS is written entirely in Java, and will run on any system that can run Java and MySQL. This currently includes Linux, Mac OS X, FreeBSD, OpenBSD, and Windows.

Once installed, you will need a GPS tracking device that is capable of transmitting a GPS location over Internet to the server. There are several low-cost or easily available options for tracking that are included with OpenGTS.

One of these is the support of the OpenDMTP client on a laptop. My first test with a GPS tracking device was driving down the road with the passenger monitoring a laptop that had a USB GPS receiver connected to it and a wireless Internet modem.

What gave you an indication that your project was becoming successful?

I keep a world map on the wall with pins showing the location where OpenGTS is being used. I’ve now lost count of all the pins on the map, but to date, OpenGTS is now being used in over 70 countries around the world, and tracking assets around every continent. This was probably the first indication that OpenGTS was going to continue to grow.

What has been your biggest surprise?

I’m constantly being surprised by the new ways that OpenGTS is being used. One example is water tanks. They don’t move, but tracking their water levels helps service personnel to know when they need to be refilled.

What has been your biggest challenge?

Trying to make sure that the web interface behaves in a similar fashion on the major web browsers. We perform regular testing on Safari, Firefox, and Internet Explorer. But some browsers are less compatible than others 🙂

Another challenge has been trying to keep up with the volume of email I get on a daily basis from both commercial and private enterprises requesting information on the availability of new features, etc. It is exciting to see, however, all the different ways people have found to use OpenGTS.

Why do you think your project has been so well received?

I believe it fills a niche. Companies that want to run their GPS tracking service behind their own firewalls, and be able to modify the code to fit their specific requirements.

What advice would you give to a project that’s just starting out?

Maintaining an open-source project can be quite time consuming. I think it helps to be passionate about the open-source solution you are providing, and believing that what you are doing is helpful to a large segment of people in the industry.

Where do you see your project going?

The uses for OpenGTS seems to be expanding every day. With new ideas for features that we had not yet considered. One area that seems to have some demand is in emergency response tracking. We are currently working with some organizations to help OpenGTS grow in that area.

What’s on your project wish list?

There is a long list of new features I’d like to see in OpenGTS. Probably at the top of the list of a more attractive user interface. I’m not a graphical designer myself, so this is one area that in which we could use some help.

What are you most proud of?

Probably the adaptability and extensibility of the features. OpenGTS was designed to be easily extensible. Every GPS tracking market is different. So far, OpenGTS has been able to easily adapt to the commercial requirements of just about every GPS tracking market that I’ve come in contact with.

If you could change something about the project, what would it be?

OpenGTS is pretty adaptable to change, and change is happening all the time. However, I probably would have laid out the database table names a bit differently, knowing what we know now about where OpenGTS would be used.

How do you coordinate the project?

The system is being used in several commercial environments, so it is constantly being tested and scrutinized by a multitude of people. We try to knock out bugs quickly, and fortunately, there really aren’t many ‘bugs’ that we’re trying to deal with.

How many hours a month do you and/or your team devote to the project?

Actually GPS tracking and telematic systems design is a full time project for me. I’m constantly given new projects to design and implement. Much of the commercial work is very industry specific and doesn’t make it into the core open-source OpenGTS project. But the components that do make it into OpenGTS enhance the project for everyone’s benefit..

What is your development environment like?

I split my time between 3 different development platforms: Mac OS X, Linux, and Windows. We currently use the old tried-and-true CVS to coordinate code changes between them, and keep hard disks and flash drive encrypted with TrueCrypt to keep them protected.

We also have a few Internet facing servers we use for testing and debugging before deploying to some of the commercial environments we’re responsible for.


Version / Date Milestone
1.2.0 [2007/01/25] The first release
1.3.5 [2007/03/11] Reporting added
1.4.0 [2007/03/30] Multiple Users per Account and access-control-lists
1.4.5 [2007/05/25] Added reverse-geocoding (using Geonames)
1.4.6 [2007/06/03] Added I18N multi-language support
1.8.3 [2008/06/20] Mapstraction support
1.9.2 [2008/08/08] Geofencing support
2.0.9 [2009/05/24] Includes support for Motorola Boost Mobile phone tracking
2.1.6 [2009/10/05] Custom text pushpins

How can others contribute?

We could use help in a several different areas:

  • We could use some help from someone with a graphical eye that could help create different ‘skins’ to the user interface. And maybe various icons that would help enhance the look of the system.
  • We would like to have PostgreSQL fully supported as an another selectable database option and could use some help from someone more familiar with PostgreSQL.
  • We’ve received requests for information on the importing of shapefiles into GeoServer (and display by OpenLayers). We could use some help from someone intimately familiar with the configuration procedure of GeoServer that could help with documenting how shapefiles and other map file types can be imported into GeoServer for display by OpenLayers.
  • Some GPS tracking hardware manufacturer sponsorship would be appreciated as well 🙂

More projects of the month

Project name: OpenGTS

Date founded: January, 2007

Project page:

Project Leader

Martin D. Flynn

Martin D. Flynn

Occupation: GPS Tracking/Telematic Software Engineer

Location: California, USA

Education: B.S. Computer Science

Team Members

Bud Flynn

Bud Flynn

Occupation:Websphere Administrator, Web Services developer

Education:AA MIS and BS Information Technology
Location: California, USA

Why did you place the project on

The best way to improve software is to get as many eyes as possible looking at it and SourceForge is the best place to accomplish that.

How has helped your project succeed?

The exposure to a large number of other software developers has helped make the project what it is today.

The number one benefit of using is:

It’s a global forum that allows the largest possible number of people to view and contribute.

Leave a Reply

Your email address will not be published. Required fields are marked *