Web app for crowdsourcing preferences about index weighting such as the Human Development Index. Powers the YourTopia site - Global Development beyond GDP.
JavaScript Python HTML CSS
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Web app for crowdsourcing preferences about index weighting such as the Human Development Index. Powers YourTopia site - Global Development beyond GDP.


  1. Install Python and pip

  2. Install the requirements into a virtualenv:

    virtualenv ~/venv-yourtopia pip install -e .

  3. Run the web application:

    python yourtopia/web.py


If you want to modify the default settings:

  1. Copy and paste settings_local.py.tmpl

    • You must locate the file either at settings_local.py or at a location of your choosing and set YOURTOPIA_SETTINGS environment variable to point to your file.
  2. Add or amend settings (see instructions in the file)


To Heroku

Note that you will need to install the Heroku toolbelt to carry out the heroku commands below. In addition, you will need a Heroku account. Third, you need the git command-line client.

Create the application on Heroku

Skip this step if the application is already deployed

This is heavily based on this tutorial.

heroku create italia-yourtopia
# you may want a larger db (dev is 20k rows)
heroku addons:add heroku-postgresql:dev
heroku config:set YOURTOPIA_SETTINGS=/app/heroku_settings.py
git push heroku master
heroku ps:scale web=1

To have your db working correctly you may need to work out the right db to connect to e.g.:

heroku pg:info
# find the db name available to you
heroku pg:promote {db-name}

To deploy (already created):

Note: if you didn't do the create yourself you will need to add the heroku remote once, using this command:

git remote add heroku git@heroku.com:italia-yourtopia.git

Then push the git repository content to heroku:

git push heroku master

This will also restart the application on the server.

Adding collaborators:

heroku sharing:add joe@example.com

Setting the domain name

Do the following:

heroku domains:add {your-domain-name}

Now CNAME your domain to {myapp}.herokuapp.com

To OKFN servers (deprecated)

Use Fabric and the fabfile:

fab deploy:{service-name}[,{port}] --host ... --user ...

This can be used for both initial deployment and upgrades.