Automated Configuration Question

The short answer to the question is yes as there are several
approaches to this depending on your level of technical expertise.
Open Data Kit is a completely open source project so you can download
the source and build an customized app that does anything you want and
can fully automate the settings. Source is available at
http://code.google.com/p/opendatakit/wiki/SourceTab.

There are also some features built into Collect make this simpler.
For example you can create an Android shortcut that auto launches a
blank form. Once your form is on the phone, you can create a shortcut
on Android's desktop to jump straight into that form by following
these steps:

  • Long click on the desktop
  • Select "shortcut"
  • In the menu that pops up select "ODK Form"
  • In the menu that pops up select your form.

Instead of specifying the form submission address in collect's
preferences you can use a submission tag in the xform to specify the
submission's destination. Collect 1.1.7 and greater will pay attention
to the submission tag in the xform first, and if there is none
specified will default back to Collect's server preference to
determine the url to send the submission to.

Cheers,
Waylon

··· On 6/4/2012 7:20 AM, XXXX wrote: > Can I create an app based on odk that has a blank form preloaded and my aggregator url configured, so users don't need > training to configure it?

Note that what is currently lacking is any sort of background "Submit"
action that attempts to submit finalized forms whenever a network
connection is established.
This is still a user-directed action. Finalizing a form does not
automatically queue it for submission.

Mitch

··· On Mon, Jun 4, 2012 at 6:51 PM, W. Brunette wrote:

On 6/4/2012 7:20 AM, XXXX wrote:

Can I create an app based on odk that has a blank form preloaded and
my aggregator url configured, so users don't need
training to configure it?

The short answer to the question is yes as there are several
approaches to this depending on your level of technical expertise.
Open Data Kit is a completely open source project so you can download
the source and build an customized app that does anything you want and
can fully automate the settings. Source is available at
http://code.google.com/p/opendatakit/wiki/SourceTab.

There are also some features built into Collect make this simpler.
For example you can create an Android shortcut that auto launches a
blank form. Once your form is on the phone, you can create a shortcut
on Android's desktop to jump straight into that form by following
these steps:

  • Long click on the desktop
  • Select "shortcut"
  • In the menu that pops up select "ODK Form"
  • In the menu that pops up select your form.

Instead of specifying the form submission address in collect's
preferences you can use a submission tag in the xform to specify the
submission's destination. Collect 1.1.7 and greater will pay attention
to the submission tag in the xform first, and if there is none
specified will default back to Collect's server preference to
determine the url to send the submission to.

Cheers,
Waylon

--
Post: opendatakit@googlegroups.com
Unsubscribe: opendatakit+unsubscribe@googlegroups.com
Options: http://groups.google.com/group/opendatakit?hl=en

--
Mitch Sundt
Software Engineer
University of Washington
mitchellsundt@gmail.com

Mitch,

How difficult would that be to build? It seems very useful.

Also, I looked for that issue/enhancement at
http://code.google.com/p/opendatakit/issues/list? and didn't find it.

The use case would be:
Users click on complete form, which then sends it to a queue.
The queue is checked periodically and based on connection status (available
IP) is sent.
Users can look at the queue if there's a question, but its like your
outgoing mail (in most older clients), you cannot edit it.
Queue statistics may also be needed, e.g. how many sent.

  • James
··· On Tue, Jun 5, 2012 at 10:20 AM, Mitch S wrote:

Note that what is currently lacking is any sort of background "Submit"
action that attempts to submit finalized forms whenever a network
connection is established.
This is still a user-directed action. Finalizing a form does not
automatically queue it for submission.

Mitch

On Mon, Jun 4, 2012 at 6:51 PM, W. Brunette wbrunette@gmail.com wrote:

On 6/4/2012 7:20 AM, XXXX wrote:

Can I create an app based on odk that has a blank form preloaded
and my aggregator url configured, so users don't need
training to configure it?

The short answer to the question is yes as there are several
approaches to this depending on your level of technical expertise.
Open Data Kit is a completely open source project so you can download
the source and build an customized app that does anything you want and
can fully automate the settings. Source is available at
http://code.google.com/p/opendatakit/wiki/SourceTab.

There are also some features built into Collect make this simpler.
For example you can create an Android shortcut that auto launches a
blank form. Once your form is on the phone, you can create a shortcut
on Android's desktop to jump straight into that form by following
these steps:

  • Long click on the desktop
  • Select "shortcut"
  • In the menu that pops up select "ODK Form"
  • In the menu that pops up select your form.

Instead of specifying the form submission address in collect's
preferences you can use a submission tag in the xform to specify the
submission's destination. Collect 1.1.7 and greater will pay attention
to the submission tag in the xform first, and if there is none
specified will default back to Collect's server preference to
determine the url to send the submission to.

Cheers,
Waylon

--
Post: opendatakit@googlegroups.com
Unsubscribe: opendatakit+unsubscribe@googlegroups.com
Options: http://groups.google.com/group/opendatakit?hl=en

--
Mitch Sundt
Software Engineer
University of Washington
mitchellsundt@gmail.com

