Simple form to help people build queries for the IATI datastore API
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
codelists
helpers
static
templates
.gitignore
CONTRIBUTING.rst
LICENCE.txt
LICENCES-3RD-PARTY.txt
README.md
composer.json
index.php
update-codelists.sh

README.md

IATI-Query-Builder

License: MIT

About

A simple form that will build a query string that can then be used to fetch data from the IATI Datastore API.

See it in action here - http://datastore.iatistandard.org/query/index.php

Requirements

A webserver running php and php-curl. PHP dependencies are managed using Composer.

Installation

# Clone the repository and enter into the root folder
git clone https://github.com/IATI/IATI-Query-Builder.git
cd IATI-Query-Builder

# Install dependencies
composer install

# If running for the first time, prepare the helper script that enables you to get data for current IATI publishers
# This involves copying the file to a filename of your choice and uncommenting the code
cp helpers/refresh_group_data.example.php helpers/YOUR_FILENAME.php
nano helpers/YOUR_FILENAME.php

# Run the script to get data for current IATI publishers using the CKAN API
php helpers/YOUR_FILENAME.php

# You may wish to ensure that the included codelists are up-to-date (optional)
./update-codelists.sh

# Run a webserver
php -S localhost:8000

# Open a browser and visit localhost:8000

Helper scripts

Getting the latest IATI publishers

The /helpers directory has a script refresh_group_data.example.php that will enable you to get data relating to current IATI publishers.

Running this script will generate a .json file of 'groups' (i.e. publishers) in use on the IATI registry, and this in turn will populate the 'Reporting Organisation' multi-select element in the form.

Getting the latest IATI publishers

The script update-codelists.sh will re-download latest versions of the required codelists.

Automating updates

To automate regular updates, you could set-up both of these scripts as a cron job on your server.