Giter Club home page Giter Club logo

aggregate's Introduction

⚠️ ODK Aggregate is no longer being updated. Please use ODK Central instead. ⚠️

Overview

Platform License Build status Slack

ODK Aggregate provides a ready-to-deploy server and database to:

  • provide blank forms to ODK Collect (or other OpenRosa clients)
  • accept submissions (finalized forms) from ODK Collect and manage collected data
  • visualize the collected data using maps and simple graphs
  • export submissions in CSV, KML, and JSON format
  • publish submissions to external systems like Google Spreadsheets

ODK Aggregate can be deployed on an Apache Tomcat server, or any servlet 2.5-compatible (or higher) web container, backed with a PostgreSQL or a MySQL database server.

Getting the code

  1. Fork the Aggregate project (why and how to fork)

  2. Install Git LFS

  3. Clone your fork of the project locally. At the command line:

    git clone https://github.com/YOUR-GITHUB-USERNAME/aggregate

Setting up the database

Aggregate supports a variety of database engines, but we strongly recommend PostgreSQL. If you wish to use MySQL, see the database configurations guide.

PostgreSQL with Docker

  1. Install Docker and Docker Compose

  2. Start the development server with ./gradlew postgresqlComposeUp

    Check that the port number 5432 is not used by any other service in your computer. You can change this editing the ports section of the db/postgresql/docker-compose.yml configuration file. Be sure to check the documentation: Compose file version 3 reference - Ports section.

  3. Stop the server with ./gradlew postgresqlComposeDown

