Mitch Sundt edited this page Apr 22, 2016 · 18 revisions

Welcome to the software developer wiki for opendatakit!

Our user documentation is here

For setting up the development environment, see here.

Tips for debugging are here.

Some ideas for 1.x and perhaps 2.0 contributions are here. Notes on related projects in the UW-ICTD repository are here.

Two documents on the 1.x XForms specification are here and here. These are retained for historical purposes and give some insight into the development of the external group and field appearances.

Google Code -to- GitHub Issue Number Correspondence

The issue# on GitHub is +1 from the issue number from GoogleCode. When issue #'s are given, if they refer to "(on Google Code)", then +1 to find them on GitHub. This also applies to issue numbers in check-in comments prior to July 8, 2015.

Core-Team-Supported Projects

Released Projects

Project Name Details
Collect Data collection tool (Android)
Release Notes
Source Overview
google-play-services needed by Collect and the ODK 2.0 tools for Google Maps support
validate validate form definitions and display errors
briefcase locally archive submissions and migrate across Aggregate servers
Release Notes
Briefcase-Aggregate APIs
formUploader alternate entrypoint to briefcase to upload form definitions to Aggregate
Release Notes
aggregate webserver to host data-of-record from a data-collection effort
Release Notes
AppEngine Troubleshooting
Tomcat Troubleshooting
AWS Install
0.9.x -to- 1.x Migration
Master-Slave Migration
Deployment Configuration
Database Structure
Publisher Implementation Details
Briefcase-Aggregate APIs
ODK 2.0 Sync Protocol
Security Notes
Source Code Overview
Eclipse Setup
Uninstall Instructions
aggregate-components libraries used by Aggregate and test jigs
sample-forms example forms
breathcounter example app launched by Collect
foneastra standalone board for device control
httpclientandroidlib script to repackage Apache Http jars

Unreleased Projects

NOTE: the Android projects below all generally depend upon the playservices project.

Project Name Details
Android Library base library with AIDL defns
Android Common common library for consumer wrappers
Services webserver, database services and content providers
Combined Release Notes
Survey survey app (akin to Collect)
Combined Release Notes
Tables app-level navigation and table-level display graph and report
Sync synchronize data up to Aggregate
Combined Release Notes
ODK 2.0 Sync Protocol
AppDesigner design an ODK 2.0 app
Hosting on Static Webserver
Scan scan a mark-sense form
Release Notes
Web App
XLSX Scan form definition
Sensors Framework framework for connecting sensors
Release Notes
Sensor Drivers implementations for various sensors
Zebra Printer Driver Release Notes
Sync Client standalone app to access Aggregate using ODK 2.0 RESTful API
Suitcase retrieve data in csv form from Aggregate

Community-Supported Projects

Project Name Details
Build ODK Build graphical drag-and-drop form designer (see README.md)
Clinic Interfaces OpenMRS with ODK Collect
Clinic Patient Design

Unsupported Projects

If you want to become a maintainer for one of these projects, please contact us on the Google group for software engineering questions: opendatakit-developers@

Project Name Details
ActionBarSherlock no longer used; required for early builds of ODK 2.0 tools when backward compatibility to Android 2.x devices was deemed important
PlayLicensing no longer used; required for early builds of ODK Survey as we explored ways to distribute form definitions via the Google Play store
Submit background data submittal using the ODK 2.0 Synchronization protocol
Dropbox simple app that accepts and saves ODK Collect submissions to the file system
Manage control devices through push notifications
Design Document
RangeFinder APK for optically estimating range to objects
Tasks ?
Visualize ?
Voice IVR tree built upon Javarosa XForms
Listen ?