You are on page 1of 51

OpenDataKit:MakingitWork

Foryou
FrancisSmart

VideoIntroduction
View5MinuteVideo

Foundathttps://opendatakit.org/

WhatarethebenefitsofUsingMobile
DataCollection?
Imagefromwaterfortheages.org

Imagefrom:www.poimapper.com

BenefitsofUsingMobileDataCollection
Datacanbeuploadedasitiscollected/needed.
Errorcheckingcanbeembeddedintothe
collectionsdevice.
Dataisbothcollectedanddigitized
simultaneously,reducinglaborcostsand
potentialtransmissionerrors.
Mediadatacanbeeasilycollectedand
integrated:suchphotos,videos,audiorecordings,
orGPS.
Complexdatacanhaveembeddedinstructions.
Verificationcheckscanbeembeddedintothe
device(photooffield/family/GPSetc.)

MajorBenefitsofUsingODK
ODKisfree.Thecostofmobiledatacollection
softwareisgenerallyexorbitant.
ODKsupportfree.Mostcompaniesprovide
supportfortheirproductsonlyatsignificant
additionalcosts.
ODKisopensource.ODKiscreatedbypublic
researchinstitutionsforpublicresearch.

ODKOpenDataKit
CreatedbyUniversityofWashington ComputerScienceandEngineering

https://opendatakit.org/

SelectedODKUsers,Projects,orFunders

ImplementationList
Hasprojectsin37countriesand1atthe
InternationalSpaceStation
ODKisdeployedontensofthousandsof
devicessubmittinghundredsofthousandsof
formsaday.
52CompanieslistODKformbuildingand
deploymentservicesontheODKwebsite.

SelectedODKImplementationCompanies

SoftwareComponentsIntroducedinthisworkshop
3.CloudServer:ODK
Aggregate
2.FormCreator:XLSForm

5.RealTime
Graphs:Google
FusionTables

1.MobileDeviceSoftware:ODKCollect

4.DataAccess:ODK
Briefcase

Slightlymodifiedimagefromwww.pma2020.org

SoftwareComponentsOutline
Day1
1. ODKCollect
2. ODKXLSForm BasicUses
3. ODKAggregate FormUpload,MediaUpload,Form
Download
4. ODKBriefcase Submittedforms
Day2
1. ODKXLSForm AdvancedUses
2. ODKAggregatePublish/GoogleFusionTables
3. Completion Certificates

1.ODKCollect
Easyswiperighttoleftnavigation.
Easyinstallation(androidappsstore).
Candelivertext,images,video,andsound.
Cancollecttext,video,sound,GPS.

ShowDemoFormonAndroid

