Skip to main content

The Taarifa API for managing resources and requests

Project description

Background

Taarifa is an open source platform for the crowd sourced reporting and triaging of infrastructure related issues. Think of it as a bug tracker for the real world which helps to engage citizens with their local government.

Taarifa was founded at the 2010 WaterHackathon, Winner of the 2013 Sanitation Hackathon, finalist at the 2014 Barcelona World Mobile Congress, and has been deployed in Uganda, Ghana, and Tanzania.

The API

The API forms the core of the Taarifa platform. It provides a RESTful API (built on Flask and Eve) that clients can interact with to create and triage ‘bugreports’ relating to public infrastructure (e.g., the public toilet is broken).

To understand the API it is important to clarify some terminology

  • service: a service provided by some authority (e.g., electricity, water, road cleaning, ..)

  • facility: category of physical infrastructure (e.g., power lines, water pipes, road network, ..)

  • resource: particular addressable piece of infrastructure (e.g., Church Street, the waterpoint at (23.44,-5.87)

  • request: a ticket/issue/report made by a citizen about a particular resource, service, or both

Aside: Those familiar with Open311 will recognize the terminology and semantics. While the Taarifa API is not fully Open311 compliant yet, this is on the roadmap.

Taarifa API provides a way for clients to create services, facilities, resources, and requests dynamically (at runtime). In particular the features it provides include:

  • defining new service/facility/resource/request schemas

  • automatic validation that submitted service/facility/.. instances conform to the schema

  • versioning / history to track changes to resources and requests

Installation

Ensure you have installed Python, pip and MongoDB and that MongoDB is running.

Install virtualenv and virtualenvwrapper (you might need admin rights for this):

pip install virtualenv virtualenvwrapper

Set up virtualenvwrapper according to your shell and create a virtualenv:

mkvirtualenv TaarifaAPI

If you already created the virtualenv, activate it:

workon TaarifaAPI

Clone the repository:

git clone https://github.com/taarifa/TaarifaAPI

Change into the directory and install the requirements:

cd TaarifaAPI
pip install -r requirements.txt

Install the package itself:

python setup.py develop

Usage

Start the API server from the TaarifaAPI directory by running:

python taarifa_api/taarifa_api.py

This should start the API server. To check things are working, open a browser and navigate to:

http://localhost:5000/api

This should show you the various endpoints available. To see the API documentation go to:

http://localhost:5000/docs

Contribute

There is still much left do do and Taarifa is currently undergoing rapid development. To get started send a message to the taarifa-dev mailinglist and check out the github issues. We use the github pull request model for all contributions. Refer to the contributing guidelines for further details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

TaarifaAPI-dev.tar.gz (7.4 kB view details)

Uploaded Source

File details

Details for the file TaarifaAPI-dev.tar.gz.

File metadata

  • Download URL: TaarifaAPI-dev.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for TaarifaAPI-dev.tar.gz
Algorithm Hash digest
SHA256 642649122659fa58e96852f68df614fc99719b093466d3c8fbc3ed548af639bb
MD5 6515693327b1be5885826f2fe0ed88c7
BLAKE2b-256 2d900ee02dddfa2065f9db2af08deb2ca78648c58f974684f0a6b14390b2efbd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page