A reusable Django model for managing checklists of birds.


Keywords
django, checklists
License
BSD-3-Clause
Install
pip install checklists==0.3

Documentation

Checklists

Checklists is a reusable, Django app containing a full featured model and an admin site for building web applications for managing and publishing checklists of birds. It provides the following set of features:

  • A comprehensive model for capturing detailed information about visits made to a site from recording whether a specific protocol was used to count the birds to a breakdown of each species counted by age, sex, plumage, etc.
  • Aggregate records from other online databases, such as eBird, using feeds of checklists downloaded by the scrapers from the checklists_scrapers project.
  • A full admin application for managing the database.
  • A strong focus on data quality with the ability to selectively exclude specific checklists, observations or even species. Incoming checklists from feeds can also be filtered, for example, to selectively exclude checklists from specific regions or locations.
  • Autocompletion for names of locations, species, etc. for fast data entry.
  • An API to the model for easily extracting records for publication.
  • Suites of reference data, including a complete checklist for all the species in the world, and tools for quickly populating a new database.
  • Fully internationalized so versions supporting different languages can easily be created.

The project is designed to support any type of application that uses lists of observations, from news services for publishing reports on what species have been seen to on-line databases for observers to add their own observations. The current focus is for managing checklists of birds however the model should be sufficiently flexible that it can be used to record information on any type of animal or plant.

Demo

The project directory has all the file required to run a django site to demonstrate the admin site (preferably within a virtual environment):

$ git clone git://github.com/StuartMacKay/checklists/
$ cd checklists/project
$ pip install -r requirements/demo.txt
$ python manage.py syncdb --settings=settings.demo
$ python manage.py migrate checklists --settings=settings.demo
$ python manage.py migrate django_extensions --settings=settings.demo
$ python manage.py runscript initdb --script-args pt --settings=settings.demo

An almost empty database is not very interesting, however it is easy to populate with checklists from `eBird <http://ebird.org/>´_:

$ mkdir downloads
$ scrapy crawl ebird -a region=PT-11 -s DOWNLOAD_DIR=downloads
$ python manage.py load_checklists  --settings=settings.demo
$ python manage.py runserver --settings=settings.demo

eBird uses ISO 3166-2 codes to identify a region. PT-11 is the code for Lisbon, Portugal. For the purposes of getting started stick with this code for now since the list of species loaded into the database is only for Portugal. If you choose another region then it's likely that a checklist will contain a species not in the database and it will fail to load.

Related projects

Checklists is part of a groups of apps intended to be building blocks for creating applications:

checklists_scrapers is a suite of web scrapers for downloading checklists from on-line databases such as eBird (using the public API) or Birdlife International's WorldBirds network. The downloaded checklists can then be imported into the database using the load_checklists management command.

checklists_api contains extensions to the model API that are not yet sufficiently stable to be included in the main checklists API.

Links

https://secure.travis-ci.org/StuartMacKay/checklists.png?branch=master

Licence

Checklists is available under the modified BSD licence.