Coder Social home page Coder Social logo

crononauta / tally-ho Goto Github PK

View Code? Open in Web Editor NEW

This project forked from onaio/tally-ho

7.0 10.0 4.0 6.07 MB

Election results data entry and verification software.

Home Page: http://tally-ho.readthedocs.org/en/latest/

License: Other

Shell 0.83% Python 97.45% PHP 0.02% CSS 0.98% JavaScript 0.73%

tally-ho's Introduction

Build Status

Tally-Ho!

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.

Quick install

Checkout the repos

git clone [email protected]:onaio/tally-system.git
git clone [email protected]:onaio/libya-data.git data

Make a virtual environment and install requirements

Prerequisites: this assumes you have virtualenvwrapper and PostgreSQL installed.

mkvirtualenv tally --python=python2.7
pip install -r requirements/dev.pip 

Recreate the database, then load the data and demo users

This will remove all data in the database.

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

Demo Site

tally.ona.io

Ona intermittently hosts a demo site of the Libya tally software at tally.ona.io.

The demo user name and password (formatted as username/password) is:

  • super_administrator/datadata

If it is not running and you would like to see a demo, please email us.

Demo Users

Please login as username super_administrator, password datadata to look around the demo site.

tally-ho's People

Contributors

ewokcillo avatar jmarente avatar mberg avatar pld avatar ukanga avatar varduefr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tally-ho's Issues

Section 5.6 - How to notify admin users

Section 5.6 - Quarantined result.

How do we have to notify to admin users that results will affected by quarantined forms? I understood that we should show a warning message in progress report table.

About implementation: Use session info to check form id

Currently, most of controllers of the application follow this workflow.

  1. When we are working with a form and we need to send the form id to the next controller, for example, a confirmation view, we store the id in session.
  2. In the next view, we check that the stored form id matchs with the form id got by post.

This can be a problem because if we work with multiple tabs in the browser, the session variable will be overwritten with differents identifiers, and we will get an error when we should not.

It is not ok to use the session to obtain or check this data.

Form Bar Code Ballot Number and Centre Number Link Check Not Running

There is a problem with the way the system is handling and restricting the entry of forms.

Each form has a ballot number assigned - this is read by the computer though the entry of the bar code. Form is printed with the barcode and the candidates.

All forms have barcodes and ballot numbers assigned. Some forms have centres and stations also assigned. Where centers and stations are not assigned, the staff will have to assign the centre and station depending upon what in written on the form.

There should be a check to ensure that that people are not assigning a centre to a barcodes which do not match. ie if a barcodes relates to ballot number 10 while the centre relates to 20. This was prevented previously, however it seems to not work any longer.

You can see from the below this centre and the barcodes assigned should not match.

image

image

Additional Requirement: Candidates deactivation interface and changes in results reports

A new issue has been identified with regards to the tabulation process. In order for the election to take place on time, the legislation has been updated to allow contests about the eligibility of candidates which will only be resolved after polling.

As such, while candidates will be on the ballot and will be on the screen, they may not be in the results if a decision is taken to remove them.

Further, a decision may be later revoked and the candidates returned to the results.

As such data entered into the system needs to be preserved as entered. However the following are required:

  • A way to mark candidates as active or inactive.
  • If a candidates is marked as either inactive or active, their names will show up throughout the data entry process (as they remain on the ballot).
  • In the csv report which shows votes per candidate (form_results csv):
    - there will be an additional column that marks if a candidate is active or deactivated
  • In the csv report which shows results by race (candidates_votes csv),
    - deactivated candidates will be shown
    - votes for deactivated candidates will be shown as (still needs to be confirmed on this end)
    • An additional column is required for total voters for candidates. The votes assigned to deactivated candidates will show up in this total (still needs to be confirmed on this end)

Section 5.4.2 and 5.4.3 Race types

Section 5.4.2 Mark race as inactive:
Right now, the races are not stored in database and are use as Enum constants. In order to implement this functionality would be necessary to store these elements in database and this would imply changes in the current model application, and all places in code where these enums are used should be modified as well. Should we apply all these changes?

Section 5.4.3 Marking Race as Available for Release:
To implement this requirement, the same changes explained in above should be implemented.

Section 5.11 - How to identify duplicated forms

To identify forms as unique, field group "station-center-race" is unique, so having two forms with the same "station-center-race" means that they are repeated, is it ok?

I understood that it was enough to identify each form as unique with this field group (station-center-race)

Change + Review Request - Audit Triggers

Currently there are two audit triggers. Trigger 1 needs to be adjusted accordingly. Trigger 2 needs to be reviewed and potentially adjusted:

i) Trigger 1 – To guard against over-voting: The number of ballots reported to be used in a station exceeds the number of potential voters – 90 percent of the number of registrants + 10 persons to accommodate staff and security.

(with “number of ballots reported to be used” being a system calculation of the sum of number of cancelled ballots, number of unstamped ballots, number of invalid votes, and the sum of the valid cast votes from the results form)

_Currently this is set against the number of registrants + 10 persons. We want to strengthen this check._

ii) Trigger 2 – To guard against errors and tampering with the form: The sum of the results section of the form fails to be equal to number of ballots expected based on the calculation of the key fields from the reconciliation section

(with ‘the number of ballots expected’ to be the number of ballots found inside the ballot box minus the number of unstamped ballots and the number of invalid votes), with a 3% tolerance applied.

* We need to check that this set at 3%...there is some confusion as to where we left it last*

Section 5.7 - What reports are not implemented yet?

Currently, there are several reports in the application. But not all of them have the option to be exported as CSV. Below, it's shown the list of reports expected and posible equivalences found in the application:

  • Progress of the tally progress: Report Offices and From Progress (Not CSV)
  • General statistics on the election: Races Progress Report (Not CSV)
  • Station races have not been in-take: Races Progress Report (Not CSV)
  • Turnout and results of each race: Candidates Votes (Only CSV)

We're not sure if this equivalences are correct. In case any of them are not, What information should be shown and format?.

Some of them are just shown as table views, Should be exported as CSV too?.

Thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.