Technical solutions for business problems are like ordering coffee in Starbucks – tall / Grande / Venti / Trenta, black / regular / fat-free / 1% / 2%, Sugar / sugar-free (I’ve always wondered why it is ‘free’ it is not free of ‘sugar’ neither is it free of cost !! but I digress ……
Technical solutions for business problems are like ordering coffee in Starbucks –
- tall / Grande / Venti / Trenta,
- black / regular / fat-free / 1% / 2%,
- Sugar / sugar-free (I’ve always wondered why it is ‘free’ it is not free of ‘sugar’ neither is it free of cost !! but I digress …
the point here is Options !! – As you can read in our previous blog post (https://medullus.com/questions-to-ask-before-developing-an-application/)
In today’s blog post we outline the decision to App or not to App –
Early this year we were tasked to develop a solution for a logistics vendor which was facing challenges in proving the conditions of pallets during delivery at the time each vehicle leaves the warehouse.
Their first attempt with another software vendor was via an app that would click pictures and upload them tagged with each item in their ERP.
The challenge they faced was the syncing was taking too long and in certain devices it would lock up and hang the process. Also, the devices in use were not standard – some were using Samsung tabs running on different Android versions others in the main location were on iPad(s) running on iOS.
At this point we were called up to ‘rescue’ them and deliver a packaged solution to the initial problem.
Our first approach was to see if we can salvage and reuse any of the existing efforts. To this end we asked 2 vital questions ….. One of which should have been asked at the initial decision point.
- Why did they go the app route?
- Will / Can a network connection be present in the warehouses at all times?
In response to the first question they envisioned a scalable app upon which more functionalities can be added in time.
The simple answer to the second question was ‘YES’ (and a high speed one too!)
With these we went back to drawing board and see if we can introduce asynchronous programming in the sync routine in order to free up the device forms while the sync was in progress (keep an eye out for our upcoming blog on Asynchronous programming!)
Though the async calls resolved the app hang issues they were still unable to roll out A single type of hardware to all the users in all their warehouses.
Even though the app was not hanging during the sync routine … the sync was taking a looooooong time! After further analysis we found the bottleneck to be at the database connection point of the ERP.
At this point we went ahead with a responsive web application having its own database as a solution … this would make it a device-agnostic approach.
- HTML 5
- MVC 4
- ENTITY FRAMEWORK 5.0.0
- BOOTSTRAP 3.2.0
- SQL SERVER 2008R2 and above
The front end was developed in HTML5 using Bootstrap framework (https://getbootstrap.com/). The application will read from the ERP database (via a web service) in real-time and the uploaded pictures will be synced back using a database job that will run on the background every 4 hours (the closest dispatch location from any warehouse was 6 hours out and it took around 30 mins for the largest batch to sync … hence 4 hours was a good frequency level).
While some Android devices had the option to reduce image resolution the IOS devices lacked that feature in it’s kernel and it could not be achieved without using any third party solutions. In order to overcome this burden we wrote a compression engine which reduced the image size during upload to dB.
The code snippet of Image Handling and Save to SQL Server are shown below
note** – the error handling routines are omitted for ease of understanding!
Getting Images from Device Camera:
Cropping larger size Images:
Saving Images to SQL Server:
Note: This app is flexible to any device that support HTML5
Sam brings years of Business Intelligence and Software System Analysis experience to Medullus Systems. Prior to being a partner/co-founder at Medullus Sam lead several scale projects in the BI world in big name corporations like Bristol Myers, Frasenius, and ADP Payroll. Sam brings new ideas to improve BI in companies, products and projects. Sam is a certified Microsoft BI Developer and holds a Master in Computer Sciences. When asked about himself, Sam says “If you can’t measure it, you can’t manage it. For this reason alone, cutting edge software, that fits your business, needs to be on your radar screen and my cell phone number on your speed dial!” On his personal life Sam is a proud husband and father to 2 boys and enjoys his “cutting edge” drum-set, rock-shows and the New York Giants.