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

☁ wq's db library, extending Django REST framework with database models to support design patterns common to data collection systems.

License

Notifications You must be signed in to change notification settings

sheppard/wq.db

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wq.db

wq.db is a collection of Python modules for building robust, flexible schemas and REST APIs for use in creating field data collection apps and (more generally) mobile-first websites with progressive enhancement. wq.db is the backend component of wq and is geared primarily for use with wq.app, though it can be used separately. wq.db is built on the Django platform.

Build Status

Getting Started

pip install wq.db
# Or, if using together with wq.app and/or wq.io
pip install wq

See the documentation for more information.

Features

wq.db has two primary components: a REST API generator (wq.db.rest) and a collection of schema design patterns (wq.db.patterns) that facilitate flexible database layouts.

Extends the excellent Django REST Framework with a collection of views, serializers, and context processors useful for creating a progresively enhanced website that serves as its own mobile app and its own REST API. The core of the library (app.py) includes an admin-style Router that connects REST urls to registered models, and provides a descriptive configuration object for consumption by wq.app's client-side router. wq.db.rest also includes a CRS-aware GeoJSON serializer/renderer.

A collection of recommended design patterns (annotate, identify, locate, and relate) that provide long-term flexibility and sustainability for user-maintained data collection applications. These patterns are implemented as installable Django apps.

Batteries Included

Like Django itself, wq.db includes a contrib module that provides additional functionality not considered to be part of the "core" library.

Load data from external files into the database, powered by wq.io, files, and vera.

Generic file manager. Supports using the same FileField for both images and files. Also includes a URL-driven thumbnail generator.

Views for searching and disambiguating models using the identify and annotate patterns.

Reference implementation of the ERAV model, an extension to EAV with support for maintaining multiple versions of an entity.

About

☁ wq's db library, extending Django REST framework with database models to support design patterns common to data collection systems.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%