⚠️ Enketo Express code and issues have moved to the Enketo OC monorepo ⚠️
The Enketo Smart Paper web application. It can be used directly by form servers or used as inspiration for building applications that wrap Enketo Core. See this diagram for a summary of how the different Enketo components are related.
This is a fork of enketo/enketo-express that has the following additions:
- An account manager to use multiple accounts with a single Enketo installation.
- A fieldsubmission webform view that uses OpenClinica's Fieldsubmission API.
- An OpenClinica theme: theme-oc.
- Advanced comment widgets: discrepancy note widget
To get started visit our technical documentation.
OpenClinica users, in addition to the configuration documentation linked above, may want to take special note of the following recommended settings:
- Set a secret value for
"account manager api key"
(or set it tofalse
if OC's custom Account Manager is not used). - The
"linked form and data server"
object should not have"server url"
and"api key"
properties (if OC's custom Account Manager API is used). - Set
"disable save as draft": true
- Set
"repeat ordinals": true
. This feature is required for the fieldsubmission webform views. - Set
"query parameter to pass to submission": "ecid"
- Set
"validate continuously": true
- Set
"validate page": false
(though some applications may wish to usetrue
) - Set
"default theme": "oc"
- Set
"text field character limit": 3999
Enketo was initiated in 2009 by Martijn van de Rijdt as a web-based alternative or complement to ODK Collect. It has become a core component of the ODK ecosystem and been adopted by several organizations beyond that ecosystem.
As of 2022, Enketo is maintained by the ODK team (primarily Trevor Schmidt). Martijn continues to provide advice and continuity. The ODK project sets priorities in collaboration with its Technical Advisory Board.
Our current primary goals are:
- Increasing alignment with ODK Collect, particularly in service of submission edits.
- Improving error messages so that users can get out of bad states.
- Improving long-term maintainability by modernizing code bases, removing code duplication, and simplifying state mutation.
Feature requests and project discussion are welcome on the ODK forum.
The user interface was translated by: Oleg Zhyliak (Ukrainian), Karol Kozyra (Swedish), Badisches Rotes Kreuz (German), Serkan Tümbaş (Turkish), Hélène Martin (French), Gurjot Sidhu(Hindi, Panjabi), "Abcmen" (Turkish), Otto Saldadze, Makhare Atchaidze, David Sichinava, Elene Ergeshidze (Georgian), Nancy Shapsough (Arabic), Noel O'Boyle (French), Miguel Moreno (Spanish), Tortue Torche (French), Bekim Kajtazi (Albanian), Marc Kreidler (German), Darío Hereñú (Spanish), Viktor S. (Russian), Alexander Torrado Leon (Spanish), Peter Smith (Portugese, Spanish), Przemysław Gumułka (Polish), Niklas Ljungkvist, Sid Patel (Swedish), Katri Jalava (Finnish), Francesc Garre (Spanish), Sounay Phothisane (Lao), Linxin Guo (Chinese), Emmanuel Jean, Renaud Gaudin (French), Trần Quý Phi (Vietnamese), Reza Doosti, Hossein Azad, Davood Mottalee (Persian), Tomas Skripcak (Slovak, Czech, German), Daniela Baldova (Czech), Robert Michael Lundin (Norwegian), Margaret Ndisha, Charles Mutisya (Swahili), Panzero Mauro (Italian), Gabriel Kreindler (Romanian), Jason Reeder, Omar Nazar, Sara Sameer, David Gessel (Arabic), Tino Kreutzer (German), Wasilis Mandratzis-Walz (German, Greek), Luis Molina (Spanish), Martijn van de Rijdt (Dutch).
Send a message if you'd like to contribute! We use an easy web interface provided by Transifex.
OpenClinica has a few additional text strings that can be translated separately.
- Create release PR
- Check Dependabot for alerts
- Run
npm update
- Check if
node-forge
has been updated and if so, verify encrypted submissions end-to-end
- Check if
- Run
npm audit
- Run
npm audit fix --production
to apply most important fixes
- Run
- Update version in
package.json
- Bump to major version if consumers have to make changes.
- Run
npm i
- Run
npm test
- Run
npm run build-docs
- Update
CHANGELOG.md
- Merge PR with all changes
- Create GitHub release
- Tag and publish the release
- GitHub Action will publish it to npm
The development of this application is now led by ODK and funded by customers of the ODK Cloud hosted service.
Past funders include KoBo Toolbox (Harvard Humanitarian Initiative), iMMAP, OpenClinica, London School of Hygiene and Tropical Medicine, DIAL Open Source Center and Enketo LLC. Also see Enketo Core sponsors.
See the license document for this application's license.
Note that some of the libraries used in this app have a different license.
Note the 'Powered by Enketo' footer requirement as explained in enketo-core. This requirement is applicable to all Enketo apps, including this one, unless an exemption was granted.
The Enketo logo and Icons are trademarked by Enketo LLC and should only be used for the 'Powered by Enketo' requirement mentioned above (if applicable). To prevent infringement simply replace the logo images in /public/images with your own or contact Enketo LLC to discuss the use inside your app.
See change log