🍊 Digitize your offline data collection. Create your Assessments online with Tangerine Editor, conduct them offline with the Tangerine Android App. All results you collect can be exported as a CSV file, easy for processing in a spreadsheet. Tangerine has been used in over 1 million assessments and surveys in over 60 countries and in 100 languages.
Switch branches/tags
2.x.x 3.x.x-eftouch-demo 3.x.x-eftouch-sounds 3.x.x-merge-eftouch-demo 46-backbone-mode-clone-inconsistents 124--bug-on-question-setting-items-attempted 124-bug-on-question-linkedgridscore 131-subtest-trying-to-skip-when-it-shouldnt 135-linked-to-grid-setting-missing-2 135-linked-to-grid-setting-missing 215-unblock-entrypoint-start-from-netcat-infinite-loop 227-secure-deleted-groups 320-bug-brockman-csv-duplicate-data 329-back-button-support-fix 1142-editor-sees-user-profile-form-joined-to-csv 1143-editor-exports-csv-of-a-form-for-a-month-of-their-choosing Tangerine-v3.x.x-tangy-media-overlay add-client-codebase add-code-of-conduct-1 add-dat-output-module add-feedback-and-loc-modules add-feedback-critiques-to-json-packs-for-apk add-user-guide-markdown angular-pages arabic-location-name auth brockman-ported-to-node-7 brockman-with-results-view bugfix2.0.3 build-scripts-in-build-script-folder build-test build-version-fix class-integration class-local-fetch-issue-1026 cleaner-dockerfile cleanup-build-scripts combine-robbert-tree-and-decompressor-into-server configurable-ports-and-tag-on-start configurable-tabs-and-spashscreen-for-client configuration-doc-overrides-settings-doc consolidate-phase-1-script-into-dockerfile csv-generation-update dashboard-route debug-mode-for-start-sh decompressor-adds-uploaded-date-to-results docker--summary docker-compose docker documentation--get-your-truth-out-of-the-dom eftouch egra-on-v3 feature-sync-manager fix-breaking-apk-builds fix-breaking-build-on-cordova-plugin-add fix-cordova-npm fix-deploy-globals-script fix-gps-not-allowed fix-import-of-workflows-into-client fix-password-reset fix-print-metadata-2 fix-print-metadata-3 fix-print-metadata fix-upload-limit-to-decompressor form-responses-list gh-pages groups-api hamburger-menu import-results-and-assessments-from-file item-bank just-workflow key-plus-string-rework lachko-patch-1 load-workflows-when-preparing-apk loading-screen-for-feedback location-subtest-arabic locations master merge-photo-capture-csvRows mmlp newer-brockman-pruned newer-brockman optimize-brockman-workflow-memory optimize-docker-file-for-build-time optimize-first-apk-request pouchdb-inspector-support pr/192 protect-client-route refactor-assessment-subtest-prototype-execution refactor-bower-for-polymer refactor-polymer-to-use-bower reincorporate-tree-2 reincorporate-tree-codebase remove-compiled-code-from-editor reporting-service-documentation revert-412-protect-client-route rj-test selenium-tests simple-gps-prototype simplified-csv-generation tangerine-cli tangerine-letsencrypt-nginx-proxy tangerine-ux-v3 test-docker-hub-config test-question-linkedGridScore throttle-csv-generating translations tree-make-zip trip-controller-with-persisting-state-and-hierarchical-sections tsi_infrastructure tutor-integration--configurable-user-profiles tutor-integration--curriculum-port tutor-integration--school-list-view-1 tutor-integration--school-list-view-2 tutor-integration--workflow-controllers tutor-integration—media-assets tutor-integration update-mechanism upgrade-editor-to-ng-7 upgrade-runner v2--add-mel-reports v2--alpine v2--updated-mel-reports v2-location-list-fix v2-reporting-service v2-start_time_fix v2-update-reporting-service v2.x.x--integrate-node-based-csv-generator v2.x.x--ota-updates v2.x.x—arabic-RTL-support v3--574--complete-fab-show-and-hide-actions v3--600--consistent-session-management-for-forms v3--2018-02-13--0 v3--add-icons-to-service-worker-cache v3--add-reporting-code v3--apk-updater-server--integration v3--apk-updater v3--app-updater-improvements v3--batch-processing-of-cache v3--case-management-improvements v3--case-managment-improvements v3--casemagement-rework--view-suggestion v3--casemagement-rework v3--ckeditor4 v3--client-side-reports v3--cordova-8 v3--csv-generation v3--dockerfile-from-node-alpine v3--eftouch v3--fix-tangy-location-missing-location-list v3--generate-csv-cli v3--gps-improvements-accuracy v3--gps-rework v3--grid-improvements v3--hide-new-response-button-using-params-on-user-profile v3--log-cleanup v3--material-icons-offline v3--planeride v3--recover-password v3--release-dat v3--secure-routes v3--tangy-common-styles v3--tangy-form-in-angular v3--tangy-form-response-flatten v3--tangy-form-server-in-ts v3--tangy-form-v3 v3--tangy-input-using-template-literals v3--translations-rework v3--translations v3--update-csv-generation v3--update-support-page v3--upload-user-profiles v3--use-compression-on-sync v3-acasi-578 v3-acasi-onchange-fix v3-beta9-server-upgrade-script v3-careful-release-apk v3-case-management-configurable-variables-in-observations v3-centrally-managed-client-accounts-that-update v3-ckeditor-plugin-fixes v3-client-maintenance-2018-june v3-consistent-value-format-of-inputs v3-csv-generation-watchers-rework v3-csv-generation-watchers v3-custom-tangy-revision-mechanism-for-form-responses v3-dev v3-e2e-tests v3-edit-form-html v3-editor-crud-for-form-responses v3-editor-upgrade-users-roles v3-editor-upgrade v3-editor-user-registration v3-elastic_search-module-with-customizable-transformer v3-elk-stack v3-export-client-data-346 v3-fix-add-user-to-group v3-hide-profile v3-import-client-user-from-server v3-include-csv-processing-for-v2 v3-integrate-couchdb v3-integration-editor v3-integration-with-master--ux v3-integration-with-master-575 v3-integration-with-master v3-lit-element v3-location-list-crud v3-location-list-editor v3-logstash-module v3-mark-paid v3-metadata-fix v3-move-location-to-any-location-of-parent-level v3-polish-bug-fixes v3-prevent-needing-scroll-up-in-editor v3-private-inputs v3-remove-duplicate-visits v3-remove-hub-cruft v3-remove-tangy-form-on-change-from-response v3-reporting-compare v3-reporting-process-back-to-child-process v3-reporting-worker-clis v3-rtl-tangy-forms v3-safer-and-performant-reporting-process v3-safer-reporting-cache-process v3-server-cleanup-and-function-naming v3-slim v3-sync-unlocked v3-t-service v3-tangerine-cli v3-tangerine-editor-client-module v3-tangy-editor-cleanup v3-tangy-form-editor v3-tangy-form-export-data-model v3-tangy-form-service-in-shell v3-tangy-forms-code-cleanup v3-tangy-select v3-upgrade-client-2018-june v3-upgrade-client-shell-to-angular-6-and-no-more-tangy-form-app v3-upgrade-client-shell-to-angular-6 v3-upgrade-tangy-forms-to-polymer-3-official v3-upgrade-to-node-10 v3-upload-key-comparison v3-upload-user-profile-on-sync v3-username-drop-down v3-ux-implementation v3-with-base-image v3_alpine_base v3__editor_workbox_647 v3.x.x--432-tangy-form-response-service-creates-db-views v3.x.x--487-tangy-location-improvements v3.x.x--493-tangy-timed-improvements v3.x.x--additional-tangy-forms-app-url-parameters v3.x.x--angular-pages-ignore-pages-module v3.x.x--angular-pages-sidebar v3.x.x--angular-pages v3.x.x--app-shell-theming v.3.x.x--app-shell-updated v3.x.x--app-shell v3.x.x--build v3.x.x--case-management v3.x.x--clarify-tangy-forms-code-2 v3.x.x--clarify-tangy-forms-code v3.x.x--class-integration v3.x.x--cordova-apk-server-integration v3.x.x--covalent v3.x.x--csv-export-using-blob-api v3.x.x--docker-dev v3.x.x--every-input-is-a-string v3.x.x--form-apps-in-angular v3.x.x--formly v3.x.x--gps-improvements v3.x.x--homebase v3.x.x--improved-service-worker-installation v3.x.x--input-and-item-incomplete-state v3.x.x--large-form-resources-demo v3.x.x--lighthouse v3.x.x--lite-server-in-development-environment v3.x.x--lite-server v.3.x.x--locale-build-fix v3.x.x--md-transition-buttons v3.x.x--one-router-outlet-and-other-fixes v3.x.x--ota-updates v3.x.x--polymer3 v3.x.x--populate-html-inputs-with-session-model v3.x.x--publish-to-dat v3.x.x--pwa v3.x.x--redux-middleware-hook-for-skip-logic v3.x.x--refactor-tangy-location v3.x.x--release-tools v3.x.x--resume-tangerine-form-from-sesssion-id-in-url v3.x.x--save-form-results-to-dat v3.x.x--server-groups v3.x.x--server-shell v3.x.x--skip-logic v3.x.x--spread-form-elements-to-all-forms-in-tangerine-form v3.x.x--tangerine-form-session-save v3.x.x--tangerine-form-timed v3.x.x--tangerine-forms--cards v3.x.x--tangerine-forms--database-persistence v3.x.x--tangerine-forms--ngrx-effects v3.x.x--tangerine-forms--redux-tangerine-form-session v3.x.x--tangerine-forms-polymer v3.x.x--tangerine-forms-timed-refactor v3.x.x--tangerine-forms v3.x.x--tangerine-groups v3.x.x--tangy-button-group v3.x.x--tangy-buttons v3.x.x--tangy-form-fixes v3.x.x--tangy-forms-dynamic-base-path v3.x.x--tangy-forms-redux v3.x.x--tangy-radio-buttons-validation v3.x.x--tangy-toggle-button v3.x.x--tangy v3.x.x--tf-and-pwa v3.x.x--travis-for-angular v3.x.x--upgrade-ng-cli v3.x.x--upgrade-to-node-8-in-travis v3.x.x--workbox-generate-sw v3.x.x-acasi-editor v3.x.x-delete-eftouch-demo v3.x.x-group-eftouch v3.x.x-polymer3-integration v3.x.x-refactoring-tFormCardComponent v3.x.x-server-updates v3.x.x-tang-form-server v3.x.x-upload v3.x.x-yarn-locker v3.x.x v3 v3.0.0-beta10-rc8--hot-fix widget-route workflow-feature--feedback-view-in-editor workflow-feature-client workflow-feature workflow-hidden-by-default workflow-improvements
Nothing to show
Clone or download
Latest commit 4a0bf03 Dec 14, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Create ISSUE_TEMPLATE Mar 24, 2017
.history Update from master Mar 1, 2018
brockman update brockman to support updated url for photos in csv Jun 12, 2017
cli Merge pull request #466 from Tangerine-Community/fix-deploy-globals-s… Feb 5, 2018
client Add missing url-join dependency to client/package.json, important for… May 3, 2018
decompressor Fix variabel name in decompressor, uploadedDoc -> uploadedDocs Sep 17, 2017
docs fix for #907 comment field not in csv May 31, 2018
documents-for-new-groups Move default group documents out of couchapp to allow views to update… Mar 20, 2017
editor In editor ui when generating csv for workflow, make sure month select… May 3, 2018
reporting fixed end_time bug Jun 6, 2018
server Fix header generation bug May 4, 2018
tmp update submodules, add hostname to env vars, use it to generate nginx… Jan 23, 2016
tree Make sure that symlinked www directory exists for APK builds and allo… Mar 23, 2017
upgrades Make the v2.2.0.sh script executable Sep 27, 2017
.dockerignore Allow index-dev in container Mar 12, 2017
.gitignore add .DS_Store to the .ignore file May 22, 2017
.travis.yml Set TravisCI to no longer send email notifications, only Slack. Dec 6, 2016
CHANGELOG.md Add v2.2.0 to CHANGELOG Sep 25, 2017
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md Jul 24, 2017
CONTRIBUTING.md Update CONTRIBUTING.md Mar 24, 2017
Dockerfile Place installation of reporting dependencies in Dockerfile stage 2 an… May 3, 2018
LICENSE.txt License clarification Oct 26, 2016
README.md Update README.md Dec 14, 2018
android-debug.apk Update from master Mar 1, 2018
build-and-run.sh build-and-run.sh should build tangerine/tangerine:local Apr 30, 2018
config.defaults.sh Refactor start.sh and config.defaults.sh to allow configurable ports … Sep 19, 2017
develop.sh fix for #907 comment field not in csv May 31, 2018
ecosystem.json Add comments and documentation May 15, 2018
entrypoint.sh reverted cordova entrypoint code Jun 4, 2018
start.sh Fix ./start.sh so that you can put a tag in the first param, fixes bu… Apr 30, 2018
tangerine-nginx.template Add reporting service hello world Apr 30, 2018
tangerine.conf Add reporting service hello world Apr 30, 2018
upload.log Update from master Mar 1, 2018