2.XLSForm Builder
BuildformsinMSExcel.
Onelineperentry.(Documentationhttp://xlsform.org/)

2.XLSForm Builder Converter


FindXLSform.execonverterinfolderxlsform.
Useittoconvertexcelformstoxls forms.

(Draganddropexcelfileintoxlsform.exe)

2.XLSForm Builder Converter


XLSform.exewilldisplayerrorsinpopup
window.

IfnoerrorsthenXLSform.exewillsavexls convertedfile

infolderWorkshop\xlsform\output.

2.XLSForm Builder

Nowletuslookathowto
buildanODKform!

2.XLSForm Builder
FindTwoDocumentsODK1.xlsxandODK2.xlsx
ThesearesampleODKforms.
Startwithodk1.xlsx
Openodk1.xlsx

2.XLSForm Builder
Tabs:

Survey provideslistofitemstobegivento
user.
Choices provideslistofchoicesfromwhich
selecttypeitemswilldraw.
Settings areformspecificattributessuchas
formtitleandid.

2.XLSForm Builder>SurveyTab
Manyoftheobjectsinodk1.xlsxhavemouseover
helpavailable.

2.XLSForm Builder>SurveyTab
Eachrowisanitem.Itemreferstoeitheraninput
oroutputobject.

2.XLSForm Builder>SurveyTab
Eachcolumnisanitemattribute.

2.XLSForm Builder>SurveyTab
Usecellcoloringoptionstoorganizeitems.Blank
rowswillnotbeevaluated.

2.XLSForm Builder>SurveyTab
Mostitemattributesareoptional.However,type and
namearerequired forallitems.

2.XLSForm Builder>SurveyTab

Type isthemostbasicdefiningfeatureofanitem.Itmustbe
selectedfromalistofavailabletypes.Typesarecase
sensitive.
Name isthenameanitemisidentifiedby.Itmaybe
composedofletters,numbers,and_.However,itmuststart
witheitheraletteror_.

2.XLSForm Builder>SurveyTab
Someattributesallowforanalternativelanguage
optiontobeselected.Theattributelabel isan
exampleofthis.

2.XLSForm Builder>SurveyTab>Basictypes
Note itemsdisplaytexttouser.

Labelisthetextdisplayedtotheuser.Anote type
itemwillnotsaveanyuserinputdata.

2.XLSForm Builder>SurveyTab>Basictypes
Acknowledge itemsgiveamessagetotheuser.

2.XLSForm Builder>SurveyTab>Basictypes
Integer itemsallowtheusertoinputaninteger
(wholenumber:1,3,12,3,9283,etc.)

2.XLSForm Builder>SurveyTab>Basictypes
Decimalitemsallowtheusertoinputanumberwith
decimalplaces(3.14159,92,2.34,etc.).

Decimal itemsaremoregeneral(acceptmoreoptions)than
integeritems.

2.XLSForm Builder>SurveyTab>Basictypes
Textitemsallowtheusertoinputatextvalue(Joao,
Purchase,34,etc.)

Textitemsarethemostgeneralformofinput.All
otherbasicinputclasscouldbepassedtotext
items.

2.XLSForm Builder>SurveyTab>Basictypes

Ingeneralwewanttochoosetheinputtypewhich
accountsforallpossibleinputneedswhilealso
beingasrestrictiveaspossible,inorderto
minimizeerrors. Therefore,text itemsshouldbe
theleastpreferred.

2.XLSForm Builder>SurveyTab>Basictypes
Exercise1
LookatSampleHouseholdSurvey Part1.Chooseyourpreferred
itemtypeforitemsA0A10usingthebasictypes:
1. note
2. acknowledge
3. decimal
4. integer
5. text

(IgnoretheODKLogiccolumnfornow.)

2.XLSForm Builder>SurveyTab>Selectiontypes
Howwasthat?
Didanyoftheitemtypesseemapoorfitforthesurvey
questions?

2.XLSForm Builder>SurveyTab>Selectiontypes
Howwasthat?
Didanyoftheitemtypesseemapoorfitforthesurvey
questions?

QuestionsA7andA10probablyseemproblematic.
A7.Gender:___Male___Female

A10.ProvinceofResidence:___Gaza___Inhambane
___Maputo
Forthesetypesofquestionswehaveadifferentitemtype.

2.XLSForm Builder>SurveyTab>Selectiontypes
select_one listnametypeitemsallowitemstohave
answersrestrictedtoonlythoseappearingonadefinedlist.
Inthiscasealistnamedyes_no.

2.XLSForm Builder>SurveyTab>Selectiontypes

Inordertoseewhatlistofchoiceavailableforlistyes_no
welookatthechoicestab.

Wecanseethereisreallyonlytwooptionsavailable,Yes
andNo,unsurprisingly.Inthiscasenameisthevalue
returnedtothedataforeachchoice.

2.XLSForm Builder>SurveyTab>Selectiontypes
Sometimeswewanttohaveaspecificlistofoptionsaswell
astheoptionofamoregeneralresponseselect_one
listnamecombinedwithtexttypeitemsmakethis
possible.

Note:Thereisspeciallogicrelatingtothetext itemwhich
allowsittoappearonlyconditionalupona6beingother.
Wewillintroducethislater.

2.XLSForm Builder>SurveyTab>Selectiontypes

Inordertoseewhatlistofchoiceavailableforlistyes_no
welookatthechoicestab.

Wecanseethereisnowthreeoptionsavailablenow:Yes,
No,andother.

2.XLSForm Builder>SurveyTab>Selectiontypes
Sometimeswewanttoallowmultiplechoicesfromout
selectionlisttobeselected.select_multiple list_name
makesthisfeaturepossible.

Note:Thereisspeciallogicrelatingtothetext itemA8
whichallowsittoappearonlyconditionalupona7having
otherselected.Moreonthisthislater.

2.XLSForm Builder>SurveyTab>Selecttypes
Exercise2
LookatSampleHouseholdSurvey Part2.Chooseyourpreferred
itemtypeforitemsB0B3usingthebasictypes:
1. select_one listname
2. select_one listname_other
3. select_multiple listname
4. select_multiple listname_other

(IgnoretheODKLogiccolumnfornow.)

2.XLSForm Builder>SurveyTab>FormLogic
Oneofthemajorbenefitsofbeingabletododigitaldata
collectionisuseofinternallogictocontrolinputs.ODK
hasseveralobjectattributesavailabletoprovideinput
controls.

2.XLSForm Builder>SurveyTab>FormLogic
constraint attributeisusedtorestrictinput
optionsavailable.Theconstraintmustbetruein
orderfortheinputtobeaccepted.

Forb3thismeansthattheinputvaluemustbe
greaterthan0.The(.)isaplaceholderforthe
valueofb3.

2.XLSForm Builder>SurveyTab>FormLogic
odk usesmacrotypenotation(${name})to
referenceinputvaluesindifferentitems.

Forb5thismeansthattheinputvaluemustbe
lessthanthevalueinputforb3.

2.XLSForm Builder>SurveyTab>FormLogic
required attributeworkssimilartotheconstraint
exceptthatitrequiresthecurrentitemtohavea
valueinordertoadvancethesurvey

Itcanalsotakelogicaloperators.

2.XLSForm Builder>SurveyTab>FormLogic
relevantattributespecifiesaconditionunder
whichitemisnotdisplayed.Bydefaultallitems
aredisplayed.Ifrelevantisfalsethenthe
currentitemisnotdisplayed.

Inthiscase,b9askswhethertoskipthenext
question.Iftheanswerisno(0)thendisplaythe
nextquestion.

2.XLSForm Builder>SurveyTab>FormLogic
calculationattributecombinedwithcalculate
typeallowsforimpendentevaluationofmathor
logic.

Inthiscase,b7isequaltob3+b4+b5.

2.XLSForm Builder>SurveyTab>FormLogic
Odk usescommonlogicaloperators.
x=y>xisequaltoy
x>y>xisgreaterthany
x>=y>xisgreaterthanorequaltoy
x<y>xislessthany
x<=y>xislessthanorequaltoy
Aswellasspecialalookupfunctionforselect_multiple.
selected(x,y)>yisinx
Logicaloperatorscanalsobecombinedwiththemodifiers.
x=yandx>z>xisequaltoyandxisgreaterthanz
x<yorx>z>xislessthanyorxisgreaterthanz
not(x=y)>xisnotequaltoy
x!=y>xisnotequaltoy

2.XLSForm Builder>SurveyTab>FormLogic
Exercise ExpressinODKsytaxforthefollowinglogic:
1.
2.
3.
4.
5.
6.
7.
8.

Thecurrentvalueisgreaterthan0. .>0.>0
Thecurrentbalueislessthanitema4..<${a4}
Thecurrentvalueisgreaterthanorequalto18and
lessthan120. .>=18and.<120
Thecurrentvalueisnotequal10.not(.=10)
Thecurrentvalueisequaltoa5ora6..=${a5}or
.=${a6}
Thecurrentvalueisgreaterthana5plusa6..>${a5}+
${a6}
Thecurrentvalueisnotequaltoa5ora6.not(.=${a5}
or.=${a6})
Oneofthecurrentselectionsisother.selected(.,
other)

2.XLSForm Builder>SurveyTab>FormLogic
Exercise ExpressinODKsytaxforthefollowinglogic:
1.
2.
3.
4.
5.
6.
7.
8.

Thecurrentvalueisgreaterthan0. .>0
Thecurrentbalueislessthanitema4..<${a4}
Thecurrentvalueisgreaterthanorequalto18and
lessthan120..>=18and.<120
Thecurrentvalueisnotequal10.not(.=10)
Thecurrentvalueisequaltoa5ora6..=${a5}or
.=${a6}
Thecurrentvalueisgreaterthana5plusa6..>${a5}+
${a6}
Thecurrentvalueisnotequaltoa5ora6.not(.=${a5}
or.=${a6})
Oneofthecurrentselectionsisother.selected(.,
other)

2.XLSForm Builder>SurveyTab>FormLogic
LogicalAttributesExcercise
Usethefollowingattributetypestodefine
appropriatelogicforhouseholdsurveypart1and
part2.

Attributes:
relevant
constraint
required
calculate

2.XLSForm Builder>SurveyTab

FinalExerciseoftheDay
CodeallofhouseholdsurveyPart1andPart2as
andODKexcelform.(Hint,useodk1asastarting
place.)

You might also like