Multi-tenant ODK server

Greetings -

We are working with an organization that makes heavy use of ODK. Currently,
a single-tenant server instance is deployed for each of their various
divisions / projects. (This is done for security reasons, in the sense that
there can be no visibility between projects etc.) This single-tenant model
doesn't scale particularly well as the organization's use of ODK grows.

I am wondering if anyone has interest in, or knowledge of, a multi-tenant
ODK server (preferably open source) that provides strong partitioning /
security between users of the system and scales horizontally. This might be
something already in existence but most likely would be a development
effort. At this point, I have no idea how much (or little) work it would be
to adapt the existing code to support multi-tenancy... I am simply trying
to gauge whether or not others are interested and/or working on this
problem.

Thanks,

-- Jared

Cool Jared. Good to see there is interest in this. The Smap Server, which
is compatible with odkCollect and is fully open source, is multi-tenant
capable however there is no user interface to create new organisations. In
the next release (end of Feb) I will be adding this user interface.

Smap already supports multiple projects that isolate surveys from each
other. So somebody with an Analyst role can only see surveys in the
projects that they have been given access to. With the new organisation
capability a user with an "Admin" role will only be able to create projects
and gain access to projects within their organisation.

More details on this release and previous releases are available at

regards

Neil

··· On Thu, Jan 30, 2014 at 10:42 AM, Jared B. Reimer wrote:

Greetings -

We are working with an organization that makes heavy use of ODK.
Currently, a single-tenant server instance is deployed for each of their
various divisions / projects. (This is done for security reasons, in the
sense that there can be no visibility between projects etc.) This
single-tenant model doesn't scale particularly well as the organization's
use of ODK grows.

I am wondering if anyone has interest in, or knowledge of, a multi-tenant
ODK server (preferably open source) that provides strong partitioning /
security between users of the system and scales horizontally. This might be
something already in existence but most likely would be a development
effort. At this point, I have no idea how much (or little) work it would be
to adapt the existing code to support multi-tenancy... I am simply trying
to gauge whether or not others are interested and/or working on this
problem.

Thanks,

-- Jared

--

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


You received this message because you are subscribed to the Google Groups
"ODK Community" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to opendatakit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--

Smap Consulting http://smap.com.au/| Mobile Data Collection Solutions
Application Developer - neilpenman@gmail.com minqiang.huang@gmail.com
Twitter: @dgmsot
Skype: ianaf4you
Phone: +61 402 975 959
Blog: http://blog.smap.com.au http://smap.com.au/blog

Talk to SurveyCTO http://www.surveycto.com/index.html

ODK Aggregate was designed to enable multi-tentant hosting of multiple
independent ODK Aggregate WAR files on a single Tomcat server. Each would
enforce its own data security by being configured to write into a different
database and/or table schema. You just need to run the installer script,
specify different database parameters, and rename the .WAR file to another
name (e.g., 'instance2') and deploy that to your server. You can then
access it via http://your.server.com/instance2 -- if that name is ROOT, on
Tomcat, that is a special name and maps to http://your.server.com

The issues are that the ODK Aggregate configuration has never been tuned to
be efficient. Each instance has its own database thread pool, its own
background worker thread pool, etc. and if you are processing large video
clips or exporting data to files, each instance can take gobs of main
memory because we did not implement streaming data processing (in part
because GAE has request limits and transient storage restrictions making
this very difficult to do on that platform).

We also designed the installer to impose choices to eliminate all
dependencies across WARs and to make no assumptions about the webserver
configuration. If you start making assumptions, about either, you can make
the system more memory efficient.

The SurveyCTO team has done an impressive job of working through all of
these issues.

If you are comfortable with their security measures, you may want to simply
have them host your data collection efforts.

It will be far easier and far less painful than wading into this yourself.

That said, if you have code changes that improve functionality, please
contribute them back under Apache 2 license, and if you have configuration
tips, please consider documenting them in our Wiki (we will happily give
you access).

Mitch

··· On Wed, Jan 29, 2014 at 3:49 PM, Neil Penman wrote:

Cool Jared. Good to see there is interest in this. The Smap Server, which
is compatible with odkCollect and is fully open source, is multi-tenant
capable however there is no user interface to create new organisations. In
the next release (end of Feb) I will be adding this user interface.

