GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together. In order to fill out forms with survey participants, you must first load blank forms into the Collect App. If you are using ODK Aggregate, you will see a list of available forms. Before downloading blank forms from Aggregate to Collect, a form has to be uploaded.
Select and download the forms you want. XML documents will be listed even if they are not valid XForms. This will reopen the form instance, which you are then free to edit. To perform analysis on data collected with the Collect app, you will need to get the filled forms off of the devices. This can be simpler than setting up a server if you are only using a small number of devices or when there is no Internet access.
It can also be helpful to recover from submission failures. Blank values in the form are sent to google sheets as cells with a space and not as empty cells. When you are testing for empty cells, you might not get the correct results.
To make sure you get the correct results, you could:. This prevents Google Sheets from guessing at the data type and applying a format that may not be appropriate e. Raw values may be used in any kind of computation and the apostrophes only are visible when editing a value. You may choose to manually apply a format for certain columns if desired. Using Google Drive as a server, filled forms are sent to the first sheet in a given spreadsheet, no matter what its name is.
If you use one spreadsheet to keep a form definition and to collect filled forms make sure the sheet you expect to be filled is in the first place. They are indicated with the crossed-out eye icon. Skip to content. Permalink Dismiss Join GitHub today GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together. Sign up. Branch: master. Find file Copy path. Cannot retrieve contributors at this time. Raw Blame History. Managing Forms in Collect.
Find and download forms.Because data collection on ODK is entirely offline, it enables data collection in regions where network connectivity might be an issue. For this, data can be collected seamlessly for as many participants as possible into corresponding Android device and upon completion, all the data can be uploaded once to the server in a location with connectivity.
Once you have completed the above steps, you can collect the survey data completely offline! Upon completion, you move to a location with network connectivity to upload to uSurvey. What do I need to collect data offline? Typically Jelly Bean and newer versions should be fine.
The Android device needs to have some space to keep collected data If your survey does not require the upload of media files, MB space would usually be big enough. But having 1GB dedicated for uSurvey is best. Enter your interviewer credentials and download the survey allocated to you Once you have completed the above steps, you can collect the survey data completely offline! Just follow the steps below and you are good to go. After completing a survey, you submit completed forms by clicking on the "Send Finalized Form" button.
Read the Docs.GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together. You can open a specific form or lists of empty forms, saved forms, finalized forms or sent forms.
This section describes how to launch ODK Collect and open its activities from an external app. The code samples go in your custom Android application. For more details on intents, you can refer to these Android docs.
If the URI of a form or instance is known, it can be viewed or edited. Skip to content. Permalink Dismiss Join GitHub today GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together. Sign up. Branch: master. Find file Copy path. Cannot retrieve contributors at this time. Raw Blame History. Understanding Intents An Intent is a messaging object you can use to request an action from another app component.
Launching Collect activities from external application To start one of ODK Collect's activities: Create a new intent using an appropriate action.
Set the type of the created intent. Start an activity using the intent.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window.A blank form is a. In order to fill out forms with survey participants, you must first load blank forms into the Collect App. Select Get blank forms on the app home screen to browse available forms and download them to your device.
If you are using ODK Aggregate, you will see a list of available forms. Select the ones you would like download, and tap Get Selected. Before downloading blank forms from Aggregate to Collect, a form has to be uploaded. Select and download the forms you want. XML documents will be listed even if they are not valid XForms. The settings menu may look different on your device. From the internal storage screen, select Explore to open the file manager.
The Explore option opens a file manager that you can use to move forms into Collect. If a form includes images or other mediathose files have to be loaded to the device along with the form. Media files should be placed in a folder labeled form-name -media. Completed filled-in form instances can be edited after they have been saved. This will reopen the form instance, which you are then free to edit.
Form instances are listed by name, which is one reason it can be helpful to name the form instance after filling it out. Doing this from within the Collect app marks the forms as sent.
Sent forms are no longer editable, but they remain viewable until they are deleted. Blank values in the form are sent to google sheets as cells with a space and not as empty cells.
When you are testing for empty cells, you might not get the correct results. To make sure you get the correct results, you could:. For local form management, use ODK Briefcase to pull Finalized form instances to your local computer.
You can copy form instances from the device using adb pullhowever this will not update the state of the form to Sent.Encrypted forms provide a mechanism to keep your data private even when using http: for communications e.
Encrypted forms may also enable Google App Engine deployments and deployments using other web database services, e. Encrypted forms apply asymmetric public key encryption at the time the form is finalized within ODK Collect. The non-encrypted data is available on the ODK Collect device during data collection and whenever a form is saved without marking it as complete. Once you mark a form as complete finalize itODK Collect will generate a random bit symmetric key, encrypt the form contents and all attachments with this key, then construct a submission manifest which describes the encrypted submission and an asymmetric-key encryption of the symmetric key used for the encryption.
While ODK Collect attempts to remove all unencrypted copies of a finalized form and its attachments from the device, because ODK Collect uses third-party applications for image capture, etc.
Furthermore, because of the way an SD card writes and deletes information, there is a possibility of this data being recoverable from the free space on the SD card. Your organization should investigate the extra steps needed to ensure all data is deleted from the SD cards on your ODK Collect devices and should establish procedures to periodically wipe and reinstall those devices.
Encrypting a form ensures that the finalized form is not readable and is not tampered with. However, there is nothing preventing a malicious adversary from the wholesale replacement of a finalized form with falsified data or the synthesis and submission of extra data — these are not contingencies that encrypted forms seek to address.
This is required for decryption to be successful. If both are specified, XLSForm will generate an encrypted-form definition. Skip to the following sections to see how to create a public-private key pair and specify the public key. Within this tag, the method attribute should always be form-data-post.Installing ODK Aggregate on a Google App Engine - ODK for Field Scientists #4
The action attribute should be the url to which the submission should be posted; this is the ODK Aggregate website url with Aggregate. Finally, what identifies the form as an encrypted form is the presence of a base64RsaPublicKey attribute. This should be the base64 encoding of the RSA public key that ODK Collect uses to encrypt the symmetric encryption key it creates to encrypt a finalized instance of this form a different symmetric encryption key is created for every finalized form.
If you are on Windows, open a PowerShell or command prompt window. The following command will create a bit private key and write it to the MyPrivateKey. This may complain about a missing configuration file. You can ignore this warning. Move the MyPrivateKey. It does not have a password encoding it, so anyone can decrypt your data if they have access to this file.
This is the private key file that you will give to ODK Briefcase when decrypting the data. Open the MyPublicKey. This very-long string will become the base64RsaPublicKey attribute in the resulting encrypted form definition. Submissions will be encrypted when marked as complete. Note ODK Aggregate cannot meaningfully publish encrypted forms to Google Spreadsheets or Fusion Tables since the encryption obscures the entire contents of the form and ODK Aggregate never possesses the asymmetric key required to decrypt the form.
When using encrypted forms, ODK Aggregate serves only as a data aggregation point — you must download, decrypt, and export the data using ODK Briefcase to access the unencrypted data. Note Encrypting a form ensures that the finalized form is not readable and is not tampered with. Right-click, choose Extract files… and extract the files from the downloaded zip archive.
You can define any value for the instanceID field, but it must be unique across all collected surveys. If you use punctuation other than colon and dash, or any special characters, please test thoroughly to ensure that ODK Aggregate correctly handles those characters during submissions and when the form is pulled down to ODK Briefcase.
If it is not, run the following command in Powershell:.GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
It supports a wide range of question and answer types, and is designed to work well without network connectivity. ODK Collect renders forms into a sequence of input prompts that apply form logic, entry constraints, and repeating sub-structures.
Users work through the prompts and can save the submission at any point. Finalized submissions can be sent to and new forms downloaded from a server. Collect supports location, audio, images, video, barcodes, signatures, multiple-choice, free text, and numeric answers.
It can even accept answers from other apps on your device. Skip to content. Permalink Dismiss Join GitHub today GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign up. Branch: master.
Find file Copy path. Cannot retrieve contributors at this time. Raw Blame History. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window.It is important to upgrade to newer ODK Aggregate versions as they come out.
The ODK developers are constantly upgrading the libraries we use with newer, safer, versions. The older your software, the greater the number of vulnerabilities in it.
If you are using Google App Engine as we recommend, your hosting environment is being continuously updated. Google is continuously updating features and removing support for older features in this environment.
The Aggregate development team is committed to supporting Google App Engine, so we update our application as the platform changes. If you do not upgrade gradually as new versions come out, your installation may stop working or cease to have a viable upgrade path.
ODK JavaRosathe underlying form rendering library is updated about annually. Those updates add new functions, features, and occasionally data types. New features are slowly added to ODK Aggregate, too.
If you are unable to log onto your server, you will need to search for the version in the application logs. To do that:. In the 1. If no version information is displayed even after you log in, then you are running an extremely old version of ODK Aggregate; in that case follow this cheat sheet:.
Publishing to Google is broken prior to RC2 due to a change in Google infrastructure. You need to know the exact instance name that was used in prior installs for your username and password to continue to work.
If you add a space or change capitalization or spelling, the passwords will be invalid you just need to re-run the installer with the correct string to correct the problem.
See here for the work-around. The server no longer works with ODK Sync 2. Other than the need to flush this cache, and the need to delete any ODK Tables data before upgrading, this should be a seamless upgrade from ODK Aggregate 1.
If you were testing out ODK Tables, you should delete all tables before upgrading, as the database schema has changed. Google Fusion Tables publisher now provides the links to the tables of all the repeat groups, the top-level record, and a left-outer-join view of the first repeat group and top-level record.
This breaks all existing publishers you need to republish. For more details on this, see OAuth2-service. Added a Published Through and an Owner column to the Published Data table to communicate the progress of the publisher and who is receiving the data. Once configured, you will then be able to create new publishers for your data it is not possible to resume or restore publishing to the original publishers. To avoid having to create new publishers that re-publish already-published data, follow these steps before upgrading:.
The database tables for the new publishers and older publishers do not overlap, so if you roll back to the ODK Aggregate 1. See this for details. This was the pre