enketo-core

Extensible Enketo form engine

Usage no npm install needed!

<script type="module">
  import enketoCore from 'https://cdn.skypack.dev/enketo-core';
</script>

README

npm version Build Status

Enketo Core

The engine that powers Enketo Smart Paper and various third party tools including this selection.

Enketo's form engine is compatible with tools in the ODK ecosystem and complies with its XForms specification though not all features in that specification have been implemented yet.

This repo is meant to be used as a building block for any Enketo-powered application. See this page for a schematic overview of a real-life full-fledged data collection application and how Enketo Core fits into this.

To get started visit our technical documentation.

Follow the Enketo blog or Enketo on twitter to stay up to date.

Browser support

The following browsers are officially supported:

  • latest Android webview on latest Android OS
  • latest WKWebView on latest iOS
  • latest version of Chrome/Chromium on Mac OS, Linux, Windows, Android and iOS
  • latest version of Firefox on Mac OS, Windows, Linux, Android and iOS
  • latest version of Safari on Mac OS, Windows, and on the latest version of iOS
  • latest version of Microsoft Edge

We have to admit we do not test on all of these, but are committed to fixing browser-specific bugs that are reported for these browsers. Naturally, older browsers versions will often work as well - they are just not officially supported.

Here is some guidance that may be helpful when trying to create a build that possibly runs on Internet Explorer 11.

Releases

  1. Create release PR
  2. Check Dependabot for alerts
  3. Run npm update
    • Check if node-forge has been updated and if so, verify encrypted submissions end-to-end
  4. Run npm audit
    • Run npm audit fix --production to apply most important fixes
  5. Run npm ci
  6. Run npm test
  7. Run npm run build-docs
  8. Update CHANGELOG.md
  9. Update version in package.json
    • Bump to major version if consumers have to make changes.
  10. Merge PR with all changes
  11. Create GitHub release
  12. Tag and publish the release
    • GitHub Action will publish it to npm

Sponsors

The development of this library was sponsored by:

Performance (live)

See graphs

License

See license document and additional clause below:

Any product that uses enketo-core is required to have a "Powered by Enketo" footer, according to the specifications below, on all screens in which enketo-core or parts thereof, are used, unless explicity exempted from this requirement by Enketo LLC in writing. Partners and sponsors of the Enketo Project, listed on https://enketo.org/about/sponsors/ and on this page are exempted from this requirements and so are contributors listed in package.json.

The aim of this requirement is to force adopters to give something back to the Enketo project, by at least spreading the word and thereby encouraging further adoption.

Specifications:

  1. The word "Enketo" is displayed using Enketo's logo.
  2. The minimum font-size of "Powered by" is 12 points.
  3. The minimum height of the Enketo logo matches the font-size used.
  4. The Enketo logo is hyperlinked to https://enketo.org

Example:

Powered by