Enterprise Mobile Computing Case Study

The Client

The client is a local service company. The company negotiates service contracts with a number of Saint Louis area companies and organizations. The work is done by approximately fifty workers -- a mix of employees and independent contractors. The workers use specialized equipment to provide the service. Some of the specialized equipment is owned by our client. Other equipment is provided by the independent contractors.

There are safety and liability issues involved. Keeping detailed records of the work done is critical.

The Project

Create a unified system to communicate with workers, to track their activities, and to capture the business information necessary to support billing, payroll, and to protect against liability claims. The system needed to be comprehensive, yet easy to use.

The Problem

The client faced a number of issues including:

    • Scheduling and dispatching workers to locations where service was needed.
    • Providing the worker with site specific information (site maps, points-of-contact, on-site equipment information, etc.)
    • Recording work done and transferring that information into an accounting system for both billing and payroll purposes.
    • Capturing evidence of work done for use in defending against liability claims.

Before this system was developed, the client used phone calls to communicate with workers. Records of work were manually entered into a computer for later processing by the QuickBooks accounting system. Contract negotiation including setting pricing and terms was done “by ear.”

As the client scaled up the operation, the existing process was unable to handle the increased load.

The Solution

The system that OCI created for the customer is made up of a central server running on a typical PC computer, and mobile client applications running on smart phones carried by the workers.

The server provides dispatching and site information to the mobile workers, and captures the records of the work performed. The server also supports a web-based management user interface that can work with any web browser.

Managers use any common browser as a thin client to interact with the system. The management interface supported by the server allows dispatchers and managers to:

  • Enter customer information.
  • Enter location information about a customer’s sites and the type work needed at each site.
  • Define specific jobs (tasks) to be accomplished.
  • Identify and authorize workers based on their mobile phone information. This includes recording the equipment available to the worker. Information presented to each worker is filtered by the worker’s identity.
  • Produce live status reports including
    • workers’ current location and active job, and
    • the status of each open job.
  • Export information in a format suitable for input to the QuickBooks accounting system used by the client.
  • Generate historical information to help the client establish future pricing levels and other contract terms.

For this application, the mobile phones are much more than thin clients. They are active parts of the system that take advantage of the features of the device including the built in camera and GPS to provide a rich mix of information to the server. The remote interface allowed the workers to:

  • Display a list of jobs that needed to be done. This list can be sorted in a number of ways including distance from the worker’s current location.
  • Display a map to get to a work site.
  • Display information about the site including special conditions that need to be addressed while on-site.
  • Start a job and/or join another worker in a particular job.
  • Leave a job either finished or unfinished. Unfinished jobs can be continued by the same or a different worker.
  • Record the work done, the equipment used, and supplies consumed in handling a job.
  • Take before and after pictures of the job site and send these to the server to be attached to the job record.
  • Create a log of GPS locations during the time the worker was active on the job.

The server was implemented as a Ruby-on-Rails application using a postgreSQL database. Both the management interface and the remote client interface were implemented using standard web technologies.

The mobile client application was implemented as an Android application. It uses standard HTTP protocol messages to communicate with the server and receives JSON formatted replies. Using these standards opens the way to migrating the application to other devices (iPhone, Windows Mobile, etc.)

Android was chosen for the initial implementation because it is a strong platform that is gaining a significant market share while avoiding lock-in to a particular phone manufacturer and carrier. It comes with “built-in” support for the hardware features of the mobile devices including access to local storage, access to GPS location information, the ability to take pictures, etc. These features are what make a mobile phone particularly appropriate for this type of application.

Results

The system is in use and supporting the client’s business activities. The client has discussed with us extending the system to add additional capabilities and to support additional remote devices. He is also interested in a companion application that could be used during contract negotiation activities to capture site information, etc. on-the fly.

The client has also discussed packaging the system and offering it for sale to other businesses in the same industry, so we anticipate that there may be a number of follow-on projects generated from this initial effort.

Contact Information

To learn how OCI can help you with your mission critical systems, visit http://www.ociweb.com or contact sales@ociweb.com.