Vehicle Servicing iPad Application



AngularJS, Apache Cordova, NPM, Jquery, Bootstrap, SQLite, ASP, .NET, C#, MVC, SQL Server, OSX, IOS, XCode


We received a request to build an offline capable iPad application to assist with reporting of service for vehicles for oil related field equipment. The application would need to utilize data from an existing ASP Web Forms application backed by a SQL Server Database. The data would need to be synced to an iPad based upon the technician that would be servicing the vehicles in the field.

This data would contain work order, vehicle, part, make, and models for the sites that technician would visit as well as allow the technician to add additional data in the field if necessary. Once the technician completed services and they had a network connection they could sync this data back to the SQL Server and the data could be approved and/or changed utilizing the client existing application and an additional approval module that was written specifically to simplify to approval process.


The data required to allow offline adding and editing of vehicle service information was spread across 12-15 tables in the SQL database. This data had a variety of complex relationships which we had to maintain in the iPad application even in an offline state. In addition the data required was of a significant size and we needed a sizable and expandable database to hold the offline data between syncs. In order to accommodate this we used a local SQLite database on the Ipad to hold the data which allowed us to maintain greater control over the size and location of the database.

The technician servicing screen on the iPad required a set of 4 cascading drop down lists which were interdependent and interacted with the other drop down lists upon selection. In order to accomplish this we implemented a custom angular directive with multiple interactive watches that reached to user selection changes on the fly and saved data to a temporary table to maintain the state of the application as the user changed data entry on the services performed for a vehicle.

Upon reaching a point where the iPad needed to be synced to the server we had to implement a complex procedure to compare the data from the iPad to existing data in the sql server to prevent duplication and add new items if necessary. New items then went into an approval process which allowed the office staff at the client staff the opportunity to correct new item data before it was put into production use.

Final Completion:

We delivered a functional iPad application which allowed multiple technicians to travel into disconnected areas, perform a variety of service procedures on existing and new equipement; then synchronize that data to an existing application allowing office staff to bill and invoice much more quickly and efficiently.