Coconut

 Photo showing Coconut Surveillance being used to collect household data in Zanzibar.

Coconut is a next generation mobile data collection and protocol guiding tool. Like many data collection tools, Coconut can define forms, render them on a device and aggregate the results. What makes Coconut different is that it assumes unreliable access to the cloud. It uses a database optimized for opportunistic cloud and peer-to-peer synchronization whenever a connection is available. Forms are defined and results are analyzed via a cloud service accessed via a web browser, and any updates to forms will be synced to the deployed devices as soon as an Internet connection is available. As the collected data are synced from the devices back to the cloud a real-time dashboard enables decision makers to understand what is happening in the field and make remote adjustments as necessary.

Coconut was designed for users with limited technology experience needing to implement a sometimes complex health protocol. Deployments to date include guiding malaria surveillance in Tanzania, midwife visits in the Philippines and nurses at mobile STI clinics in Zimbabwe.

The initial simplistic interface for data collection resulted in some data quality problems. These were resolved by adding features that encourage protocol guidance, such as instant data validation, skip logic to show/hide fields and dynamic decision support messages. However, partners in the field are often frustrated at the beginning of the requirements definition process. They expect a process to be as simple as designing a paper form, but creating a system that will stop data errors at the point of entry requires a careful understanding of data relationships and much time is spent discussing concepts, such as mutually exclusive and exhaustive options.

While Coconut will enable users to create simplistic data collection systems, we have found that it is always worth the effort of considering the broader process and workflow and the ultimate purpose of the data. Indeed, if you can make the user’s job easier by guiding them, or help them value the data they collect more by reusing it on subsequent visits, they will be more invested in its ultimate success.

KEY FEATURES

Coconut enables the efficient development of mobile data collection and management by storing data locally on any device and synchronizing data with a remote server when a network connection is available.

Coconut includes the following major features:

  • Role-based (username and password) security
  • Support for multiple languages
  • Integrated form designer
  • Collect data offline
  • Real time reporting for monitoring and managing the data collection process.
  • Share data using massively scalable, cost-effective cloud storage or private servers
  • Scale from one mobile device to thousands
  • Distribute application updates automatically to remote mobile devices.

TECHNICAL DETAILS

Coconut shares many technologies with Tangerine. Major technologies used include:

Coconut uses CouchDB for data storage and synchronization, Backbone.js for MVC, backbone-couchdb to connect backbone to CouchDB, and D3 for charts.

Coconut renders JSON defined forms in a browser and then saves the results to CouchDB. Coconut can be run on a computer or installed on a mobile phone or tablet. Coconut features a built-in form designer. Coconut uses a version customized for JSON form export. The form is saved to the CouchDB and may then be used by your application. Coconut uses Backbone.js for its MVC (Model View Controller) framework. All of the backbone models and views have their own file and are in app/models and app/views respectively. app/app.js is responsible for tying it all together.

PARTNERS

Coconut was originally developed by RTI and continues to be enhanced to meet the needs of several projects. We encourage other organizations to use Coconut and to contribute to its further development.

LICENSING

Open source logo.RTI has published Coconut as open source software with the expectation that others will use it, contribute back to the source code and engage in a community trying to help one another and identify best practices for these kind of projects. Coconut is open source licensed Licensed under the Apache License, Version 2.0.

SOFTWARE AND DOCUMENTATION

GitHub logo.Contribute to Coconut on GitHub!