For more information see here for Docker and [here for Docker Compose]((docs/build-and-run-with-docker-compose.md).

Local PostgreSQL server

  1. Download and install PostgreSQL 9 or later

    • If you are a macOS user, we recommend Postgres.app
    • If you are a Windows user, we recommend BigSQL
  2. In a command.line terminal, run the following commands to set up a database for Aggregate:

    (Linux and macOS)

    sudo su - postgres -c "psql -c \"CREATE ROLE aggregate WITH LOGIN PASSWORD 'aggregate'\""
    sudo su - postgres -c "psql -c \"CREATE DATABASE aggregate WITH OWNER aggregate\""
    sudo su - postgres -c "psql -c \"GRANT ALL PRIVILEGES ON DATABASE aggregate TO aggregate\""
    sudo su - postgres -c "psql -c \"CREATE SCHEMA aggregate\" aggregate"
    sudo su - postgres -c "psql -c \"ALTER SCHEMA aggregate OWNER TO aggregate\" aggregate"
    sudo su - postgres -c "psql -c \"GRANT ALL PRIVILEGES ON SCHEMA aggregate TO aggregate\" aggregate"

    (Windows)

    psql.exe -c "CREATE ROLE aggregate WITH LOGIN PASSWORD 'aggregate'"
    psql.exe -c "CREATE DATABASE aggregate WITH OWNER aggregate"
    psql.exe -c "GRANT ALL PRIVILEGES ON DATABASE aggregate TO aggregate"
    psql.exe -c "CREATE SCHEMA aggregate" aggregate
    psql.exe -c "ALTER SCHEMA aggregate OWNER TO aggregate" aggregate
    psql.exe -c "GRANT ALL PRIVILEGES ON SCHEMA aggregate TO aggregate" aggregate

Building and Running the project

  • Copy the jdbc.properties.example, odk-settings.xml.example, and security.properties.example files at /src/main/resources to the same location, removing the .example extension.

    If you have followed the database configuration steps above, you don't need to make any change in these files. Otherwise, head to the Aggregate configuration guide and make the required changes for your environment.

    If you are running the project in Docker, see here for the next steps.

  • Start a local development Aggregate server with ./gradlew appRunWar

    Gradle will compile the project and start the server, which can take some time.

    Eventually, you will see a "Press any key to stop the server" message. At this point, you can browse http://localhost:8080 to use Aggregate.

  • Stop the server pressing any key in the terminal where you started the server

If you have more than one Java version installed in your computer, you can ensure that Java 8 will be used when running Gradle tasks from the command-line by adding -Porg.gradle.java.home={PATH_TO_JAVA8_HOME} to the task.

Connect from an external device

By default, Gretty will launch a server using a localhost address which will not be accessible by external devices (e.g., ODK Collect in an emulator, ODK Briefcase on another computer). To set a non-localhost address, edit the following files:

  • In src/main/resources/security.properties, change security.server.hostname to the address
  • In build.gradle, inside the gretty block, change host to the same address

Setting up your development environment

These instructions are for IntelliJ IDEA Community edition, which is the (free) Java IDE we use for all the ODK toolsuite, but you don't really need any specific IDE to work with this codebase. Any Java IDE will support any of the steps we will be describing.

Import

  • On the welcome screen, click Import Project, navigate to your aggregate folder, and select the build.gradle file.

    Make sure you check Use auto-import option in the Import Project from Gradle dialog.

    Ignore any message about any detected GWT, Spring or web facets.

  • Make sure you set Java 8 as the project's selected SDK

Run

  1. Show the Gradle tool window by selecting the menu option at View > Tool Windows > Gradle

    You will see a new panel on the right side with all the Gradle task groups

  2. Double click the appRunWar Gradle task under the gretty task group

    A new Run bottom panel will pop up.

    Gradle will compile the project and start the server, which can take some time.

    Eventually, you will see a "Press any key to stop the server" message. At this point, you can browse http://localhost:8080 to use Aggregate.

You can stop the server by pressing any key in the Run panel.

Debug

  1. In the Run menu, select Edit Configurations...

  2. Press the + button to add a Remote configuration

    • Name: Debug Aggregate (or whatever you'd like)
    • Host: localhost
    • Port: 5005
    • Search sources using module's classpath: aggregate
  3. Press OK

  4. Run Aggregate with the appRunWarDebug task (double click it on the Gradle panel at the right side)

  5. Run the Debug Aggregate run configuration you've created (use the debug button, not the play button, which should be disabled)

Eventually, the compilation will finish and the server will be ready for you to browse http://localhost:8080

To stop the debugging session, press any key in the Run bottom panel. This will close your debug process in the Debug bottom panel as well.

Extended topics

There is a /docs directory in the repo with more documentation files that expand on certain topics:

Contributing

Any and all contributions to the project are welcome. ODK Aggregate is used across the world primarily by organizations with a social purpose so you can have real impact!

If you're ready to contribute code, see the contribution guide.

The best way to help us test is to build from source! We are currently focusing on stabilizing the build process.

Troubleshooting

  • We enabled Git LFS on the Aggregate codebase and reduced the repo size from 700 MB to 34 MB. No code was changed, but if you cloned before December 11th, 2017, you'll need to reclone the project.

  • If you get an Invalid Gradle JDK configuration found error importing the code, you might not have set the JAVA_HOME environment variable. Try these solutions.

  • If you are having problems with hung Tomcat/Jetty processes, try running the appStop Gradle task to stop running all instances.

  • If you're using Chrome and are seeing blank pages or refreshing not working, connect to Aggregate with the dev tools window open. Then in the Network tab, check Disable cache.

aggregate's People

Contributors

brettneese avatar clarlars avatar dcbriccetti avatar divya063 avatar dylanfprice avatar florianm avatar ggalmazor avatar jbeorse avatar krrun16 avatar lognaturel avatar mitchellsundt avatar nick2049 avatar ronna avatar shashvat-kedia avatar srsudar avatar terencehonles avatar trustbirungi avatar ukanga avatar wbrunette avatar yanokwa avatar zwets avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aggregate's Issues

export to csv emits 'null' in cells that have no values

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:14 GMT
Originally opened as getodk/getodk#764 (1 comment(s))


Originally reported on Google Code with ID 763

Comparing export to csv with ODK Briefcase, the exported csv emits 'null' when a cell
is blank, whereas the ODK Briefcase export emits an empty cell.

The ODK Aggregate implementation should emit an empty cell.

Reported by mitchellsundt on 2013-02-08 18:22:47

Add user's ability to change altitude units

Issue by mitchellsundt
Thursday Jul 09, 2015 at 17:56 GMT
Originally opened as getodk/getodk#238 (2 comment(s))


Originally reported on Google Code with ID 237

It would be nice for American users to have the option to display the altitude units
in feet.
Also, maybe a choice in lat / lon units: DD MM.MMMMM or DD MM SS.SSSSS or DD.DDDDD.
Thanks a lot for the great work.

Reported by Valentijn.Hoff on 2011-06-23 17:12:28

Fusion Table publishing name, renaming breaks links, and multiple publishers

Issue by mitchellsundt
Thursday Jul 09, 2015 at 18:10 GMT
Originally opened as getodk/getodk#302 (2 comment(s))


Originally reported on Google Code with ID 301

Using Aggregate 1.0, comment from user ( [email protected] ):

2) Fusion table names default to 'data'. Changing the name seems to
break the link. Furthermore having multiple fusion tables each linked
to a form breaks all but the first publishing link. Presumably there
is a conflict due the other tables also being named 'data'? When
publishing to Google Spreadsheet one can define the tablename, but not
with Fusion. Is there a way of defining it in the form?

---
We should verify that publishing to multiple fusion tables from the same form works
and that different fusion table names can be specified (assuming Fusion Tables allows
this).

Reported by mitchellsundt on 2011-08-12 15:42:22

Aggregate installer should check for Java 7

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:39 GMT
Originally opened as getodk/getodk#1005 (0 comment(s))


Originally reported on Google Code with ID 1004

The Aggregate install script should check for Java 7 before running. That'll prevent
this message (and the messages to the list)

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/google/appengine/tools/admin/AppCfg
: Unsupported major.minor version 51.0

Should also be documented on the website.

Reported by [email protected] on 2014-05-16 14:06:50

Deep URIs

Issue by mitchellsundt
Thursday Jul 09, 2015 at 18:12 GMT
Originally opened as getodk/getodk#321 (0 comment(s))


Originally reported on Google Code with ID 320

Once a FilterGroup is saved. If the filter group is not switched off of and then saved
again, the URI is may not be being set on all the dependent entities. It may only be
set on the FilterGroup element and not in all the entities that make up the FilterGroup.

Reported by wbrunette on 2011-09-13 09:46:37

OpenID deprecation

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:40 GMT
Originally opened as getodk/getodk#1010 (1 comment(s))


Originally reported on Google Code with ID 1009

What steps will reproduce the problem?
1. Go to https://cnp-rainfall.appspot.com/openid_login.html
2. Click the "sign in with google"
3. Error 400 appears, "OpenID auth request contains an unregistered domain: https://cnp-rainfall.appspot.com/"

What is the expected output? What do you see instead?
I should be able to login with Google but instead am diverted to a page telling me
OpenID is being / has been deprecated.

What version of the product are you using? On what operating system?
ODK 1.4.3 on windows 8


Please provide any additional information below.

I'm unsure how to migrate to a newer version of OpenID given that ODK runs all the
set up automatically.

Reported by [email protected] on 2014-05-24 10:19:18

Full name field on Configure Site Access doesn't accept spaces

Issue by mitchellsundt
Thursday Jul 09, 2015 at 18:14 GMT
Originally opened as getodk/getodk#341 (3 comment(s))


Originally reported on Google Code with ID 340

What steps will reproduce the problem?
1. Log into Aggregate
2. Click "Site Administration"
3. Click in full name field and try to enter a space

What is the expected output? What do you see instead?
I should be able to enter a space, as in "Jane Smith," but I'm not.

What version of the product are you using? On what operating system?
ODKAggregate-1.0 RC1, accessed via Safari 5.1 (7534.48.3) and FireFox 4.0.1.

Please provide any additional information below.
None.

Reported by [email protected] on 2011-09-28 18:52:57

Document Urls in Tomcat are Case sensitive

Issue by mitchellsundt
Thursday Jul 09, 2015 at 18:53 GMT
Originally opened as getodk/getodk#601 (0 comment(s))


Originally reported on Google Code with ID 600

A community member discovered that urls in Tomcat are case sensitive and requested that
we update documentation

I updated the documentation on both
http://code.google.com/p/opendatakit/wiki/AggregateTroubleshooting
http://opendatakit.org/use/aggregate/tomcat-install

However it might make sense to warn people in the installer.


------------------------

Hi there,

just a useful note you may want to add to
http://code.google.com/p/opendatakit/wiki/AggregateTroubleshooting.

I set up a Tomcat server for ODK Aggregate which receives data from
ODK Collect via an SSL connection. I spent some time trying to
troubleshoot why my phone was not connecting to ODK Aggregate, when I
realised that the server URL is actually case sensitive in Tomcat.

So I set up my server at https://aomceldk.bounceme.net/ODKAggregate
(the site where I'm testing the system currently).
If you enter aomceldk.bounceme.net/odkaggregate into the browser it
can't find ODK Aggregate, only if you enter aomceldk.bounceme.net/
ODKAggregate. Since I had typed everything in lower case into my
phone, I kept receiving Not Found (404) error message.

I'm sure experienced web designers know that URLs are case sensitive,
but for a beginner like me this was quite a surprise - so maybe useful
to add under Step 1 of "Cannot Retrieve List of Forms".

Best,

Lu

Reported by wbrunette on 2012-06-11 20:02:18

Published dates and times to google spreadsheet are not parsed as valid dates

Issue by mitchellsundt
Thursday Jul 09, 2015 at 18:28 GMT
Originally opened as getodk/getodk#427 (6 comment(s))


Originally reported on Google Code with ID 426

What steps will reproduce the problem?
1. Publish to Google Spreadsheets
2. Open the spreadsheet and attempt to set a data validation on a date column.
3. Notice that Google Spreadsheets complains about the date values in the column.

What is the expected output? What do you see instead?

Should be able to have Google Spreadsheets recognized the date or datetime as a valid
date.

Reported by mitchellsundt on 2011-11-15 17:53:20

Validate misses and Aggregate pays attention to type="" attribute preferentially to group nesting when constructing tables.

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:02 GMT
Originally opened as getodk/getodk#682 (0 comment(s))


Originally reported on Google Code with ID 681

What steps will reproduce the problem?
1. Define a form with repeat groups (or groups)
2. Add a <bind> for the group with type="string"

What is the expected output? What do you see instead?

Aggregate should still detect that it is a real group and ignore the spurious type="string"


Validate should complain about this.

Reported by mitchellsundt on 2012-09-06 16:21:40

Infinity and -Infinity values in decimal field submission cause 500 Unexpected Exception

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:42 GMT
Originally opened as getodk/getodk#1036 (2 comment(s))


Originally reported on Google Code with ID 1035

What steps will reproduce the problem?
1. upload (attached) form to latest Aggregate
2. load the form in ODK Collect
3. submit

What is the expected output? What do you see instead?
Submission to be successful, returning 201

What version of the product are you using? On what operating system?
Latest aggregate on appspot.com

Please provide any additional information below.
The same issue occurs for Infinity, -Infinity and NaN (though the latter is not a possible
output by ODK Collect)

Reported by [email protected] on 2014-07-25 15:55:46


- _Attachment: [DecimalInfinity.xml](https://storage.googleapis.com/google-code-attachments/opendatakit/issue-1035/comment-0/DecimalInfinity.xml)_

Add internalization support to Aggregate

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:30 GMT
Originally opened as getodk/getodk#890 (1 comment(s))


Originally reported on Google Code with ID 889

ODK Aggregate uses GWT 2.5.x for its web page rendering. At the time we began development,
internationalization support was not yet built into GWT. It now is ( http://www.gwtproject.org/doc/latest/DevGuideI18n.html
).

However, to enable it, we would need a developer to go through the client code and
extract the display strings into a translatable-strings dictionary and make the simple
changes to the code to access that dictionary for the display string.

We lack the resources to do this at this time. If anyone has a strong desire for this,
and can contribute a developer's time to sift through the code and extract the translatable
strings, we'd be happy to begin supporting internationalized ODK Aggregate web pages.

Reported by [email protected] on 2013-08-15 14:20:55

ODK Aggregate login failure can erroneously present out-of-quota screen

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:39 GMT
Originally opened as getodk/getodk#998 (1 comment(s))


Originally reported on Google Code with ID 997

Create a username without a password.

Try logging onto it.

This should present an Access-denied error or some sort of messaging that the user
is invalid.

Instead, it appears to be reporting a generic server error (out-of-quota).

Perhaps this is a regression with the migration to Java 7 ?

Reported by mitchellsundt on 2014-04-23 16:39:29

Add timezones

Issue by mitchellsundt
Thursday Jul 09, 2015 at 18:47 GMT
Originally opened as getodk/getodk#555 (0 comment(s))


Originally reported on Google Code with ID 554

From Email:
---------------------------
There are two ways to go:

(1) Change Aggregate to show dates in a specified timezone (e.g., have a timezone choice
on the Site Admin / Preferences tab). Use that designated timezone for all exported
csv and kml data, and all published data to Google Spreadsheets or Fusion Tables.

This is roughly the path Aggregate is heading down now.  Since Google's App Engine
hosts are all configured with GMT time, we sort of standardized on preserving that
end-to-end. 

The change would be confined to the formatting layer, and would be straightforward
to do.

(2) Actually preserve the timezones of the incoming data (a systemic change).

This would change Build/XLSForm and Collect to emit metadata that communicates the
timezone of a filled-in submission as a preload metadata element (e.g., in the OpenRosa
block) so that date types (which lack timezone information) could be properly timezoned.
 If that were present, we could then preserve timezones for all datatypes into the
datastore layer.

The problematic datastore is then MySQL.  Google and PostgreSQL already provide storage
types that can preserve timezones.  For MySQL, it probably makes sense to store a timezoned
datetime as two columns -- the UTC datetime and the timezone. Complicated but a fairly
constrained change within the MySQL datastore layer.

This would be an Aggregate 1.1 feature, along with string-valued version and full OpenRosa
1.0 compliance.

Reported by wbrunette on 2012-04-05 17:33:58

purge submissions may not purge everything

Issue by mitchellsundt
Thursday Jul 09, 2015 at 18:34 GMT
Originally opened as getodk/getodk#482 (0 comment(s))


Originally reported on Google Code with ID 481

What steps will reproduce the problem?
1. publish some submissions
2. choose 'Purge Submissions'
3.

What is the expected output? What do you see instead?

The purge submissions implementation does not pay attention to the URI of the last
record published.  It can therefore purge only up to before the last transmitted timestamp.

In heavily used systems, or ones that received bulk uploads, this can cause some published
submissions to remain in the datastore (those published in the same 1-second or shorter
interval, depending upon the datastore used).

Reported by mitchellsundt on 2011-12-17 21:23:47

OpenID login timeout may be short

Issue by mitchellsundt
Thursday Jul 09, 2015 at 18:03 GMT
Originally opened as getodk/getodk#262 (0 comment(s))


Originally reported on Google Code with ID 261

What steps will reproduce the problem?
1. as site admin, sitting on Permissions tab with local changes
2. do other things for 15-20 minutes.
3. return to app.
4. navigate off -- notifies you of pending changes
5. save changes

What is the expected output? What do you see instead?

Should save changes or give reasonable error message.

Error message return is the body of the openid_login.html page
(indicating that the OpenId auth has expired).  Should be able 
to detect this redirect and present a more reasonable error message.


Reported by mitchellsundt on 2011-07-11 23:53:33

Aggregate to Aggregate publisher

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:14 GMT
Originally opened as getodk/getodk#763 (1 comment(s))


Originally reported on Google Code with ID 762

There are scenarios where you want to feed data from one Aggregate instance to another.
For example, you can have a hierarchical data collection campaign where data is reviewed
in each district before being forwarded on to the country level. In these scenarios,
it'd be great to have a way to forward data from one instance to another. I suppose
you could use Briefcase, but transfers would be a lot faster and easier if you go server
to server.

Reported by yanokwa on 2013-02-06 20:37:53

BOM character at start of XML should be ignored in JR parsing

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:27 GMT
Originally opened as getodk/getodk#870 (0 comment(s))


Originally reported on Google Code with ID 869

What steps will reproduce the problem?
1. create a UTF-8 XForm document with a BOM
2. upload to Aggregate or download to the phone.
3. watch things crash

It would be really really nice if the BOM character could be detected and skipped so
that the XML processing can succeed.  A lot of UTF-8 editors stick a BOM character
at the start of the file, causing many users to be puzzled.

Reported by mitchellsundt on 2013-07-12 02:21:47

CSV repeats

Issue by mitchellsundt
Wednesday Jul 08, 2015 at 22:54 GMT
Originally opened as getodk/getodk#101 (9 comment(s))


Originally reported on Google Code with ID 100


I have a question about downloading the data from Agreegate (on appspot server) with
repeating elements - when I go to the 'download CSV' option, it doesn't download the
repeated element data, instead it just shows the URL for the extra data table.  I can't
seem to find a way to directly download that repeated data - is there a way for doing
so that I'm missing?

Reported by wbrunette on 2010-07-21 23:39:35

group specific display of xforms

Issue by mitchellsundt
Wednesday Jul 08, 2015 at 22:51 GMT
Originally opened as getodk/getodk#82 (3 comment(s))


Originally reported on Google Code with ID 81

"I would like to know if ODK can pass the handset id of an android through
the server url. I would like to limit the xforms that can be accessed by
different groups of people based on the group to which the handset id has
been assigned."

Reported by yanokwa on 2010-06-24 09:46:39

ODK Aggregate will not export to CSV - "Failure - abandoned all retry attempts"

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:41 GMT
Originally opened as getodk/getodk#1032 (1 comment(s))


Originally reported on Google Code with ID 1031

After 4 weeks of error-free data exporting to CSV with ODK Aggregate, one of the forms
has stopped exporting to CSV.  Trying to export FormX fails - after many minutes of
the screen saying "Generating", the screen reads " "Failure - abandoned all retry attempts.”
I've gotten this error before, and usually it goes away if I try to export a few hours
later, but after 5 days, it will still not export. 

I'm using the most recent version of ODK Aggregate, there is not a billing problem,
I've adjusted AppEngine to allow for maximum capacity. There is no error that appears
in Systems on AppEngine, and there are errors in the Log report, but nothing that I
can interpret. Other forms on the site export with no errors. 

My current solution was to upload the same form that was failing to export as a new
version, and its working fine - so is it possible this form got corrupted? How can
I retrieve the data from this form? 






Reported by aleta.haflett on 2014-07-14 10:37:59

Allow submitted forms to be marked as invalid and resubmitted

Issue by mitchellsundt
Thursday Jul 09, 2015 at 17:54 GMT
Originally opened as getodk/getodk#235 (4 comment(s))


Originally reported on Google Code with ID 234

We have a use case where we want to use ODK Collect/Aggregate to collect health information.
That health information will be inserted into a third party health system. We anticipate
that there will be validation and other errors that could occur during form entry.
We would like to keep invalid forms in Collect until the field worker has corrected
them. After they have corrected them we assume they will be resubmitted.

I believe this will require changes on both Aggregate and Collect if it is accepted.
Ideally, Aggregate would communicate all invalid submissions, and a brief message as
to why the form submission failed. All valid forms would be deleted from the Collect
client.

Reported by david.roberge12 on 2011-06-16 18:52:14

Better export for statistics tools

Issue by mitchellsundt
Thursday Jul 09, 2015 at 18:37 GMT
Originally opened as getodk/getodk#496 (10 comment(s))


Originally reported on Google Code with ID 495

I am also severely missing a possibility to export data to statistical programmes such
as Stata or R including variable labels and value labels, i.e. essentially the underlying
logic of the questionnaire. Before, we were using pencil paper questionnaires and the
free (but not open source) CSPro as data entry tool. It was possible to directly export
to Stata, which was extremely handy. Any change in the questionnaire was immediately
and correctly reflected in the Stata export. As any digital questionnaire includes
the information of (a) the question, (b) variable name, (c) answer categories in words
and (d) associated values in numbers. As far as I understood, (a)-(c) would be lost
in ODK .csv export and only (d) is kept. Is that correct? IMHO, this would mean much
(error-prone) duplication of work. 

How difficult is it to include (a)-(c) and to develop an export to statistical programmes?
Has already anyone started to write an export filter to one of these statistical programmes?

--Gerry

Reported by yanokwa on 2012-01-06 00:01:02

Enketo webform integration not working

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:37 GMT
Originally opened as getodk/getodk#976 (4 comment(s))


Originally reported on Google Code with ID 975

What steps will reproduce the problem?
1. Go to Site Admin -> Preferences
2. Configure Enketo Webform Integration
3. By entering API URL and API token

What is the expected output? What do you see instead?

It should show me the web form instead of it raise error "There was an error obtaining
the webform. (message:no account exists for this OpenRosa server)"

What version of the product are you using? On what operating system?

ODK Aggregate 1.4.1

Please provide any additional information below.

I had created account in Enketo with different gmail address than I had used to access
ODK Aggregate for first time.

Kindly guide me what wrong I am doing in configuration.

Reported by piyushsh18 on 2014-02-15 07:38:17

Aggregate is unable to export to KML when the form contains a repeat observation

Issue by mitchellsundt
Thursday Jul 09, 2015 at 18:29 GMT
Originally opened as getodk/getodk#429 (5 comment(s))


Originally reported on Google Code with ID 428

What steps will reproduce the problem?
1.use ODK Aggregate v1.0.1
2.Log into https://orrholly.appspot.com
Aggregate user: Student
Aggregate password: password
3.upload the attached file Lab-13v8_Biodiversity_v8.xml as a form
4.download form to Xoom Tablet on Kobo Collect App
5.send finished form back to Google App Engine site (https://orrholly.appspot.com)

6. Try to export submission to KML with the following attributes:
Geopoint: location
Title: name
Picture: repeat_observation/image

What is the expected output? What do you see instead?
Should export KML.  Error message: Failure - will retry later

What version of the product are you using? On what operating system?
ODK Aggregate v1.0.1
Desktop Window 7
KoBo collect 1.1.7-rc-1
Motorola Xoom / Android Version 3.2.1


Please provide any additional information below.

Reported by [email protected] on 2011-11-16 13:52:30


- _Attachment: [Lab-13v8_Biodiversity_v8.xml](https://storage.googleapis.com/google-code-attachments/opendatakit/issue-428/comment-0/Lab-13v8_Biodiversity_v8.xml)_

Would like to be able to rename the link for a photo so that it has a file-name on the phone, or have a way to to directly name the photo in ODK.

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:33 GMT
Originally opened as getodk/getodk#918 (1 comment(s))


Originally reported on Google Code with ID 917

What tool are you using?
Android phone

What is frustrating, troubling, annoying or lacking?
It is frustrating that when you take a photo it gives us a link to somewhere on the
ODK server, which, when you are going through thousands of necessary photos it becomes
hard to distinguish where the photo came from to begin with.

How would you like it to work?
We would like to be able to either rename the link for the photo so we can recognize
it, or have a way to edit directly in ODK.


NOTE: the core team has limited ability to make software enhancements.
We rely heavily on community-contributed enhancements to the tools. If this
is something you very much need, consider hiring a developer to make the
changes with the stipulation that they work with the core team to specify
the details of the change and contribute the change back to the project
under an Apache 2 license.

Reported by jennilouhart on 2013-09-20 16:16:37

Invalid username/password can cause upload to AppEngine to do nothing

Issue by mitchellsundt
Thursday Jul 09, 2015 at 18:34 GMT
Originally opened as getodk/getodk#481 (1 comment(s))


Originally reported on Google Code with ID 480

What steps will reproduce the problem?
1. during the upload-to-appengine phase
2. enter an invalid username/password
3. upload fails but reports SUCCESS

What is the expected output? What do you see instead?

Google's script apparently returns zero on this failure condistion, rather than non-zero,
as is industry standard.

Reported by mitchellsundt on 2011-12-17 16:14:34

Using URL Rewrite in IIS, the post login URL in Aggregate is not correctly formed

Issue by mitchellsundt
Thursday Jul 09, 2015 at 18:34 GMT
Originally opened as getodk/getodk#480 (2 comment(s))


Originally reported on Google Code with ID 479

What steps will reproduce the problem?
 1. Setup IIS using the ARR module to generate url rewrite rules to  route requests
to Aggregate, but without the port number in the URL
 2. Sign into Aggregate
 3. the URL is not well formed and consists of e.g. http://myDomainwithoutPortNum/ODKAggregate/http://myDomainwithoutPortNum/ODKAggregate/Aggregate.html

What is the expected output? What do you see instead?
 Expected: http://myDomainwithoutPortNum/ODKAggregate/Aggregate.html
 Actual:http://myDomainwithoutPortNum/ODKAggregate/http://myDomainwithoutPortNum/ODKAggregate/Aggregate.html


What version of the product are you using? On what operating system?

Windows Server 2008, Chrome Browser; Aggregate 1.0.2

Please provide any additional information below.

Possible solution - Change the way that the post login URL is formed.  My guess is
that the url is tokenised, perhaps using the 8080 port as a way of splitting the URL.
 Instead, the / or \ could be used.

This is the only step where this is an issue, all the other links between pages work
fine.

Reported by iom.pkim.Edgar on 2011-12-16 10:05:19

cannet setup Publick IP address to ODK VM

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:41 GMT
Originally opened as getodk/getodk#1023 (1 comment(s))


Originally reported on Google Code with ID 1022

What steps will reproduce the problem?
1.entering static IP address to network adapter OR; using 3g modem internet connection
with assigned static Public IP address.


What is the expected output? What do you see instead?
I was expecting the server to work on internet connection with universal static IP
address(specially that there is no fie wall except  f WINDOWS's) ,  ODK VM booting
without Network configuration, can't deploy on the internet network because of invalid
Network adapter setting. 

What version of the product are you using? On what operating system?
ODK VM aggregate v1.4.3.0, using win 7 professional

Please provide any additional information below.
no special Fire walls, ODK VM work perfectly on LAN setting.

Reported by IOMankara on 2014-06-21 08:28:33

ODK Forms Missing

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:42 GMT
Originally opened as getodk/getodk#1039 (1 comment(s))


Originally reported on Google Code with ID 1038

What steps will reproduce the problem?
1. I uploaded all my forms well using a Samsung galaxy tab. I got the successful upload
message on the device. 
The problem is my administration team cannot see all of my forms that I uploaded to
that particular server.  Is there a way to diagnose or retrieve these forms? its puzzling

What is the expected output? What do you see instead?


What version of the product are you using? On what operating system?
Android 4.x the latest

Please provide any additional information below.

Reported by tawakay on 2014-08-05 04:30:08

Aggregate Export Failure does not clean up FilterForExport

Issue by mitchellsundt
Thursday Jul 09, 2015 at 18:50 GMT
Originally opened as getodk/getodk#578 (0 comment(s))


Originally reported on Google Code with ID 577

When the export ends up in Failure - abandoned all retry attempts, Aggregate does not
delete the corresponding filter - "FilterForExport". Successful exports delete the
"FilterForExport".

We should chat to make sure it works out right.

Reported by wbrunette on 2012-05-20 04:23:48

Problem with estabilishing fusion table

Issue by mitchellsundt
Thursday Jul 09, 2015 at 18:27 GMT
Originally opened as getodk/getodk#420 (4 comment(s))


Originally reported on Google Code with ID 419

I tried uploading data from our own instance of ODK Aggregate 1.0, on Google AppEngine,
to Fusion Tables, and getting an error message:

    Unauthenticated access is allowed only for SELECT andDESCRIBE statements

    Error 401

    CREATE TABLE 'zambia-ranq-round3'(...)

    Error: org.opendatakit.aggregate.exception.ODKExternalServiceException:
    Unauthenticated access is allowed only for SELECT andDESCRIBE statements

Reported by wbrunette on 2011-11-09 17:23:10

Map shift in Visualize mode (ODK aggregate, Visualize >> GeoPointToMap)

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:38 GMT
Originally opened as getodk/getodk#986 (3 comment(s))


Originally reported on Google Code with ID 985

What steps will reproduce the problem?
1. ODK Aggregate, Visualize >> Geopoint to map
2. When you click in the map on one of the point locations (=red drops) the map moves
(shifts)
3. So this bug doesn't let you watch the metadata/attribute data in the map visualisation

What is the expected output? What do you see instead?
The map shifts all the time when you go near one of the point locations (red drops).
So you can't see the attribute data in the visualisation-map-mode.

What version of the product are you using? On what operating system?
I suppose the latest version...?

Please provide any additional information below.

Reported by 4estsense on 2014-03-25 14:02:27

Google Docs is interpreting space-separated numbers as date fields

Issue by mitchellsundt
Thursday Jul 09, 2015 at 18:33 GMT
Originally opened as getodk/getodk#463 (4 comment(s))


Originally reported on Google Code with ID 462

From a user:

I have a ODK aggregate form that I am uploading to Google docs. There
is multiple select sections in it with numeric underlying values, i.e.
1, 2, 3, 4 ,5 etc. Now uploading gives me in the coloumn, just two
numbers, say "3 5". No problem here, sending to Google docs, google
change my data to a date. For the above I get 3/5/2011. Formatting the
column to text is no use either, since the original data is lost
already, at least I must manually change it back to "3 5".

How can I prevent this from happening, other than changing the
underlying value to text?

----------------
Will see what can be done to get Google Docs to not do this.

Reported by mitchellsundt on 2011-12-05 17:10:03

MiscTasks scanned frequently to see if form is being deleted.

Issue by mitchellsundt
Thursday Jul 09, 2015 at 18:52 GMT
Originally opened as getodk/getodk#589 (0 comment(s))


Originally reported on Google Code with ID 588

The check for form-deletion causes the misc tasks table to be scanned a lot.

Should perhaps handle this differently?  e.g., would be nice if FormInfo had a flag
indicating whether the form was marked for deletion. (v2.0?).

Performance could be impacted if you are deleting forms very frequently.

Reported by mitchellsundt on 2012-06-04 19:30:40

Can't have the english and the underlying value collected for viewing in aggregate

Issue by mitchellsundt
Thursday Jul 09, 2015 at 17:37 GMT
Originally opened as getodk/getodk#181 (2 comment(s))


Originally reported on Google Code with ID 180

Would be helpful to have an option to display two columns of data, one 
for the english choice and one for the underlying value. An easy 
approach i've used is to build an english list with underlying names 
the same as the english names and then recreate the same list again 
with a second list of underlying values that equal the numerical 
values i'm after. But it makes the form a little cumbersome and 
redundant looking 

Reported by parkstrial on 2011-01-27 15:31:33

More gracefully handle bad FormInfo datasets (end infinite UI refresh)

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:28 GMT
Originally opened as getodk/getodk#880 (0 comment(s))


Originally reported on Google Code with ID 879

On GAE, it appears that deleting records can 'succeed' without actually completing.

Subsequent reads of BigTable can then encounter these records, causing the UI to enter
an infinite-refresh cycle until the FormInfo structures are manually cleaned up.

The fix would 
(1) add logic to automatically clean up these failures. 

_form_info_fileset -- when reading these, call delete on the oldest of any recorded
entries.

_form_info_xform_bin -- remove the oldest of these also, with the same logic.

(2) add a flag identifying a mis-configured form, and enable the user to delete that
form from the UI.

(3) make the delete-form process more robust and extensive, ensuring that any rows
related to the form are deleted.

Reported by mitchellsundt on 2013-07-25 17:10:07

unit tests are not written to always succeed in GAE dev environment

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:11 GMT
Originally opened as getodk/getodk#746 (0 comment(s))


Originally reported on Google Code with ID 745

Many of the unit tests of the persistence layer assume if you put() a value, then an
immediate get() will retrieve it. This is not true in the parallel datastore dev environment.


And production code shouldn't be doing immediate fetches anyways.

Need to look into how to correctly flush GAE datastore during unit tests so these random
errors don't occur.

Reported by mitchellsundt on 2013-01-17 02:52:09

Publish failure because of bad credential in GME

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:40 GMT
Originally opened as getodk/getodk#1015 (6 comment(s))


Originally reported on Google Code with ID 1014

From [email protected]

I have installed ODK aggregate on a server with Tomcat and Postgres. Everything works
fine, only publishing to GME gives error.

I have setup OAuth for a google account and uploaded the same in ODK aggregate. Now
I can publish to Fusion tables. Same google account is an admin for GME and created
Vector table in GME using following KML file.


<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2">
  <Document>
    <name>GME Geo Tagger</name>
    <Folder>
      <!-- Placemark is needed to build the data store -->
      <Placemark>
        <ExtendedData>
          <Data name="/data/meta/instanceId"/>
          <Data name="/data/meta/instanceName"/>
          <Data name="/data/geolocation"/>
          <Data name="/data/name"/>
        </ExtendedData>
        <!-- Replace with a polygon to set the zoom level -->
        <Point>
          <coordinates>0,0,0</coordinates>
        </Point>
      </Placemark>
    </Folder>
  </Document>
</kml>

When I try to publish the data using assert id of above created GME vector table, getting
status as "Restart Publisher - Credential was BAD". I dont know what I am doing wrong
here. Please help.

Reported by [email protected] on 2014-06-05 04:27:19


- _Attachment: [catalina.out.log](https://storage.googleapis.com/google-code-attachments/opendatakit/issue-1014/comment-0/catalina.out.log)_

UTF-8 xform files with byte order mark will cause xml validation errors

Issue by mitchellsundt
Thursday Jul 09, 2015 at 18:31 GMT
Originally opened as getodk/getodk#446 (3 comment(s))


Originally reported on Google Code with ID 445

ODK Collect reports XML validation error on line 1 column 2!

Some applications will add the byte order mark when producing a UTF-8 document: https://en.wikipedia.org/wiki/Byte-order_mark

This will cause an xml validation error. 

Reported by jpknoll on 2011-11-22 00:29:17

Enhancement: URLs for file grabs

Issue by mitchellsundt
Thursday Jul 09, 2015 at 18:11 GMT
Originally opened as getodk/getodk#310 (1 comment(s))


Originally reported on Google Code with ID 309

Want a URL that points to a download of the CSV or KML.

I got it all setup and can get the KML or CSV (CSV has time but KML
does not) and display it in ArcMap but it is a manual process.  Just
wanted a way to grab the KML file from a URL so i can do it easily in
Python like this that I did for EPICollect.  

import  arcpy, os, urllib, sys

# Setup URL
kmlURL = "http://epicollectserver.appspot.com/getMapKML?projectKey=ahBlcGljb2xsZWN0c2VydmVychALEgdQcm9qZWN0GJ-E3AEM"

kmlFile = "c:/temp/epilitter.kml"

# Get html page and store in a local file
urllib.urlretrieve(kmlURL, kmlFile)

Hope that makes sense.  I will submit it online.

Thanks a lot

Reported by dougb444 on 2011-08-25 18:37:39

unable to download csv from outside network

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:42 GMT
Originally opened as getodk/getodk#1040 (1 comment(s))


Originally reported on Google Code with ID 1039

What steps will reproduce the problem?
1.Log in to aggregate(www.xxx.com/ODKAggregate/) from outside office network.
2.Select the form and click "export submission" from Submission>>Filter Submission
3.Go to "Exported submission" click filename i.e xxxx.csv from "download file"

What is the expected output? What do you see instead?
It should open "save as" window to save the downloaded file. Instead, it goes to the
url www.xxx.com:8080/view and the page is blank. 

What version of the product are you using? On what operating system?
V.1.4.2

Please provide any additional information below.

Reported by vnalina on 2014-08-05 04:45:43

Upload timestamp comment insertion does not handle case of enclosing XML comment

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:08 GMT
Originally opened as getodk/getodk#717 (0 comment(s))


Originally reported on Google Code with ID 716

Define a form with a comment like this at the top:

<!-- This is a test from comment 
    this will blow up: >
blah blah -->
...


This causes ODK Aggregate to insert the load timestamp comment after the first >, inside
the comment, causing future XML parsing to fail.

Reported by mitchellsundt on 2012-10-30 15:38:33

Investigate avoiding fetch of media info record (_bn)

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:14 GMT
Originally opened as getodk/getodk#771 (1 comment(s))


Originally reported on Google Code with ID 770

Can we avoid fetching any of the _bn records for the submissions data page?

I think we can construct the URL for the media without knowing this info. And we know
the media type from the form definition, so we know what treatment to do without getting
the exact contentType.

This would allow ODK Scan surveys to be presented/hosted in AppEngine and not hit the
60-second limit.

We would then only do explicit reads when accessing the media files, the form definition's
media list, and never when accessing the submission rows.


Reported by mitchellsundt on 2013-02-19 19:46:52

Calculation that returns dateTime data loses time data

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:25 GMT
Originally opened as getodk/getodk#849 (12 comment(s))


Originally reported on Google Code with ID 848

What steps will reproduce the problem?
1. Define a dateTime field.
2. Pull the value of that dateTime field into a later calculate field.

What is the expected output? What do you see instead?

You expect the date and time both to go into the calculate field. Instead, only the
date part is saved.

Please use labels and text to provide additional information.

The issue appears to be in Recalculate.wrapData(), called by Recalculate.apply(). You
are going from a DATETIME data type to a STRING data type, and the default behavior
of wrapData() is to only return DateData((Date)val), as opposed to TimeData((Date)val).
Granted, the data type for the source value is Date in both cases, and so it's a bit
ambiguous. However, it would be easy enough to return TimeData when there is time data
in the Date object.

I am happy to submit a fix for this if there's consensus that it's a good idea.

Reported by chrislrobert on 2013-06-18 08:55:08

better visualization options for multi-select

Issue by mitchellsundt
Thursday Jul 09, 2015 at 18:25 GMT
Originally opened as getodk/getodk#410 (3 comment(s))


Originally reported on Google Code with ID 409

"we did some tests with forms with multi select fields and are now
wondering about how the stored information should be used, e.g. with
the "Visualize Tools" of ODK Aggregate 1.0.
The problem is that values being selected in a multi select are stored
as combined individual values and thus don't count for the single
values.

Example Code:
<label>Defoliation</label>
             <select ref="/SoilQualitySurvey/Defoliation">
               <label>Select</label>
                <item>
                   <label>Widespread</label>
                   <value>Widespread</value>
               </item>
               <item>
                   <label>None</label>
                   <value>None</value>
               </item>
           </select>


When we select "Widespread" and "None", the diagrams and Spreadsheets
process the data as "Widespread None" and not "Widespread" and "None".
(I would like to attach a Screenshot to make this situation/problem
clearer... I hope you understand what I want to say.)

Or do we make use of the multi-select in a wrong way?"
-- LETSGO CeLeKT



"This is a tricky data representation question.  We punted it in 0.9.x and 1.0 because
a standard solution won't make sense in all situations.

If you have a multi-select with 30 choices, would you want a spreadsheet to be generated
with 30 column headings for this one multi-select, and a "X" under the columns with
matching values?  What if there are 50 choices?   What if the number of choices is
unlimited (this is possible with itemsets drawing their choices from an external database)?
At some point, it makes more sense to produce a spreadsheet with just "N" columns for
a given multi-select (1st choice, 2nd choice, ...), and show up to N choices for that
multiselect (but which N do you show?).

This would all need additional layers of configuration over the simpler version available
in 0.9.x and 1.0.

If you have your data in a MySQL or PostgreSQL database, you may want to look at Tableau
or another data visualization package that can directly work off the native database
tables holding your data."
-- Mitch

Reported by yanokwa on 2011-11-04 04:44:07

login failure after installation

Issue by mitchellsundt
Thursday Jul 09, 2015 at 19:41 GMT
Originally opened as getodk/getodk#1033 (4 comment(s))


Originally reported on Google Code with ID 1032

What steps will reproduce the problem?
1.
2.
3.

What is the expected output? What do you see instead?


What version of the product are you using? On what operating system?


Please provide any additional information below.
 after successful installation when i try and use my username and password is rejected.

JAVA 7, tomcat 6,MySQL community 5.6,ODK Aggregate 1.4

HOW CAN I RESET OR BE ABLE to change the password??

Reported by alazndebzzz on 2014-07-19 12:50:31

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.