@wq/app provides a configuration-driven JavaScript application controller to facilitate the creation of complete mobile web apps for viewing and submitting field data. @wq/app is the highest-level module in wq.app, and brings together a number of lower-level modules and wq conventions into an integrated API. @wq/app is primarily intended for use as a client for wq.db, but can be customized for use with any REST service.
The specific concepts leveraged by @wq/app include:
- A specific URL structure that is observed by both the application itself and its REST API.
- A client-side URL router (@wq/router) and page renderer (@wq/react + @wq/material)
- A model-driven,
localForage
-backed cache of REST API responses (@wq/model), with an offline-capable outbox to sync form submissions back to the server (@wq/outbox). - A wq configuration object generated by the URL router on the server, that describes the available routes and underlying models.
- An optional authentication endpoint provided by the REST API, including CSRF tokens to prevent cross-site attacks.
- A simple plugin API to facilitate adding optional functionality such as interactive maps or even a fully custom data model (via plugin hooks).
Installation • Project Layout • API • Configuration • Plugins • Methods