Mobile Shop Assistant
Hours: ~700. Produced: 2009 – 2010.
The Mobile Shop Assistant is one of the largest projects I ever built. I was contracted by a Dutch company which wanted to give its Web Shop Framework a great degree of interaction with actual physical locations (partner shops). I was fully responsible for the architecture and coding of both the Desktop platform and the Mobile platform of their new system.
I also made a video presentation available, featuring a hands-on demonstration of working with the two Applications which make up this Project.
These two Applications are: the Desktop Shop Assistant (in short, the DSA), which is the Server Application, and the Mobile Shop Assistant (MSA), which is the Client Application.
The purpose of this system is to provide a Shop with a connection to its web front-end. Furthermore, through the use of the MSA, changes can be made to the web front-end directly from between the shelves of the store.
The Desktop Shop Assistant
This acts as the Server Application. All the Mobile Shop Assistants in the Shop connect to it via WiFi. This is a .Net Framework 3.5 C# Application.
There is only one DSA in each Shop and dozens if not hundreds of Windows Mobile Devices which run the Mobile Shop Assistant. All those devices connect to various WiFi antennas in the Shop and communicate with the DSA.
The Desktop Shop Assistant can initiate data synchronization events whenever the Shop’s supervisor considers it necessary. This usually happens after the Shop closes or before it opens. The data synchronization events are used for maintenance and updates to all the Mobile Shop Assistant devices operational in the shop.
This (below) is the Reports screen of the DSA. We’re looking at the Products section. This section is used whenever the Shop’s supervisors or cashiers have to print a detailed invoice to any of the customers.
The DSA also has reports about Barcode reading failures on the MSA devices in the Shop, order Delivers and more.
And this is how a detailed invoice (Invoice Report) looks like. The difference between a cash register invoice and a DSA-issued invoice is that the DSA-issued invoice is more official and can be stamped and used in public institutions such as banks.
Charts are an important aspect of any Application which deals with a lot of data. Since the Desktop Shop Assistant is a nexus through which hundreds of Shop Products pass every hour, it is only natural for it to have a wide selection of data representation methods, such as this Product Delivery Slots Chart.
But enough about the DSA. Let’s talk about the Application where the real action takes place ::- ).
The Mobile Shop Assistant
In every Shop where our system is installed, we have a large number of Windows Mobile (6) devices, which run the Mobile Shop Assistant. This is a .Net 3.5 Compact Framework C# Application.
The Login system is only used by Shop employees when they use the MSA for administrative purposes, such as modifying Shop Product Information or processing orders submitted to the Shop’s web page.

Mobile Shop Assistant Login
In the Orders Review screen, a Shop employee can see what orders have been submitted to the Shop’s web page, categorized by delivery moment.
This is important because the collection of some orders can begin two days prior to delivery, but fresh products must only be collected on the delivery day.

Mobile Shop Assistant Order Review
Here in the Order Details screen (below), various statistical details about the Order can be seen. The employees of the shop, like cashiers or delivery personnel can use this to complete the order, while the people in charge with picking up items from the order can see if they are ready to submit the order back to the Desktop Shop Assistant.
Normal customers of the shop can also use the handheld device to view their current shopping list. In this screen, they can see how much they spent so far.

Mobile Shop Assistant Order Details
This is how the Order Products screen looks like. It’s a list of all Products which have to be collected.
When Products are collected, the red flags visible now, turn green. When a Product has not been completely collected, we use blue flags, or if it’s unavailable on the Shop’s shelves, we use black flags. Yellow flags are used if there are price differences between what we scanned and what the Order had in its listing.

Mobile Shop Assistant Order Products
While collecting an Order, the employee (or customer) can see pictures with the Product, along with name, quantity, price and other statistical data (such as discounts and offers).
The four numbers in the left and right corners represent gathered and required number of items for the currently viewed Product and for the entire Order.

Mobile Shop Assistant Order Product Info
Naturally, since this is a multi-user Application, we got ourselves a nice little permissions system. Here, the Shop’s supervisor or IT responsible can set up permissions for various employees and can also modify global permissions for the customers of the Shop.
The permissions are divided into four categories. Each of these categories influences a number of different actions which the Mobile Shop Assistant can perform.

Mobile Shop Assistant Administration
This screen below, while similar to the Order Product Details screen above, is quite different in functionality. This is an employee-only screen where Shop Products can be edited. They can also be pulled from the Shop’s web page from here.

Mobile Shop Assistant Product Info
At last, this is the Customer selection & editing screen. This screen is featured prominently whenever new orders are created by the Shop’s employees in the name of a Customer (for example if the Customer called the Shop’s hotline). Customer data can also be modified here.

Mobile Shop Assistant Customer Selection
Technical Aspects
Since this is a customer application which is still in use, I cannot reveal too many of its inner workings. It runs on Motorola devices with 2D or 3D bar code scanners and it uses Motorola’s framework for interacting with the hardware of the device.
The update system is of particular interest because I used an evolution of my Wildcard Updater. The new system is capable of installing, rolling back and doing maintenance for any device in the world. Literally. We got a nice register with every Desktop Shop Assistant running at any of our client Shops.
Using this register, we can do preferential updates and per-Shop customizations to any DSA or any of the MSA clients of that DSA. There were cases when we were asked to perform a certain modification for the device used by Argentinean driver of a certain shop.
As it’s probably obvious by now, our Framework is a 3-level System. The Mobile Shop Assistant connects to the Desktop Shop Assistant which, in turn, connects to the Shop’s web page. The Shop’s web page is in fact an implementation of our Web Shop Framework.
More details about the Mobile Shop Assistant Project are available in its video presentation which I mentioned earlier.




