Election results data entry and verification software built by Ona Systems and commissioned by the Libyan High National Elections Commission and the United Nations Development Program.
git clone git@github.com:onaio/tally-ho.git
Prerequisites: this assumes you have virtualenvwrapper and PostgreSQL installed.
mkvirtualenv tally --python=python3.6.5
pip install -r requirements/dev.pip
This will remove all data in the database.
To create the database, load demo users, and start the server all in one, run
./scripts/quickstart
If you've aleady setup the server, you can start the server with
python manage.py runserver --settings=tally_ho.settings.dev
TODO: add some demo result forms and candidate lists
This will remove all data in the database.
This will only work if you have data files in the folder
./data
The first argument is the database user, the second is the database host IP address, and the third is the settings file. Modify these arguments as needed.
./scripts/reload_all postgres 127.0.0.1 tally_ho.settings.common
If you already have Docker and docker-compose
installed on your machine you can quickly have a demo up by changing into the checked out code directory and running:
docker-compose build
docker-compose up
You can now visit the site at 127.0.0.1:8000
.
If you want to use Docker to run the site in production you will need to:
- modify the
docker-compose.yml
file to change the NGINX listening port from 8000 to 80, - add the host you are running the site on to a new
ALLOWED_HOSTS
list in thetally_ho/settings/docker.py
file.
Pass the -s
option if you want to use ipdb.set_trace()
to debug during a test.
The below assumes you have pip
installed requirements/dev.pip
.
Generate model graph for all models:
python manage.py graph_models --settings=tally_ho.settings.dev --pydot -a -g -o tally-ho-all-models.png
Generate model graph for app models:
python manage.py graph_models --settings=tally_ho.settings.dev --pydot -a -X GroupObjectPermission,UserObjectPermission,GroupObjectPermissionBase,BaseGenericObjectPermission,UserObjectPermissionBase,BaseObjectPermission,Version,Revision,Pageview,Visitor,Session,AbstractBaseSession,Site,LogEntry,User,Group,AbstractUser,Permission,ContentType,AbstractBaseUser,PermissionsMixin,BaseModel -g -o tally-ho-app-models.png
The create_demo_users
command will create demo users for each role with usernames like super_administrator
, and password data
.
The MAX_FILE_UPLOAD_SIZE
variable in tally_ho/settings/common.py
file defines the file upload limit which is currently set to 10MB.
- This is an article about tally-ho and its use in Libya.
- This presentation at PyConZA 2014 about the project, Writing Python Code to Decide an Election.