Smap already supports multiple projects that isolate surveys from each
other. So somebody with an Analyst role can only see surveys in the
projects that they have been given access to. With the new organisation
capability a user with an "Admin" role will only be able to create projects
and gain access to projects within their organisation.

More details on this release and previous releases are available at
http://blog.smap.com.au

regards

Neil

On Thu, Jan 30, 2014 at 10:42 AM, Jared B. Reimer jared@cascadeo.comwrote:

Greetings -

We are working with an organization that makes heavy use of ODK.
Currently, a single-tenant server instance is deployed for each of their
various divisions / projects. (This is done for security reasons, in the
sense that there can be no visibility between projects etc.) This
single-tenant model doesn't scale particularly well as the organization's
use of ODK grows.

I am wondering if anyone has interest in, or knowledge of, a multi-tenant
ODK server (preferably open source) that provides strong partitioning /
security between users of the system and scales horizontally. This might be
something already in existence but most likely would be a development
effort. At this point, I have no idea how much (or little) work it would be
to adapt the existing code to support multi-tenancy... I am simply trying
to gauge whether or not others are interested and/or working on this
problem.

Thanks,

-- Jared

--

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


You received this message because you are subscribed to the Google Groups
"ODK Community" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to opendatakit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--

Smap Consulting http://smap.com.au/| Mobile Data Collection Solutions
Application Developer - neilpenman@gmail.com minqiang.huang@gmail.com
Twitter: @dgmsot
Skype: ianaf4you
Phone: +61 402 975 959
Blog: http://blog.smap.com.au http://smap.com.au/blog

--

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


You received this message because you are subscribed to the Google Groups
"ODK Community" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to opendatakit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

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

Thanks, Mitch.

We were just discussing this with somebody else. One conversation on the
subject is here:

https://groups.google.com/forum/#!msg/opendatakit-developers/lv8bc7rd630/pKLY8zr86FMJ

Since that exchange, we've done a lot to optimize things. In particular, we
gave up on BoneCP entirely because it had some quirks that meant that each
server kept open too many connections; we went with C3P0 instead, which has
worked far better. Also, we did some optimizations of the watchdog
processes to run less frequently and use fewer connections.

In the end, though, we have mostly kept with the Aggregate architecture and
in fact share the same .war files across multiple instances. Each virtual
server still takes quite a lot of resources, but generally the system works
well.

Best,

Chris

··· On Thu, Feb 6, 2014 at 1:03 PM, Mitch Sundt wrote:

Talk to SurveyCTO http://www.surveycto.com/index.html

ODK Aggregate was designed to enable multi-tentant hosting of multiple
independent ODK Aggregate WAR files on a single Tomcat server. Each would
enforce its own data security by being configured to write into a different
database and/or table schema. You just need to run the installer script,
specify different database parameters, and rename the .WAR file to another
name (e.g., 'instance2') and deploy that to your server. You can then
access it via http://your.server.com/instance2 -- if that name is ROOT,
on Tomcat, that is a special name and maps to http://your.server.com

The issues are that the ODK Aggregate configuration has never been tuned
to be efficient. Each instance has its own database thread pool, its own
background worker thread pool, etc. and if you are processing large video
clips or exporting data to files, each instance can take gobs of main
memory because we did not implement streaming data processing (in part
because GAE has request limits and transient storage restrictions making
this very difficult to do on that platform).

We also designed the installer to impose choices to eliminate all
dependencies across WARs and to make no assumptions about the webserver
configuration. If you start making assumptions, about either, you can make
the system more memory efficient.

The SurveyCTO team has done an impressive job of working through all of
these issues.

If you are comfortable with their security measures, you may want to
simply have them host your data collection efforts.

It will be far easier and far less painful than wading into this yourself.

That said, if you have code changes that improve functionality, please
contribute them back under Apache 2 license, and if you have configuration
tips, please consider documenting them in our Wiki (we will happily give
you access).

Mitch

On Wed, Jan 29, 2014 at 3:49 PM, Neil Penman neilpenman@gmail.com wrote:

Cool Jared. Good to see there is interest in this. The Smap Server,
which is compatible with odkCollect and is fully open source, is
multi-tenant capable however there is no user interface to create new
organisations. In the next release (end of Feb) I will be adding this user
interface.

