An online GPS-tracking system with complex logistics functionality.
Uniqtracking specializes in offering GPS vehicle tracking services for:
Individual customers, so they could receive insurance benefits and feel safer about owning expensive vehicles;
Companies that own fleets of vehicles, so they could keep track of where their vehicles are, manage their fleets and get reports of where their vehicles are headed;
Leasing companies that lease vehicles to other companies/individuals, so they could ensure their vehicles are safe and offer efficient split leasing capabilities (a company and individual lease a vehicle together for tax benefits; this requires being able to track how much driving is done for private and how much for commercial purposes).
Prior to contacting us, Uniqtracking was using a different 3rd party system for performing all of these tasks. However, its limited capabilities and disagreements with the system owners created the need for them to build their own unique system. Our main task was designing the infrastructure and building it from the ground up.
What We Did
We created an online GPS-tracking system with complex logistics functionality, including fleet management, driver logs tracking, online real-time vehicle tracking, alarm sending on theft, speed limit, moving into/out of defined zones, and other specific situations. The software displays a real-time position of any vehicle with the GPS device installed. And what’s more, the Uniqtracking system stores all reported data and makes it available throughout the entire lifetime of the device.
The system was designed with a modular (microservice) architecture in mind. This simplifies development since most of the time only one or two modules are impacted by the changes.
Data processing can be done in parallel. This allows distributing it over multiple servers if needed, creating the possibility to process unlimited amounts of data and support very large numbers of GPS devices. While this was not needed for the initial capacity of the system, building it with this functionality already in place allowed the system to remain relatively unchanged over the years while still being perfectly capable of handling the ever-increasing load.
An event store database was selected for storing all changes happening in the system. This has allowed simple addition of new features that are compatible with the system. All existing events can be re-processed with new functionality and the updated data can be immediately displayed. This may be hard to grasp, so here’s a simple hypothetical example: let’s say we have a list of customers in the system and we’re interested in knowing when each of these items was created. We can add new functionality that includes creation date along with the rest of customer information on the customer entry in the database. We can then reprocess all the customer creation events in the event store and update all existing customer data with their original creation date.
We’ve been able to create a system that has seen a great increase in usage, but has not needed major rewrites in order to support that usage. The predictions made during the initial design phases have allowed the system to scale horizontally (adding additional servers) instead of vertically (making the servers more powerful and also way more expensive), with only minor hardware improvements.
Since the new system has been launched, Uniqtracking has been able to add new features quickly and react to market demands in time.