Skip to content

SEL-Columbia/microsites

Repository files navigation

microsites

Core functionnality & example project-dedicated microsites using bamboo+formhub.

How it works

formhub allows one to design a survey form using a spreadsheet software and convert it into an XForm. This XForm is then used to conduct the survey with an Android phone using the ODK Collect App.

formhub can store its collected data into bamboo a dataset store and webservice with computation capabilities.

Microsites are survey-specific websites aiming at providing real-life useful output from collected data. Microsites should provide all required raw, aggregated, computed and charted data for a particular survey.

Technically, a microsite is a django app which depends on the microsite app from this repo. microsite app provides helpers & common functionality to ease the process of creating a microsite.

Microsite consumes bamboo for data and use formhub to access meta data about the form used.

Features

  • Project management: A microsite app is built for a particular survey/form. A single form can be used to conduct multiple surveys: different countries or location for example. microsite handles projects so that the same app can be used for different surveys.
  • Settings management: Each project can have an arbitrary number of key-value settings. microsite includes a U.I to edit those. Values are stored in JSON format. Required settings (automaticaly added):
bamboo_uribamboo URI
bamboo_datasetbamboo dataset for data
bamboo_ids_datasetbamboo dataset for IDs
formhub_uriformhub URI
formhub_userformhub User owning form for data
formhub_formformhub Form slug for data
formhub_ids_userformhub User owning form for IDs
formhub_ids_formformhub Form slug for IDs
* __Key-Name Pairs__: XForm uses identifiers slug to store collect and then store data. This allows users to upload a list (CSV file) of key-name pairs which will be used to replace all slugs with provided name if available. The pairs are associated with a namespace which is defined in settings. * __bamboo & formhub API__: functions to easily retrieve common data from formhub and query bamboo from Python. * __Users management__: Microsites are private by default and each user is tied to a particular project. * __ID Generation with QRcode__: It is very common to require a registration for surveys: You need to identify something that your submissions will be submitted for. To ease this, _microsite_ provides random unique IDs with QRcode which can be scanned during survey.

Installation

Installation is alike any typical django app. A list of PyPi requirements is available in requirements.pip. You might need to intsall ghostscript as it's a dependency of the QRcode generation library.

Create also the microsite/settings_local.py (from example). Notable variables:

IDGEN_BASE_URIBase URL for generated IDs.
IDGEN_FORMATFormat for generated IDs. Defaults to _%(base_url)s/teachers/%(uuid)s?short=%(shortid)s_
KEY_NAME_NAMESPACESList of (slug, Name) tuples describing the available namespaces for the app. See key-value pairs above.

About

Sample microsite for Education surveys using bamboo & formhub

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published