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.
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.