Smap already supports multiple projects that isolate surveys from each
other. So somebody with an Analyst role can only see surveys in the
projects that they have been given access to. With the new organisation
capability a user with an "Admin" role will only be able to create projects
and gain access to projects within their organisation.

More details on this release and previous releases are available at
http://blog.smap.com.au

regards

Neil

On Thu, Jan 30, 2014 at 10:42 AM, Jared B. Reimer jared@cascadeo.comwrote:

Greetings -

We are working with an organization that makes heavy use of ODK.
Currently, a single-tenant server instance is deployed for each of their
various divisions / projects. (This is done for security reasons, in the
sense that there can be no visibility between projects etc.) This
single-tenant model doesn't scale particularly well as the organization's
use of ODK grows.

I am wondering if anyone has interest in, or knowledge of, a
multi-tenant ODK server (preferably open source) that provides strong
partitioning / security between users of the system and scales
horizontally. This might be something already in existence but most likely
would be a development effort. At this point, I have no idea how much (or
little) work it would be to adapt the existing code to support
multi-tenancy... I am simply trying to gauge whether or not others are
interested and/or working on this problem.

Thanks,

-- Jared

--

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


You received this message because you are subscribed to the Google
Groups "ODK Community" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to opendatakit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--

Smap Consulting http://smap.com.au/| Mobile Data Collection Solutions
Application Developer - neilpenman@gmail.com minqiang.huang@gmail.com
Twitter: @dgmsot
Skype: ianaf4you
Phone: +61 402 975 959
Blog: http://blog.smap.com.au http://smap.com.au/blog

--

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


You received this message because you are subscribed to the Google Groups
"ODK Community" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to opendatakit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
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


You received this message because you are subscribed to the Google Groups
"ODK Community" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to opendatakit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

The multi-tenant version of the Smap Server has been released. You can
download it from here http://www.smap.com.au/downloads.shtml. Each
organisations projects share the same database and the same war files.

In terms of the requirement for "strong partitioning / security between
users of the system" I haven't done any significant security assessments
yet. If you are thinking of setting up a bureau service that would probably
be a good idea.

regards

Neil

··· On Fri, Feb 7, 2014 at 5:27 AM, Christopher Robert wrote:

Thanks, Mitch.

We were just discussing this with somebody else. One conversation on the
subject is here:

https://groups.google.com/forum/#!msg/opendatakit-developers/lv8bc7rd630/pKLY8zr86FMJ

Since that exchange, we've done a lot to optimize things. In particular,
we gave up on BoneCP entirely because it had some quirks that meant that
each server kept open too many connections; we went with C3P0 instead,
which has worked far better. Also, we did some optimizations of the
watchdog processes to run less frequently and use fewer connections.

In the end, though, we have mostly kept with the Aggregate architecture
and in fact share the same .war files across multiple instances. Each
virtual server still takes quite a lot of resources, but generally the
system works well.

Best,

Chris

On Thu, Feb 6, 2014 at 1:03 PM, Mitch Sundt mitchellsundt@gmail.comwrote:

Talk to SurveyCTO http://www.surveycto.com/index.html

ODK Aggregate was designed to enable multi-tentant hosting of multiple
independent ODK Aggregate WAR files on a single Tomcat server. Each would
enforce its own data security by being configured to write into a different
database and/or table schema. You just need to run the installer script,
specify different database parameters, and rename the .WAR file to another
name (e.g., 'instance2') and deploy that to your server. You can then
access it via http://your.server.com/instance2 -- if that name is ROOT,
on Tomcat, that is a special name and maps to http://your.server.com

The issues are that the ODK Aggregate configuration has never been tuned
to be efficient. Each instance has its own database thread pool, its own
background worker thread pool, etc. and if you are processing large video
clips or exporting data to files, each instance can take gobs of main
memory because we did not implement streaming data processing (in part
because GAE has request limits and transient storage restrictions making
this very difficult to do on that platform).

We also designed the installer to impose choices to eliminate all
dependencies across WARs and to make no assumptions about the webserver
configuration. If you start making assumptions, about either, you can make
the system more memory efficient.

The SurveyCTO team has done an impressive job of working through all of
these issues.

If you are comfortable with their security measures, you may want to
simply have them host your data collection efforts.

It will be far easier and far less painful than wading into this yourself.

