Field Work is a web application that supports offline editing and mapping of geospatial data using Cloudant Geo or Lucene Geo query. It also supports map editing, and syncs locally edited data back to an IBM Cloudant database.

Many field-based industries whose personnel are disconnected from communications networks -- often in remote areas or even underground -- can benefit from this kind of offline-first mobile application.

This is a Node.js app running on IBM Bluemix. Node.js code is JavaScript running on the server side. Node.js has a rich collection of add-on libraries that can be baked into your applications using the npm package manager. This application uses the Express web framework and the Cloudant Node.js library, amongst others, to power this web app.

Data

Spatial data for this demo comes from MassGIS and was converted into GeoJSON using
QGIS, which was then imported into Cloudant using the
couchimport CSV library. Data is fetched from Cloudant using Cloudant's Geo API.

Code

Fieldwork is an open-source project published under the Apache-2.0 license. This means that it is free for you to use, copy or modify in any way. Feel free to download the
code on Github and alter it to suit your own purposes before deploying it from your local own machine using the cf push command. Contributions to this project are welcome: either raise an Issue on Github or if you fix or improve something, Fork the code, alter it and send us a pull request.

Compression

By compressing or "zipping up" the search results within Fieldwork before sending the data to the browser, we can make savings on the volume of data being transferred between server and client. The smaller the amount
of data being transferred, the faster the service - especially in cirumstances where bandwidth is low, such as mobile applications. For instance, this request takes 39k to transfer uncompressed but less than 7k compressed - nearly a 6x saving. Compression is achieved using the Compression Express module.

Get Started

Drag the map to an area you want to see.

Click the Load Data button.

On the upper right of the map, choose the data types you want to see.

In the left pane, click the Edit Pins button. Pushpins appear on the map.

On the left side of the map, use the controls that appear to edit items. (Hover over a control for guidance.)

Click the Get Started panel in the bottom-left corner to see this help again.