Customer Booking App

C# development using Xamarin for IOS for a customer app. This app allows customers to book, view, and cancel their reservations, shows real-time ETA and location of vehicle driving towards the pickup location, and offers visibility into receipts and billing information.

Technologies… Xamarin, asp.net web API, SQL Server, Linux, IOS

Chauffeur App 2.0

In 2013, EmpireCLS needed to revamp their mobile chauffeur application because the Windows Mobile 6 platform was to be deprecated. Windows Phone 8 was the platform of choice for this application that supported their 400+ mobile workforce.

A large amount of client code was re-used from the original mobile app, along with the entire back end.

Highlights…

  • Chauffeurs could notify central dispatch that they were awake and ready for work. Before this feature dispatchers would call chauffeurs on the phone to validate that they were ready and would make their first pickup of the day. This saved thousands of man-hours a year.
  • Was done using cross platform development patterns to allow other mobile platforms to be implemented. The goal of using Xamarin to create an IOS an Android app was taken into consideration way up front to cut down on overall cost of bringing up these 2 platforms at a later date.

Technologies… Windows Phone 8, c#, WCF, PCL

Tranquility Product

In 2012, EmpireCLS needed to build out their new platform that would replace their existing Linux platform lovingly known as Iliad. We termed the new platform “Tranquility” to try and install a sense of calmness for those migrating from the legacy platform.

The existing linux platform had around 1 million lines of code, over 200 applications, and 20 years of data in an ISAM database. Our goal was to build this new web platform on Windows and slowly migrate the individual programs.

From the onset we counted on running both systems side by side and slowly migrating users to the new system. We chose the side by side approach to cut down on risk to the company, simplify training, and allow real-time validation between systems.

The initial modules that were moved were read-only; customer profiles, reservations, chauffeur HR. New modules were added to support credit card rebills, chauffeur check-ins, system monitoring, and several third party integration portals.

Technologies… C#, asp.net MVC, SQL Server, asp.net web API, Angular, Typescript

System Monitor Software

In 2012, EmpireCLS needed a way to keep track of the overall health of all the applications that we were writing. We developed a series of database queries that would notify the MIS team of certain events throughout the entire back office suite.

This service would basically poll dozens of SQL tables looking for queue backups, delayed processing, process errors, etc.

Technologies… C#, SQL Server

SQL Server Index Optimization Software

In 2011, EmpireCLS needed a way to automate index rebuild and re-organizations in SQL Server. This was a direct result of a small outage experienced on a weekend.

We diagnosed that under certain circumstances certain indexes in the database would not perform well. In some cases it didn’t matter what the percentage of fragmentation was, queries would just be slow.

We built an automated process that would automate the rebuilding and reorganization of indexes based up fragmentation levels. This job would scan all indexes in the database on a daily basis and queue up the SQL operations in off hours.

On a weekly basis certain indexes, those that would degrade performance regardless of fragmentation level, were automatically rebuilt.

We also had historical tracking of when the indexes were rebuild and what fragmentation level they were at when rebuild job was queued up.

Customer Notification Software

In 2011, EmpireCLS needed a notification system to send out email and text notifications to customers for whom the chauffeur when a they were in a location waiting for the customer. Special notifications were used for VIP customers and high security customers so that their managers and handlers could receive full background data on the chauffeurs for security purposes.

Upon landing at an airport a customer would know that their chauffeur was there waiting for them, who the chauffeur was, and the chauffeurs cell number in case they had to contact them.

Technologies… SQL Server, C#

Be Transported Product

In 2011, EmpireCLS wanted to unite their 500+ affiliate network and build a marketplace for customers.  This was a brand new business entity and was released as betransported.com.

We worked extensively with the EmpireCLS executive team to help define the business model.  We were then able to implement the entire application in around 9 months; website, accounting, mobile app, and the on boarding of 400+ affiliate partners.

The project was a success as far as the partner relationships were concerned.  There were many challenges with getting customer adoption so it was put on hold indefinitely.

System highlights… web UX for creating rating structures, extensible rating API, cross platform mobile app with code reuse from back end, extensible excel import framework for bulk loading rating structures.

Technologies… C#, SQL Server, asp.net MVC, asp.net Web API, Xamarin.

Flight Tracking Software

In 2010, EmpireCLS needed automate the tracking of flights to better control the dispatching of their drivers. By having the most accurate view of a flights estimated arrival time EmpireCLS would be able to optimize the dispatching of vehicles and cut down on vehicles being idle at airports.

Technologies… c#, SQL Server, Flightview API

SQL Server Table Change Tracking Software

In 2009, EmpireCLS needed the ability to audit all table changes to see which fields were changed by which user or system at any point in time.

We analyzed the out-of-box SQL Server change tracking framework but it fell short in several areas, the most important of which was not being easy to maintain when adding new columns to a table that was being tracked.

We designed and implemented a custom generic solution for EmpireCLS that easily handled what was needed in this environment. We used a services of triggers in SQL, a back-end C# service, and a separate reporting database with a common set of SSRS reports to view the changes.

The SQL triggers and temporary tables could be generated via a single stored procedure that would interrogate the system tables for column names and types. This stored procedure would also do full diffs of the source tables so that column additions were automatically handled. Bringing a new table or an additional column could be done in seconds with no risk or change to the backend service or reporting infrastructure.

The backend service was generic and would infer the list of tables via a separate schema in SQL Server. The service would then handle batches of before and after data records, do diffs, and create the appropriate header / detail history tables in the reporting database. Only changed columns would end up being saved, which each column change equating to a detail row with before and after values, all details of the change where bound to a single header containing the change time and user.

Technologies… SQL Server, SSRS, C#, ado.net