This is a work in progress project that needs help in a number of ways:
- Importing the data we have collected from councils (See Below)
- If you are a developer (python, django, frontend, etc) or designer, we need help making the site itself.
- If you are interested in helping us gather this data, or if you know a lot about the strange world of the UK geographic system.
If you are interested in helping out in any way at all, please contact sym@democracyclub.org.uk
UK-Polling-Stations requires python 3.4
UK-Polling-Stations requires Postgres, PostGIS, libgeos and GDAL.
On Mac OSX, run:
brew install postgresql
brew install postgis
brew install geos
brew install gdal
From a clean install of Ubuntu 14 (Trusty), the command:
sudo apt-get install postgresql-9.3 postgresql-server-dev-9.3 python-psycopg2 python3-dev postgis postgresql-9.3-postgis-2.1 libxml2-dev libxslt-dev
will install all of the necessary dependencies.
For other linux distributions, see here for details on installing geospatial libraries for use with Django.
pip install -r requirements/base.txt
The integration tests require PhantomJS.
On Mac OSX, this can be installed by running
brew install phantomjs
On Ubunutu, run:
sudo apt-get install nodejs npm
sudo ln -s /usr/bin/nodejs /usr/bin/node
sudo npm install -g phantomjs-prebuilt
pip install -r requirements/testing.txt
cp polling_stations/settings/local.example.py polling_stations/settings/local.py
sudo -u postgres createdb polling_stations
sudo -u postgres createuser dc -P -s
sudo -u postgres psql polling_stations
psql (9.3.6)
Type "help" for help.
polling_stations=# CREATE EXTENSION postgis;
CREATE EXTENSION
polling_stations=#
python manage.py migrate
python manage.py import_councils
To populate your database, pass manage.py import -e
a list of Election IDs to run all of the import scripts relating to a particular election or elections. For example:
python manage.py import -e parl.2015-05-07
will run all of the import scripts relating to the 2015 general election.
python manage.py import -e naw.c.2016-05-05 naw.r.2016-05-05
will run all of the import scripts relating to the 2016 Welsh Assembly elections.
python manage.py import -e ref.2016-06-23
will run all of the import scripts relating to the 2016 EU Referendum.
Each council that has unimported data has a Github Issue with the Data Import
label.
You can see the current status in the Waffle Board.
Data lives in ./data/[council.id]-[council.name]/*
We make a Django manage.py command in the data_collection app for each council which imports the raw data. There are some base importer command classes in the __init__.py
of data_collection.management.commands
and some template import scripts in polling_stations/apps/data_collection/management/commands/templates/
to use as a starting point.