Web app for crowdsourcing preferences about index weighting such as the Human Development Index. Powers YourTopia site - Global Development beyond GDP.
Installing
-
Install Python and pip
-
Install the requirements into a virtualenv:
virtualenv ~/venv-yourtopia pip install -e .
-
Run the web application:
python yourtopia/web.py
Configuration
If you want to modify the default settings:
-
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.
-
Add or amend settings (see instructions in the file)
Deployment
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 [email protected]: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 [email protected]
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.