...
In addition, we added a tutorial for the user when they enter the website. There is also a help link on all the pages, so the user can go back and view the tutorial.
Implementation
The Truevote backend was implemented using Django. Because of the sensitive nature of vote count information, we chose to have all our model logic and persistence on the server. Whenever a user makes a selection, a request saves the selection to the PostgreSQL database.
Pages on the front end always display information loaded from the server, not stored in any local Javascript data structure. This way, we ensure that any user navigation (e.g. the browser’s back button, accidental page refreshing) does not compromise the precision of our vote count report. As the information is centralized on the server, users get to see aggregate totals and predicted winners on the results page.
The downside of server-side logic is that frequent server requests cause some delay. This was occasionally evident in our GR5 staging, as we deployed our project on a free -and inherently slow- Heroku account. However, because the reading and switching of paper ballots restricts the speed of the election audit task, a blazingly fast system is not immediately necessary.
We used intro.js to implement the interface tutorials, a Javascript library for easy interface tours.
Evaluation
Evaluation of the Issues discovered during the User Tests:
...