wq.app (@wq/app) is a suite of JavaScript modules created to facilitate the rapid deployment of offline-cabable HTML5 mobile and desktop data collection apps. Potential use cases include surveys, geographic data capture & management, and crowdsourcing/citizen science. wq.app is the client component of the wq framework, and can be used with a wq.db server or adapted for use with any API.
wq.app is available via both npm (as @wq/app) and PyPI (as wq.app). To facilitate rapid deployment with wq.db and Django, the wq.app Python package comes with pre-bundled builds of @wq/app's core dependencies and recommended plugins.
# Recommended: create virtual environment
# python3 -m venv venv
# . venv/bin/activate
# Install entire wq suite (recommended)
python3 -m pip install wq
# Install only wq.app
python3 -m pip install wq.app
# Install @wq/app and recommended plugins
npm install wq
# Install only @wq/app core libraries
npm install @wq/app
See the documentation for more information.
wq.app provides a complete suite of JavaScript modules for offline GIS data collection and management. These include the core @wq/app package and its dependencies, as well as plugins for UI renderers and map engines. See the notes in Getting Started for more information about setting up a project layout that utilizes wq.app and/or the @wq/* JavaScript libraries.
name | description |
---|---|
@wq/app | High-level application controller and configuration-driven CRUD client |
@wq/store | Redux-based store with pre-configured offline persistence |
@wq/router | Responds to URL changes with local and/or server data |
@wq/model | Provides a client-side ORM for collections retrieved from a REST API (such as wq.db) |
@wq/outbox | Saves form submissions while offline and syncs to the server later |
As of wq.app 1.3, UI rendering is handled via plugins, with two main alternative renderers available. This is part of the roadmap for wq.app 2.0.
module | description |
---|---|
@wq/react+@wq/material | New Material Design renderer based on React and React Native |
@wq/jquery-mobile | Legacy renderer based on jQuery Mobile and Mustache.js, used in wq.app 1.2 and all earlier versions |
When installing @wq/app directly from NPM, one of the two renderers should be installed and registered explicitly. When using the wq.app PyPI package, a default renderer will be provided based on the version of wq start used to create the project. (New ESM-based projects will default to the @wq/material renderer, while older AMD/RequireJS projects will default to the @wq/jquery-mobile renderer.)
wq.app also provides optional map plugins for projects needing interactive GIS capabilities such as GPS point collection. In wq.app 1.3, there are two alternative map engines available.
module | description |
---|---|
@wq/map+@wq/mapbox | Mapbox GL JS integration for web and Mapbox Maps SDK for Android & iOS. |
@wq/map+@wq/leaflet | Leaflet integration (web only). Compatible with @wq/map 1.2 and earlier |
© 2013-2019 by S. Andrew Sheppard