That said, if you have code changes that improve functionality, please
contribute them back under Apache 2 license, and if you have configuration
tips, please consider documenting them in our Wiki (we will happily give
you access).

Mitch

On Wed, Jan 29, 2014 at 3:49 PM, Neil Penman neilpenman@gmail.comwrote:

Cool Jared. Good to see there is interest in this. The Smap Server,
which is compatible with odkCollect and is fully open source, is
multi-tenant capable however there is no user interface to create new
organisations. In the next release (end of Feb) I will be adding this user
interface.

Smap already supports multiple projects that isolate surveys from each
other. So somebody with an Analyst role can only see surveys in the
projects that they have been given access to. With the new organisation
capability a user with an "Admin" role will only be able to create projects
and gain access to projects within their organisation.

More details on this release and previous releases are available at
http://blog.smap.com.au

regards

Neil

On Thu, Jan 30, 2014 at 10:42 AM, Jared B. Reimer jared@cascadeo.comwrote:

Greetings -

We are working with an organization that makes heavy use of ODK.
Currently, a single-tenant server instance is deployed for each of their
various divisions / projects. (This is done for security reasons, in the
sense that there can be no visibility between projects etc.) This
single-tenant model doesn't scale particularly well as the organization's
use of ODK grows.

I am wondering if anyone has interest in, or knowledge of, a
multi-tenant ODK server (preferably open source) that provides strong
partitioning / security between users of the system and scales
horizontally. This might be something already in existence but most likely
would be a development effort. At this point, I have no idea how much (or
little) work it would be to adapt the existing code to support
multi-tenancy... I am simply trying to gauge whether or not others are
interested and/or working on this problem.

Thanks,

-- Jared

--

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


You received this message because you are subscribed to the Google
Groups "ODK Community" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to opendatakit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--

Smap Consulting http://smap.com.au/| Mobile Data Collection Solutions
Application Developer - neilpenman@gmail.com minqiang.huang@gmail.com
Twitter: @dgmsot
Skype: ianaf4you
Phone: +61 402 975 959
Blog: http://blog.smap.com.au http://smap.com.au/blog

--

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


You received this message because you are subscribed to the Google
Groups "ODK Community" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to opendatakit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
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


You received this message because you are subscribed to the Google Groups
"ODK Community" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to opendatakit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--

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


You received this message because you are subscribed to the Google Groups
"ODK Community" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to opendatakit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--

Smap Consulting http://smap.com.au/| Mobile Data Collection Solutions
Application Developer - neilpenman@gmail.com minqiang.huang@gmail.com
Twitter: @dgmsot
Skype: ianaf4you
Phone: +61 402 975 959
Blog: http://blog.smap.com.au http://smap.com.au/blog

It's not explicitly designed as an ODK server, but CommCare HQ is also a
widely used, reliable, multitenant option that supports ODK workflows and
APIs (the CommCare client is built on top of ODK).

