wq version: 0.7 0.8 1.0-beta
Docs > Overview



wq is a software framework designed to facilitate the development of robust, offline-capable mobile / web apps. The original use case for wq is mobile data collection, whether by professional environmental monitoring staff or by volunteers in e.g. citizen science and mobile crowdsourcing projects. However, wq is also useful as a platform for building a variety of mobile-first websites and CRUD applications.

The goal of wq is to make it easy to rapidly assemble a complete data collection and management platform, while ensuring enough flexibility to adapt to project-specific data models and workflows. While wq is not quite a point-and-click "form-builder" solution, it does provide a number of default templates and utilities to make it easy to get started quickly and customize later. Moreover, wq has already been used to create point-and-click form builder solutions for specific domains.

From an implementation standpoint, wq is comprised of five modules:

Like any software framework, the design of wq incorporates a number of core principles and assumptions. The documentation includes a Philosophy chapter with wq's position on the oft-discussed web app/native app tradeoff, and an API Conventions chapter proposing interoperable solutions for addressing common infrastructure concerns. We hope that this generalized approach will give individual projects the flexibility to replace parts (or all!) of the wq stack with alternatives built with other platforms and programming languages. The Python + JavaScript implementation of wq is essentially the reference implementation of these ideals.

Documentation Outline

The documentation is structured to lay the foundation and conventions before getting into the implementation details. The chapters are as follows:

  1. Getting Started
    1. Installation
    2. Data Model
  2. Philosophy
  3. API Conventions
  4. Module Documentation
    1. wq.app
      1. JavaScript Modules
      2. Build Process
    2. wq.db
      1. REST API generator
      2. Design Patterns
    3. wq.io
      1. Dataset IO