Skip to content
/ wq.app Public
forked from wq/wq.app

💻📱 wq's app library, a JavaScript+Python toolkit for building robust offline-capable progressive web apps for citizen science, mobile crowdsourcing, and VGI. Powered by HTML5, jQuery Mobile, localForage, Mustache, Leaflet, and d3.js.

License

Notifications You must be signed in to change notification settings

heigeo/wq.app

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wq.app

wq.app is a suite of Javascript modules and related assets, created to facilitate the rapid deployment of offline-cabable HTML5 mobile and desktop data collection apps for crowdsourcing, citizen science, and volunteered geographic information, as well as professional field data collection. wq.app is the client component of the wq framework, and can be used with any REST service as a backend. In particular, when combined with a Mustache-capable REST service like wq.db, wq.app can be used to create responsive, progressively enhanced websites / apps, that can selectively render individual application screens on the server or on the client depending on project needs, network connectivity, and localStorage availability.

Release Notes | Installation | Documentation | Issue Tracker

PyPI Package

Getting Started

pip3 install wq.app
# Or, if using together with wq.db
pip3 install wq

See the documentation for more information.

Features

wq.app's JavaScript modules are built on a number of libraries including RequireJS, jQuery Mobile, Leaflet, d3, and Mustache.js. wq.app extends these libraries with:

  • wq/app.js, a high-level application controller that combines wq/store.js and wq/pages.js into a full configuration-driven CRUD client (optimized for use with wq.db.rest)
  • wq/chart.js, configurable d3-based reusable charts, including time series and boxplots
  • wq/locate.js, utilities for requesting and displaying the user's location
  • wq/map.js, Leaflet integration for wq/app.js pages that contain geometry (loaded via GeoJSON)
  • wq/pages.js, a PJAX-style pushState URL router, template renderer, and page injector
  • wq/pandas.js, a utility for loading and parsing CSV generated by Django REST Pandas.
  • wq/store.js, a robust localStorage-cached JSON REST client (with a lightweight implementation of models / collections)
  • and a number of other useful utilities

To facilitate compact deployment, wq.app provides a Python-based build process for compiling wq apps: inlining templates, optimizing code (via r.js), and generating an application cache manifest. wq.app also includes jquery-mobile.scss, a SASS/SCSS stylesheet for generating custom jQuery Mobile themes.

About

💻📱 wq's app library, a JavaScript+Python toolkit for building robust offline-capable progressive web apps for citizen science, mobile crowdsourcing, and VGI. Powered by HTML5, jQuery Mobile, localForage, Mustache, Leaflet, and d3.js.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 94.2%
  • CSS 5.0%
  • Other 0.8%