GeoPal’s Mobile Workforce Management App – part 3

On our third and last post on GeoPal’s Mobile Workforce Management App, we will briefly explain how using modular architecture software enables our clients to deploy their own customised web modules, both on their development devices and on their production devices. 

Have you missed the previous posts on the mobile app? Find part 1, on our Product Roadmap, here. Part 2, on challenges encountered during development, is available here

A brief introduction of our modular architecture

As highlighted in a previous post, the GeoPal Mobile Platform App is structured in modules, each one comprising a limited set of functionalities.

These custom modules can be downloaded and installed on the phone as needed, based on a manifest file which is downloaded from a client’s SDK through its embedded web-server.

Whenever a client needs to make any changes to a module’s code, or adding/deleting it, a zip file is either created or updated. Once the App requests the updated manifest, that same zip file is called and is available to be downloaded. The App then carries out the update automatically and the new module is installed; once all modules have been installed, the updated UI is initialised. 

Top 3 modules on the GeoPal Platform

GeoPal Platform

The most important module is the GeoPal“Platform”. This module contains all the entities that you can persist, the ExtJS stores enabling access to them, their synchronisation facilities, a set of pre-made UI components and some utility classes. This module is also responsible for the initialisation of the other modules and provides the main classes that some key components in other modules should inherit from.

Mobile Api

GeoPal has a large set of pre-existing APIs, used in what we call “Scriptable Steps” and “Scriptable Webviews”, normally available as Steps in a Job. Such APIs are still very important to us and we therefore needed to implement them in the GeoPal Mobile Workforce Management App as well. This objective is achieved through the Mobile Api module, which implements most of them, making the API available where needed.


One of the prominent features of the GeoPal Mobile Platform App is its support for white-labelling. When the App starts, the White-labelling module acts as the default module for white-labelling purposes, overridden by an eventual [companyname]_Whitelabelling module. This module is used to apply a client’s logo and custom brand colour scheme to the App.

Additional customised modules

As the GeoPal Mobile Platform App replicates most of the UI capabilities of our native Android App, it made sense to split all these features into different modules, both to allow for easier maintenance and simply for logical reasons.

As a result, we have ended up with several modules, each implementing a subset of the UI features of the App. These modules can be swapped out in case they are not needed and can even be overridden and customised if necessary.

How to develop a web module on GeoPal

Developing a module is a really simple task. All the necessary documentation is available on the Mobile Platform’s SDK - which will be your entry point in any related development task - but essentially, it’s about writing a configuration file describing the icon that will appear on the homepage and then writing your own code in an index.html file that will be run in an isolated IFRAME.

The underlying Apache Cordova framework will be made accessible by inspecting the top-level window in JavaScript and the same goes for accessing the features made available by the Platform. If you need to debug your app, you just need Google Chrome, which is made available to you via a special URL just as if you were developing a website for your mobile phone.

How to deploy a custom web module on GeoPal

Deploying custom modules on the development app is incredibly easy: all you have to do is point the development app to your PC at its first start-up. From that moment on, the code will be downloaded against your PC.

Deploying your custom modules in the production environment involves logging in to GeoPal’s website with the appropriate user permissions. A dedicated section, available under the Configuration menu’ entry, will guide you to the deployment process enabling you to deploy the modules either to selected users or to everyone. Once your module has been uploaded and made available to a certain user, as soon as the GeoPal Mobile Workforce Management App on their phone is restarted or the user logs back in the new module will be downloaded and installed.

Conclusion – Made by Developers, for Developers

The entire GeoPal Mobile Platform App is built to streamline the development and the deployment process by giving developers full control while hiding unimportant details, enabling them to focus as much as possible on your company’s business rather than on our product.

This post concludes the series about the GeoPal Mobile Platform App.

We are very excited about this new product and would welcome your feedback. Don’t hesitate to contact us! 

Share This