--
Post: opendatakit@googlegroups.com
Unsubscribe: opendatakit+unsubscribe@googlegroups.com
Options: http://groups.google.com/group/opendatakit?hl=en

--
James Dailey
skype: jdailey

You can open an issue, but it is unlikely that we would build this. We
gladly accept code contributions, though :wink:

First, the mechanism is somewhat broken because of the way user credentials
were stitched into the user interaction in 1.1.7. Rather than assuming the
credentials were correct and just supplying them, the interaction first
sends a request without credentials, then if credentials are requested,
presents the user/password prompt to confirm the credentials saved in the
preferences. You would want to add parameters to the InstanceUploaderTask
to automatically include the credentials on the first transmission
attempt. Should be an easy change.

Next, you would implement at least two BroadcastReceivers listening for
changes in network status -- one monitoring changes in WiFi connectivity,
the other changes in Cellular connectivity. You might need to add some
Preferences options to choose which of those would be used to send the
submissions; there should also be preferences settings to enable/disable
this functionality, and to set the interval between upload attempts, and to
save the NEXT upload attempt datetime. Whenever the broadcast receivers
detected an available connection, they would determine if now is after the
NEXT upload attempt datetime. If appropriate, they would then gather the
list of finalized submissions; if there are no attempt submissions, it sets
a NEXT upload attempt datetime that is farther out in the future; if there
are N submissions, it sets a timer callback for 3N minutes into the future
(that might be another BroadcastReceiver -- I don't remember). And then it
determines whether or not an InstanceUploaderTask is already active and
fires one off if it isn't (this is an issue with Android 2.x). This test
needs to track any InstanceUploaderTask initiated by the user as well as
any initiated by one of the broadcast receivers -- you'd likely need to
save the active InstanceUploaderTask in the Collect application object.

Mitch

··· On Tue, Jun 5, 2012 at 4:24 PM, James Dailey wrote:

Mitch,

How difficult would that be to build? It seems very useful.

Also, I looked for that issue/enhancement at
http://code.google.com/p/opendatakit/issues/list? and didn't find it.

The use case would be:
Users click on complete form, which then sends it to a queue.
The queue is checked periodically and based on connection status
(available IP) is sent.
Users can look at the queue if there's a question, but its like your
outgoing mail (in most older clients), you cannot edit it.
Queue statistics may also be needed, e.g. how many sent.

  • James

On Tue, Jun 5, 2012 at 10:20 AM, Mitch S mitchellsundt@gmail.com wrote:

Note that what is currently lacking is any sort of background "Submit"
action that attempts to submit finalized forms whenever a network
connection is established.
This is still a user-directed action. Finalizing a form does not
automatically queue it for submission.

Mitch

On Mon, Jun 4, 2012 at 6:51 PM, W. Brunette wbrunette@gmail.com wrote:

On 6/4/2012 7:20 AM, XXXX wrote:

Can I create an app based on odk that has a blank form preloaded
and my aggregator url configured, so users don't need
training to configure it?

The short answer to the question is yes as there are several
approaches to this depending on your level of technical expertise.
Open Data Kit is a completely open source project so you can download
the source and build an customized app that does anything you want and
can fully automate the settings. Source is available at
http://code.google.com/p/opendatakit/wiki/SourceTab.

There are also some features built into Collect make this simpler.
For example you can create an Android shortcut that auto launches a
blank form. Once your form is on the phone, you can create a shortcut
on Android's desktop to jump straight into that form by following
these steps:

  • Long click on the desktop
  • Select "shortcut"
  • In the menu that pops up select "ODK Form"
  • In the menu that pops up select your form.

Instead of specifying the form submission address in collect's
preferences you can use a submission tag in the xform to specify the
submission's destination. Collect 1.1.7 and greater will pay attention
to the submission tag in the xform first, and if there is none
specified will default back to Collect's server preference to
determine the url to send the submission to.

Cheers,
Waylon

--
Post: opendatakit@googlegroups.com
Unsubscribe: opendatakit+unsubscribe@googlegroups.com
Options: http://groups.google.com/group/opendatakit?hl=en

--
Mitch Sundt
Software Engineer
University of Washington
mitchellsundt@gmail.com

--
Post: opendatakit@googlegroups.com
Unsubscribe: opendatakit+unsubscribe@googlegroups.com
Options: http://groups.google.com/group/opendatakit?hl=en

--
James Dailey
skype: jdailey

--
Post: opendatakit@googlegroups.com
Unsubscribe: opendatakit+unsubscribe@googlegroups.com
Options: http://groups.google.com/group/opendatakit?hl=en

--
Mitch Sundt
Software Engineer
University of Washington
mitchellsundt@gmail.com

I want to clarify that in the next major revision of tools there will
be something that handles auto submitting when connectivity is
available. This functionality won't be part of Collect it will be part
of a different tool.However, it is unlikely will build it in the
current set of tools so you probably won't see this before the end of
the year.

Cheers,
Waylon

··· On Wed, Jun 6, 2012 at 10:41 AM, Mitch S wrote: > You can open an issue, but it is unlikely that we would build this. We > gladly accept code contributions, though ;-) > > First, the mechanism is somewhat broken because of the way user credentials > were stitched into the user interaction in 1.1.7. Rather than assuming the > credentials were correct and just supplying them, the interaction first > sends a request without credentials, then if credentials are requested, > presents the user/password prompt to confirm the credentials saved in the > preferences. You would want to add parameters to the InstanceUploaderTask > to automatically include the credentials on the first transmission attempt. > Should be an easy change. > > Next, you would implement at least two BroadcastReceivers listening for > changes in network status -- one monitoring changes in WiFi connectivity, > the other changes in Cellular connectivity. You might need to add some > Preferences options to choose which of those would be used to send the > submissions; there should also be preferences settings to enable/disable > this functionality, and to set the interval between upload attempts, and to > save the NEXT upload attempt datetime. Whenever the broadcast receivers > detected an available connection, they would determine if now is after the > NEXT upload attempt datetime. If appropriate, they would then gather the > list of finalized submissions; if there are no attempt submissions, it sets > a NEXT upload attempt datetime that is farther out in the future; if there > are N submissions, it sets a timer callback for 3N minutes into the future > (that might be another BroadcastReceiver -- I don't remember). And then it > determines whether or not an InstanceUploaderTask is already active and > fires one off if it isn't (this is an issue with Android 2.x). This test > needs to track any InstanceUploaderTask initiated by the user as well as any > initiated by one of the broadcast receivers -- you'd likely need to save the > active InstanceUploaderTask in the Collect application object. > > Mitch > > > On Tue, Jun 5, 2012 at 4:24 PM, James Dailey wrote: >> >> Mitch, >> >> How difficult would that be to build? It seems very useful. >> >> Also, I looked for that issue/enhancement at >> http://code.google.com/p/opendatakit/issues/list? and didn't find it. >> >> The use case would be: >> Users click on complete form, which then sends it to a queue. >> The queue is checked periodically and based on connection status >> (available IP) is sent. >> Users can look at the queue if there's a question, but its like your >> outgoing mail (in most older clients), you cannot edit it. >> Queue statistics may also be needed, e.g. how many sent. >> >> - James >> >> >> On Tue, Jun 5, 2012 at 10:20 AM, Mitch S wrote: >>> >>> Note that what is currently lacking is any sort of background "Submit" >>> action that attempts to submit finalized forms whenever a network connection >>> is established. >>> This is still a user-directed action. Finalizing a form does not >>> automatically queue it for submission. >>> >>> Mitch >>> >>> >>> On Mon, Jun 4, 2012 at 6:51 PM, W. Brunette wrote: >>>> >>>> On 6/4/2012 7:20 AM, XXXX wrote: >>>> > Can I create an app based on odk that has a blank form preloaded >>>> > and my aggregator url configured, so users don't need >>>> > training to configure it? >>>> >>>> The short answer to the question is yes as there are several >>>> approaches to this depending on your level of technical expertise. >>>> Open Data Kit is a completely open source project so you can download >>>> the source and build an customized app that does anything you want and >>>> can fully automate the settings. Source is available at >>>> http://code.google.com/p/opendatakit/wiki/SourceTab. >>>> >>>> There are also some features built into Collect make this simpler. >>>> For example you can create an Android shortcut that auto launches a >>>> blank form. Once your form is on the phone, you can create a shortcut >>>> on Android's desktop to jump straight into that form by following >>>> these steps: >>>> * Long click on the desktop >>>> * Select "shortcut" >>>> * In the menu that pops up select "ODK Form" >>>> * In the menu that pops up select your form. >>>> >>>> Instead of specifying the form submission address in collect's >>>> preferences you can use a submission tag in the xform to specify the >>>> submission's destination. Collect 1.1.7 and greater will pay attention >>>> to the submission tag in the xform first, and if there is none >>>> specified will default back to Collect's server preference to >>>> determine the url to send the submission to. >>>> >>>> >>> action="https://my-opendatakit.appspot.com/submission" /> >>>> >>>> Cheers, >>>> Waylon >>>> >>>> -- >>>> Post: opendatakit@googlegroups.com >>>> Unsubscribe: opendatakit+unsubscribe@googlegroups.com >>>> Options: http://groups.google.com/group/opendatakit?hl=en >>> >>> >>> >>> >>> -- >>> Mitch Sundt >>> Software Engineer >>> University of Washington >>> mitchellsundt@gmail.com >>> >>> -- >>> Post: opendatakit@googlegroups.com >>> Unsubscribe: opendatakit+unsubscribe@googlegroups.com >>> Options: http://groups.google.com/group/opendatakit?hl=en >> >> >> >> >> -- >> James Dailey >> skype: jdailey >> >> >> -- >> Post: opendatakit@googlegroups.com >> Unsubscribe: opendatakit+unsubscribe@googlegroups.com >> Options: http://groups.google.com/group/opendatakit?hl=en > > > > > -- > Mitch Sundt > Software Engineer > University of Washington > mitchellsundt@gmail.com > > -- > Post: opendatakit@googlegroups.com > Unsubscribe: opendatakit+unsubscribe@googlegroups.com > Options: http://groups.google.com/group/opendatakit?hl=en