Request for Proposals

KoBo, Inc, a 501(c)(3) nonprofit organization registered in Massachusetts, is requesting bids for the implementation of changes to ODK Collect application to add audio recording functionality

Proposal Due Date: September 9, 2020 (midnight EST)

Send Proposals to: KoBo Inc., tenders@kobotoolbox.org, subject line "RFP - Android development"

For questions about this RFP: Contact Tino Kreutzer, Executive Director, tino.kreutzer@kobotoolbox.org, subject line "RFP - Android development"

Terms of Reference

Background

KoBoToolbox is a free, open source data collection and management software platform specifically designed for humanitarians and researchers working in complex emergencies and resource-poor environments. It was created in 2005 by Drs. Patrick Vinck and Phuong Pham, faculty now based at the Harvard Humanitarian Initiative (HHI), with the public version being released in 2011. In 2013, with funding from USAID, UNOCHA and IRC partnered with KoBoToolbox to take the existing tool and transform it into a comprehensive platform for humanitarian data collection. The resulting platform was launched in 2014 as a free tool with unlimited data collection and storage for humanitarian actors (https://kobo.humanitarianresponse.info). The tool is based on or closely related to widely supported open source technologies, such as ODK Collect, XLSForm, and XForms. In 2019, KoBo, Inc. was founded as a nonprofit organization to ensure the long-term sustainability of KoBoToolbox. The mission of KoBo, Inc. is to host and maintain KoBoToolbox, a data collection, management, and visualization platform used globally for humanitarian actions and to support open source data systems and technology for global development, peace, human rights and humanitarian action.

Objectives

The objective of this project is to add native audio recording capabilities to the ODK Collect application. Specifically, this includes two features: 1) Enabling background recordings of entire (or partial) interviews; and 2) enabling audio recording for audio type questions to be created natively without the need of external applications.

ODK Collect cannot, at the moment, create full audio recordings of entire interviews. While technically possible, using another application to record the interview in parallel and linking it with the collected data is too complicated.

The ODK Collect application allows for creating audio recordings of individual interview responses but requires the presence of another application for this purpose. Such applications often are not free, have many confusing settings, and generally add to the training requirements for enumerators.

Deliverables

The deliverables are two related features to the ODK Collect Android application:

1) Enabling background recordings of entire (or partial) interviews

Use cases

  • As a user I'd like to be able to record audio and submit them as part of the form without leaving the form page
  • As a survey administrator, I'd like to record entire surveys (or sections of a survey), not only single questions. The goal is to have a parallel audio file that would allow us to compare actual responses with how they were coded by the enumerator.

Feature details

  • The recording should be done in the background while the enumerator asks questions and receives responses
  • The presence of a new metaquestion, similar to the existing audit metaquestion, in the XForm will indicate that background audio recording has been requested by the form author
  • The presence of a corresponding setting in pyxform to control the XForm metaquestion in XLSForm
  • There should be a configurable setting in the application on whether to allow background recordings. If a form requests it but the application settings have not allowed it, then the user should see a notification asking them to enable it. However, not enabling the setting should not prevent someone to fill the form.
  • File size is an issue when submitting in some environments, but for this feature we should assume that sufficient bandwidth is available.
  • Optional: This work could include a setting in Collect to send XML submissions without attachments, so that recordings can be copied offline without stopping regular submissions.

2) Adding native audio recording for audio type questions

Use cases

  • Recording interview responses
  • Recording focus group discussions
  • Recording environmental samples (e.g. birds, traffic, etc.)

Feature details

  • For each audio question, users should be able to start, pause, and stop recording, delete recording, play and seek recording, pause playback
  • In General Settings, users should also be able to choose between different recording settings:
    • Record audio with various codecs, such as lossless (e.g. FLAC), a speech-optimized lossy codec, such as AMR, and a general-purpose lossy codec, such as MP3.
    • Choose recording quality (stereo/mono, sample rate, and bitrate as appropriate)

Implementation methodology to be applied

  • Both software features are to be added to the application ODK Collect (https://github.com/getodk/collect), a free and open source tool for data collection on Android devices.
  • The features need to be integrated in the master branch of the repository. Specifically created forks of the repository are not acceptable. This requires that the features are developed in concertation with the ODK developer community (https://forum.getodk.org/) and to follow the contributing guidelines (https://github.com/getodk/collect/blob/master/docs/CONTRIBUTING.md).
  • Code should be well documented, include test coverage, and be done so as to expand the size of the compiled application as little as possible.
  • The features should be developed in an agile or similar manner to allow for frequent technical and user acceptance testing.

Expertise required

  • At least 5 years of relevant software development experience
  • Proven track record developing Android applications
  • Understanding of XForms, OpenRosa, and prior experience developing features for ODK Collect are desirable

Contract duration

The assignment will last for 12 weeks, starting from the date of awarding the contract.

Payment schedule

  1. Contract signature: 20%
  2. Feature 1 testable in compiled test application (APK): 30%
  3. Feature 2 testable in compiled test application (APK): 30%
  4. Feature 1 and feature 2 merged into master branch of ODK Collect: 20%

Reporting

The selected firm will report to Tino Kreutzer (Executive Director) and John Milner (Lead Developer).

Evaluation criteria

Technical competency (80%):

Criteria Points
At least 5 years of relevant software development experience 10
Proven track record developing Android applications 50
Understanding of XForms 30
Understanding of OpenRosa 30
Experience developing features for ODK Collect 50
effectiveness of proposed methodology 20
effectiveness of proposed timeframes 10
TOTAL 200

Price (20%):

Financial proposals will be evaluated following completion of the technical evaluation. The eligible bidder with the lowest evaluated cost will be awarded 50 points. Financial proposals from other bidders will receive prorated points based on the relationship of the bidder's price to that of the lowest evaluated cost. For example, if bidder A has the lowest cost at $10, they receive 50 points. If bidder B's price is $30, they receive 17 points (10/30*50).

Eligibility requirements:

Only bidders who meet the following criteria are eligible to take part in tenders issued by KoBo, Inc.:

  1. are financially solvent and able to conduct business operations in a professional and successful manner;
  2. are not involved in any court proceedings which may affect their ability to conduct business or deliver the goods or services tendered;
  3. do not appear on the World Bank's list of "Listing of ineligible firms" or "Listing of firm's letters of reprimand" posted at www.worldbank.org;
  4. do not appear on the OFAC List of Specially Designated Nationals and Blocked Persons published by the United States Government.