We have free cloud options (http://www.commcarehq.org/home/) and everything
is open source and available to install yourself here:
https://github.com/dimagi/commcare-hq

Full disclosure: I work for the company that makes CommCare.

cheers,
Cory

··· On Mon, Feb 24, 2014 at 5:47 AM, Neil Penman wrote:

The multi-tenant version of the Smap Server has been released. You can
download it from here http://www.smap.com.au/downloads.shtml. Each
organisations projects share the same database and the same war files.

In terms of the requirement for "strong partitioning / security between
users of the system" I haven't done any significant security assessments
yet. If you are thinking of setting up a bureau service that would probably
be a good idea.

regards

Neil

On Fri, Feb 7, 2014 at 5:27 AM, Christopher Robert crobert@surveycto.comwrote:

Thanks, Mitch.

We were just discussing this with somebody else. One conversation on the
subject is here:

https://groups.google.com/forum/#!msg/opendatakit-developers/lv8bc7rd630/pKLY8zr86FMJ

Since that exchange, we've done a lot to optimize things. In particular,
we gave up on BoneCP entirely because it had some quirks that meant that
each server kept open too many connections; we went with C3P0 instead,
which has worked far better. Also, we did some optimizations of the
watchdog processes to run less frequently and use fewer connections.

In the end, though, we have mostly kept with the Aggregate architecture
and in fact share the same .war files across multiple instances. Each
virtual server still takes quite a lot of resources, but generally the
system works well.

Best,

Chris

On Thu, Feb 6, 2014 at 1:03 PM, Mitch Sundt mitchellsundt@gmail.comwrote:

Talk to SurveyCTO http://www.surveycto.com/index.html

ODK Aggregate was designed to enable multi-tentant hosting of multiple
independent ODK Aggregate WAR files on a single Tomcat server. Each would
enforce its own data security by being configured to write into a different
database and/or table schema. You just need to run the installer script,
specify different database parameters, and rename the .WAR file to another
name (e.g., 'instance2') and deploy that to your server. You can then
access it via http://your.server.com/instance2 -- if that name is ROOT,
on Tomcat, that is a special name and maps to http://your.server.com

The issues are that the ODK Aggregate configuration has never been tuned
to be efficient. Each instance has its own database thread pool, its own
background worker thread pool, etc. and if you are processing large video
clips or exporting data to files, each instance can take gobs of main
memory because we did not implement streaming data processing (in part
because GAE has request limits and transient storage restrictions making
this very difficult to do on that platform).

We also designed the installer to impose choices to eliminate all
dependencies across WARs and to make no assumptions about the webserver
configuration. If you start making assumptions, about either, you can make
the system more memory efficient.

The SurveyCTO team has done an impressive job of working through all of
these issues.

If you are comfortable with their security measures, you may want to
simply have them host your data collection efforts.

It will be far easier and far less painful than wading into this
yourself.

That said, if you have code changes that improve functionality, please
contribute them back under Apache 2 license, and if you have configuration
tips, please consider documenting them in our Wiki (we will happily give
you access).

Mitch

On Wed, Jan 29, 2014 at 3:49 PM, Neil Penman neilpenman@gmail.comwrote:

Cool Jared. Good to see there is interest in this. The Smap Server,
which is compatible with odkCollect and is fully open source, is
multi-tenant capable however there is no user interface to create new
organisations. In the next release (end of Feb) I will be adding this user
interface.

Smap already supports multiple projects that isolate surveys from each
other. So somebody with an Analyst role can only see surveys in the
projects that they have been given access to. With the new organisation
capability a user with an "Admin" role will only be able to create projects
and gain access to projects within their organisation.

More details on this release and previous releases are available at
http://blog.smap.com.au

regards

Neil

On Thu, Jan 30, 2014 at 10:42 AM, Jared B. Reimer jared@cascadeo.comwrote:

Greetings -

We are working with an organization that makes heavy use of ODK.
Currently, a single-tenant server instance is deployed for each of their
various divisions / projects. (This is done for security reasons, in the
sense that there can be no visibility between projects etc.) This
single-tenant model doesn't scale particularly well as the organization's
use of ODK grows.

I am wondering if anyone has interest in, or knowledge of, a
multi-tenant ODK server (preferably open source) that provides strong
partitioning / security between users of the system and scales
horizontally. This might be something already in existence but most likely
would be a development effort. At this point, I have no idea how much (or
little) work it would be to adapt the existing code to support
multi-tenancy... I am simply trying to gauge whether or not others are
interested and/or working on this problem.

Thanks,

-- Jared

--

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


You received this message because you are subscribed to the Google
Groups "ODK Community" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to opendatakit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--

Smap Consulting http://smap.com.au/| Mobile Data Collection
Solutions
Application Developer - neilpenman@gmail.com minqiang.huang@gmail.com
Twitter: @dgmsot
Skype: ianaf4you
Phone: +61 402 975 959
Blog: http://blog.smap.com.au http://smap.com.au/blog

--

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


You received this message because you are subscribed to the Google
Groups "ODK Community" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to opendatakit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
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


You received this message because you are subscribed to the Google
Groups "ODK Community" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to opendatakit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--

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


You received this message because you are subscribed to the Google Groups
"ODK Community" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to opendatakit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--

Smap Consulting http://smap.com.au/| Mobile Data Collection Solutions
Application Developer - neilpenman@gmail.com minqiang.huang@gmail.com
Twitter: @dgmsot
Skype: ianaf4you
Phone: +61 402 975 959
Blog: http://blog.smap.com.au http://smap.com.au/blog

--

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


You received this message because you are subscribed to the Google Groups
"ODK Community" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to opendatakit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.