Sandsack* App
* bags filled with sand (crumble of glass, to be precise)
Overview
I have designed and built an app supporting the Emergency Response Team of Canton of Aargau in controlling flood situations. Built using Expo (ReactNative).
Details
Heavy rains can create floods, filling cellars or rendering streets unusable to traffic. Water flows can be redirected by the placement of bags - requiring quick action.
When on site, the emergency response team needed a tool to increase their effectiveness by providing the ability to:
calculate the amount of bags required, and
order some bags to the emergency site.
Together with the Cantonal Disaster Response Unit, I designed and built a smartphone app available on iOS and Android.
Use case #1: Calculation of required sandbags
Sand bags are not placed randomly to create walls, but according to a pre-defined algorithm. One use case is to calculate the number of bags required to create these walls and how they should be layered.
Two inputs are required for that: length and height. The app then calculates various information:
# of layers
# bags per layer
# bags overall
# palettes (bags can be delivered in palettes)
The app also displays the costs raised by the production of these sandbags, as they can be ordered by any surrounding firefighting organization.
Use case #2: Calculation of transport costs & Order
The sandbags are held in one or two central storage locations, and if required, produced on demand by the KKE. In an emergency, they need to be delivered to the emergency site, which can be initiated by the supervisor on site.
The supervisor can collect the bags in one of the central locations, or have them delivered to the emergency site. In the latter case, they can use the Google Maps integration to calculate the distance, and the delivery costs are also displayed.
Further, an order can be placed which is then processed by the central team. To avoid recurring costs, no server-side components were built.
Using the built-in webhook plugin, the order is sent into a previously configured Slack channel.
Use case #3: Links to documents & Administration
The central administration can also publish links, effectively making urgently needed guideline, regulation and other documents available to the supervisors on the emergency site.
This can be controlled directly from within the app, if the user has been given permission. Also, they can configure enabled hubs from which sandbag production takes place.
Technical stuff
Built using the framework Expo, which is basically a way to easily deploy ReactNative apps. As React is based on web technologies, there was also a lot of JavaScript and CSS involved. The framework React Native Elements helped a lot to get a consistent look and feel across devices. Visual Studio Code was used as a coding IDE.
Only two backend services were used: