Tangerine-Community / Tangerine-client-legacy

This repository has been moved to https://github.com/Tangerine-Community/Tangerine
Other
2 stars 4 forks source link

Feature: enable download of assessments to configure blank APK #296

Open chrisekelley opened 8 years ago

chrisekelley commented 8 years ago

To download an APK, Frank clicks the APK button in his group, waits 20-30 seconds, and copies the url presented by the system after it generates the APK. This works well on a well-provisioned server. Creating APK's on an AWS micro instance uses too many resources and takes much too long - over two minutes. We need alternatives.

Shared APK server

This is what we currently have, and is a strong option. In the case of Tangerine Subscription, things are a bit more complicated, because we have to point the tree APK builder to the correct server and group. But this is doable. There could be some hitches in regards to authentication, but maybe superlogin will help us resolve this issue too.

Downloading Assessments and configuration into a vanilla Tangerine APK from the Google Play store.

This is a very low resource intensive solution. My version of coconut follows this path: Frank enters the url to the configuration fie on the server in the startup screen of the app (along with a username/password), and the app downloads the forms and configuration information (which server to replicate to, salt for crypto, etc.) We could streamline this a little more for Tangerine: Frank enters the url to his group (frank.tangerinecentral.org/group-sweet-tree), and the app figures everything else out, downloading the config file as well as the assessments. There also would be an offline-install option Frank could use to configure the app in bandwidth-poor environments.

Example from earlier version of Kiwiprints:

coconut-configure-form

Preparing the configuration and assessment bundles.

The configuration file would be created when a new group is created. This config file could have credentials for replication, as well as the users or groups permitted to download the assessments, if this level of control is needed. (Not planning to implement this right away...) This file could be edited in Couchdb Futon, or in a webapp.

The Assessment bundle would probably be created by pressing a "Create Assessment bundle" button. I am also experimenting with this being created on-demand - i.e. avoiding the need for this button-press, but I think this is going to be too heavy on the server.

Ancillary benefits

A user would no longer need to uninstall and download a new apk whenever assessments are updated; an "Update Assessments" setup facility would be available.

Example from Kiwiprints:

coconut-update-forms

The downloading of the configuration file puts some plumbing in-place to accomodate a Salt/credentials for crypto-pouch.

Tasks