README.md

Tangerine

Looking for the latest Tangerine? Go to the v3 branch.

Tangerine

Build Status

Stories in Ready

Join the chat at https://gitter.im/Tangerine-Community/Tangerine

Digitize your EGMA and EGRA data collection with Tangerine. Create your Assessments online, conduct them offline with the Tangerine Android App. All results you collect can be exported as a spreadsheet. Tangerine has been used by over 30 organizations to conduct over 1 million assessments and surveys in over 50 countries and in 100 languages.

Installation

We recommend using AWS for hosting have documented detailed instructions for AWS. Below are general instructions for installing on any machine.

SSH into your machine from a terminal, install Docker, and then run the following commands. You'll need the version of the most recent release. Find that on the releases page here.

# Get the software.
git clone https://github.com/Tangerine-Community/Tangerine.git
cd Tangerine
git checkout <version tag>
# Create config.sh and edit to match your desired settings. Make sure to set `TANGERINE_VERSION` to the same as what `<version tag>` in the prior commands. 
cp config.defaults.sh config.sh
nano config.sh
# Start the software.
./start.sh

If your server restarts or the container stops, you can later run the ./start.sh script in the Tangerine-server folder.

To use SSL, put an SSL enabled Reverse Proxy in front of Tangerine and set the T_PROTOCOL variable in config.sh to https before running start.sh. At RTI we use AWS's Elastic Load Balancer in front of Tangerine because it automatically renews and cycles SSL certificates for us. How to set this up is detailed in our instructions for AWS. If your Tangerine install is on a Digital Ocean Droplet, you can use their Load Balancers and configure them for SSL. See How To Configure SSL Termination on DigitalOcean Load Balancers. Now visit your Tangerine-server installation at the IP address or hostname of your installation. In this configuration, the browser talks to the Load Balancer securely on Port 443 while the load balancer communicates with Tangerine Container on port 80 on a private network.

Upgrade

You can sign up to be notified of releases via email by signing up at the Tangerine Releases Google Group. When a release is issued, you will find it listed on the Github Releases page https://github.com/Tangerine-Community/Tangerine/releases. Note that a release marked "Pre-release" may not be stable, may corrupt your data, and there will not be an upgrade path for you. Each release listed on Github Releases come with Release Notes attached which contain upgrade instructions for that release.

Technical Documentation

Check out the Tangerine Technical Documentation site on Github Pages. Want to contribute documentation? Fork the Tangerine repository, commit to the gh-pages branch and send us a pull request.

Trademark and License

Tangerine is a registered trademark of RTI International. This software is licensed under the GPLv3 License.