Friday, June 16, 2017

FleetTLC



Previous work history: Vokal


FleetTLC
 (2017)

A friend, Josh, got me a gig with FleetTLC, operated by Jason Knupp. He had a score of technicians that needed to do detailed repair and maintenance work for a fleet of trucks around the world. He wanted them to have an Android APP running on tablets where they could record the work they were doing and have that data automatically uploaded to a server where he could monitor the results. For starters we were just going to focus on the US.




The data that needed to be sent had to include pictures. He wanted each entry, which represented a specific task the technicians did to a truck, to be additionally documented with a picture.

I got to build the entire APP from scratch. Which wasn't so hard. It got interesting when I volunteered to do the server side as well.

Server

The colleague we normally rely on to do server work for us (Jeff), was very busy and I didn't see it as likely he would be able to deliver in a timely fashion. Although I was familiar with HTML CSS, and MySQL and had dabbled with Drupal, a content management system, in the past, I wasn't sure the best way to proceed. Jeff was experienced in PHP so he would have done it using a LAMP stack (Linux Apache MySql PHP). However, I wasn't sure that was best for me. I knew PHP but wasn't very fond of it as a language. So I asked around.

My friend from Uniwar development, Xavier, recommended the Play Framework. This framework was apparently the latest and greatest in server side development. And boy was he right! It even allowed me to continue to program in java!

Unless you have developed a back end before (using a standard LAMP stack for instance), it's difficult to appreciate how cool the Play Framework was. With the Play Framework you can go pure Scala or Java. I chose java, since that was my expertise. But the framework still heavily used Scala, so I had to sit down and learn that too. Scala is basically the latest and the greatest in programming languages. If your familiar with Kotlin, it is a sibling of that. Both these languages run on top of java, providing additional features that greatly abbreviates the code you have would normally have to write if just working in java alone.

As far the UI, I will show a bit here. This does not do any justice to the framework used to develop it though. The awesome bits was how easy it was to put all together. And also maintain it.
Front Door of all the data that can be accessed and viewed 


List of entries uploaded by technicians.
A detailed look at one entry

The database was standard MySQL. The server was hosted by AWS Amazon EC2. Also the pictures were transferred to a bucket using AWS Amazon S3. Amazon AWS is an entire beast in itself, and I needed to help from Jeff to address one nasty bug I encountered during development.


Amazon AWS is very cool and has a dizzying array of tools.

This project was a lot of fun. Not only did I program all the APP side, including the hooks to send pictures and json data to the server, but I got to program from scratch the server side that pulled all that data together and presented to as a series of HTML pages. And I got to get exposure to Amazon AWS, the glue that held all that together.