TallyJ - Status and Feedback
Last updated... 5 Sovereignty 174 (21 January 2018)
TallyJ is published at https://tallyj.com
Introductory videos are available on YouTube.
Discussion about TallyJ can be found here: http://www.facebook.com/TallyJ.Support
Assistance and Suggestions
Comments and suggestions can be sent to firstname.lastname@example.org. More about Glen on Twitter, Google+ and Linkedin. You can also reach me by Google Hangouts at the same address. For emergency assistance, you can send a SMS/text message to my mobile phone: +1-403-402-7106. (Please note that I am in the Canadian Mountain time zone; unscheduled and unexpected phone calls may not be answered - use SMS or Hangouts first!).
Privacy and Security
The data you enter is stored in a password-protected database securely hosted at Azure. Your connection to the server uses TLS security (https). The data is not used for any purpose beyond what you see, without your explicit request or permission. If needed for providing support to you, the data can be accessed by Glen Little. Log entries are created when you log into the site, and when election status is changed. These are sometimes monitored by Glen to provide support to the website.
For the election of a Local Spiritual Assembly, the Setup page asks for your current location to be able to determine when sunset will be. The location and sunset time are not stored or used for any other purpose.
Please see Some Guidance regarding the mechanics of Bahá'í Elections for important guidance.
TallyJ is currently an individual initiative. Hosting at TallyJ.com is currently sponsored by the Local Spiritual Assembly of Calgary using their Azure account provided by the Microsoft Azure nonprofit sponsorship program. If you or your community would like contribute to the ongoing development of TallyJ, you can set up monthly contributions via Patreon make a single contribution at the GoFundMe website or via Paypal! Thank you!
For local installation, see the Local installation instructions document.
The source code is maintained here: https://github.com/glittle/TallyJ-2.0 (open source)
This document is shared to keep you informed, and is the mechanism I’m using to track future plans!
- Windows 7, 8, 10 - Chrome and Firework work well. IE 11 has been known to have problems.
- Mac, iPad - Chrome works well. Safari has a number of usability bugs and is not supported. Ballot entry is mostly possible, but numerous features do not work correctly.
- Other browsers - please test before using at an election!
Recent Changes to the Live Site
- Version 2.6.0 - 5 Sovereignty 174 (22 January 2018)
- Adjust the Front Desk page to support different processes for collecting ballots. This will change the “In Person” button to be two buttons when the using process “B”.
- Overhaul the Setup page to support choosing the process for collecting ballots.
- Fixed: If the head teller is on the “Configure this Election” page and turns on the “Show on Home Page”, it will not take effect until the “Save Changes” button is clicked and the head teller leaves or refreshes the page.
- Fixed: When an election was saved, then imported as a new election, the Front Desk did not show any names!
- Lots of minor fixes and upgrades.
- Version 2.5.0 - 19 Honor 174 (17 January 2018)
- Usability - improve the layout on the home page when viewed on small screens (smartphones). Fix the Welcome page to show correctly on small screens.
- Improved: Front Desk now has a Search box that can search on first or last name or Bahá'í ID and filters the list quickly.
- Added: Usability: During use of Front Desk, tellers wanted to know how many have registered. Had to switch to Count Ballots page to determine. Would be nice if it was more easily available right on the Front Desk.
- Usability: (Babak, local installation) On the Front Desk page, there is an intermittent issue where the selection stays highlighted green instead of the usual quick green flash before changing to purple. This can result in either the selection being accepted or not accepted. The only way to confirm the selection is to refresh the page and check the record again.
- Added:The Analysis page had no way to enter extra spoiled ballots that are not entered into TallyJ. (Had a situation where two ballots were collected before the election but were not in an outer envelope and had no identifying information. As such they had to be considered as spoiled.)
- Fixed: Usability - on Analyze page, currently showing “-” for 0. This can be confusing. Better to show “0”.
- Fixed: When there is a tie, tie-break numbers entered affect the table in the middle, but aren’t marking the tie as resolved. In a Bahá'í Council election with 7 “next highest” positions, there were two sets of ties. The system would not let both ties be saved, so the election could not be finalized.
- Done: During setup, only allow “next highest” for Unit Conventions, Council elections and custom elections. Allow the number of “next highest” to report on be changed on the setup page even after ballots are entered.
- Improved the look of the detailed reports page.
- Fixed: Tech: in a technical support instance, person records were updated directly in the database. The changes were not visible until the application was restarted, thereby clearing the cached values.Should have another way to reset the cache… maybe when the last teller logs out.
- Remove ability to import files from the old TallyJ v 1.8x.
- Tech: add page handlers for Apple URLs to avoid false errors when scanned by google bots.
Found a problem or have a suggestion?
Please create an “Issue” on GitHub at this location: https://github.com/glittle/TallyJ-2.0/issues
On Staging site
The staging site is at https://tallyj3-staging.azurewebsites.net/. At this time, it uses the same database as the Live site. The staging site will be one version ahead or behind the live site - please pay close attention to the version number if you visit it!
Done, not published yet
Being Worked on
To Do List
Key to lists below:
- Usability - to make it easier to use
- Tech - to speed up the site or improve functioning
- Spec - changes functions of tool. For example, to support more election types/usages.
Next to do, by priority
- “In Set-Up, Edit People's Names, I wasn't able to delete a person.” - Add ability to delete a person!
- For a single-person by-election, the inputs may not work correctly.
- “Intermittently, when adding a new or spoiled vote, then selecting a reason, such as "Add new name (including spoiled), the drop down menu for Eligibility Status didn't always appear.”
- The main (head) teller’s account seems to “partially timeout” even when actively using it. When this happens, other tellers are okay, but the election no longer shows on the home page. → Logging in again on another computer (or using incognito mode) resolves the issue (without booting out other tellers).
Other ideas, by freshness and priority
- Allow some election types to not require that ties in the “next highest” need to be resolved. (Reports can still be generated, but will have a warning on them.)
- Adjust permissions so that only the head teller can add names to the list. Or, at least add wording encouraging tellers to have all additions approved by the head teller.
- Spec - Allow teller’s report page to include unresolved ties? Good for when tie-breaks are held later.
- Show, with notice that ties exist. Would have to show all the names in the tie.
- Usability: Allow the re-import of a CSV with people’s names, and update the Eligibility status for each person if it is changed.
- “It would be helpful if we could edit votes. Instead, when fixing issues such as previously mentioned, we'd have to enter the new vote into the ballot and then delete the one we wanted to change.”
- For final tellers report, zoom the page to fill the screen at all resolutions.
- For final tellers report, show elected people one name at a time, showing the next on a key press or click. Could show placeholders with numbers (1. ___ 2. ___ 3. ___ 4. ___ …), then fill in the names with resulting votes.
- On Teller’s Report page, show names of elected one at a time… press a key to show each next name (4h)
- Reports - the “Updated People” report should only show a few names that were edited by tellers. In one situation, showed a long list of people, which was likely not correct.
- For Roll Call, give color options: inverse, high contrast, etc. (Non-local names are not visible on some projectors). For multiple location elections, make it more clear which are local or not.
- Usability: On roll call screen, may want show first name first (make it a setting?) Show each name with first name then last name - easier to read.
- After the analysis is “approved”, it should be locked down. In one case, after logging out and in, had to run it again to see reports.
- Enable better security so that each guest teller can only alter ballots they have created.
- Usability: (Babak, local installation) Locations and teller names chosen change on their own after they've been set. This happens whilst still on the same page and the change is random. This doesn't always happen but it does happen often enough to be noticed.
- Improve usability of the Front Desk page. Give better indication when internet connection has been lost.
- Usability: (Babak, local installation) Searching for names brings back inconsistent results. For example if the name is 'Glen Little', searching for 'Gl' or 'Little' will bring results however in a lot of cases 'Glen' brings back no results.
- Usability: After entering 150 ballots, added an alternative name on the Person edit page. About 8 ballots needed to be revalidated. This caused a long delay in the system and seemed to lock it for a while.
- Usability: On person edit page, ensure that changes are saved before allowing a different person to be selected.
- Usability: “When a non-existent name is searched, and then we attempt to add a new individual, we select "Add a new ..." and sometimes, nothing happens. We have to go back to the drop down, select "Select a ..." and then re-select "Add a new ..." and then it takes us to the page where we can enter their details.”
- Usability: On the “all ballots for review” detailed report, if many ballots, ask for which computer set to show
- Tech: Can’t reproduce. On ballot entry, after first few uses, would not pre-select the person with the highest number of votes. Name in list was not selected (on IE?).
- Tech: Can’t reproduce. When entering the election date, it may save it as a day off from what you enter. Likely an issue with time zones, etc. To workaround, enter the date a day off, and it will show as the correct date! (Thanks Babak!)
- Tech: Can’t reproduce. IE sometimes crashes when adding new name when on the ballot page.
- Tech: Can’t reproduce. One user has an error with “FK_Result_Person” during analysis of an imported election file.
- Usability: Update active Front Page pages when new person is added to list, or person is marked “unable to vote” (4h)
- Usability: On Front Desk, have link to Person edit page for each person (4h)
- Usability: When changing election mode, go immediately to the Dashboard page?
- Usability: On the Person edit page, add ability to record ballots (like Front Desk), so can record directly there. (Would need to generate/show envelope number as the Front Page does.)
- Usability: Copy to start a new election for tie-breaks. (12h)
- Copies same list of (eligible) voters, but marks only those in the tie-break as eligible to receive votes.
- Could use the export/import process?
- Switch all guest tellers over to the new election?
- Have link back to original election?
- Need to copy and combine results back to the original election
- What if nested… tie-break for a tie-break election?
- Usability: Send report to email address (as html email) - send to convenor... convenor can forward to NSA, etc. Add to ‘election setup’ page. (12h). For now, just print to PDF in Chrome, then email the file.
- Documentation: Develop a single (or double) page PDF “white paper” describing TallyJ to present to head tellers and Assemblies when they are considering using TallyJ.
- Documentation: Add references to GoFundMe to the live website.
- Usability: sometimes there is a delay after logging in before the elections show up. Investigate to determine why. See about doing a “warm up call” when the welcome page is first shown.
- Feature: better support for Regional Baha’i Council elections (thanks to Amadou Diogo Barry)
- The set of voters (members of LSA) is a subset of the set of all eligible Baha’i.
- Output statistics results useful for the NSA: Number of LSA, percent of voters by LSA, etc.
- Possible approach: Rename “Area” to “Area / Group”. Report by Area would work. Add option to do Roll Call in order by “Area/Group”.
- Usability: When an old election is opened, and still has a pass code to allow others to join, require the head teller to “activate” the passcode! Otherwise, looking at an old election will cause it to appear on the homepage while head teller is looking at it.
- Tech: Make possible to use other kind of csv file like (point-comma) or other file format.
- Tech: Speed up login process!
- Old tech: Computers seem to logout after 20? minutes - should be much longer. Enable keep alive to server. (6h)
- Usability: Add a “forgot password” feature to reset teller’s password. Login system needs redesign. (12h)
- Usability: Enable google, facebook, twitter, etc. logins. Would only be able to use account services that share their registered email. (36h)
- ASP.NET sample applications now include this ability…
- Can this be retro-fitted into TallyJ?
- Allow login via social service and “old” id/pw login. If both logins used, register the new social id as the owner of the election as well.
- Allow a head teller to share an election with another login account user via their email address. Currently, owner of election is the only person who has access to all features. However, the “owner” can log into many computers at the same time, if desired.
- This may need a better authentication system
- Encourage everyone to log in with their own ID.
- Allow head teller to list the accounts a particular election is shared with.
- Each other account should be “owner”, “full” (same as owner but can’t share election), or “guest” (same as if used guest login)
- Be able to designate assistant head tellers. Send invitation email with token - teller clicks to create/use login account and enter this election as full or assistant teller. If multiple locations, can limit “full” access to that location only?
- This is a major new feature for TallyJ. Initial planning is started..
- Would need multiple tellers to log in, so should depend on ability to share an election with someone else
- Adding new people while entering ballots… “tellers simply adding names without being given the OK from either of the head tellers or the IT team resulting in duplications and a mess we need to later clean up. Is it possible to either add a checkbox in the setup page to allow us to block this function from normal tellers, or even implement an approval step so people can still submit names that are missing for spoilt ballots that would go into a quarantine with a flag waiting for approval on an admin page before being submitted? Either option to limit/restrict this activity would prevent a lot of issues.”
- For now, best to request tellers to consult with head teller before adding any names.
- Not sure what approach would be best. (16h)
- Should be fixed now. Tech: On Front Desk page, if computer is unused for a few minutes, seems to lose its connection, so it does not get the updates from other computers. Pressing F5 refreshes it, and is okay again. May be resolved by updated version of SignalR library
- Usability: If names list is less than x in size (15?), then simply show them all. Teller can use mouse to click on names used. (When starting from 0 names, can show names as they are added until the threshold is reached.) (8h)
- Tech: Put the “Needs Help” status with a computer, not the entire location. (Is this still needed?) (12h)
- Usability: ? By-election for one person - too easy to enter names twice - should merge or prevent double entry. It does not add another person to the list; it reselects the same person. Might be another bug...
- Usability: When ballots are entered, and the person’s info is altered, only force a name in a ballot to be re-validated if the information is changed. If just new info is just added to formerly blank other fields, don’t force a re-validation. (8h)
- Usability: If no locations, do not show “Contact Info” on the Monitoring page (4h)
- Tech: Optimize JS and CSS references... jquery.ui pulls lots of small files; add bundling; add proper headers for expiry, must revalidate, etc. Not crucial - browser caches after first hit. (12h)
- Add “Home Page” for current election? To replace dashboard. Show status, counts, links, etc.
- Add this sort of information to the monitor page?
- Usability: Have a checklist of tasks to be done in an election for the head teller. New page for teller? (12h)
- On Analysis page, remind head teller that the convenor/Assembly may need to review the results before they are announced.
- Could be next to the “monitor” information.
- As a person’s Front Desk status is changed, retain a history log of all changes. This helps to investigate if one teller changes what another teller did. (12h)
- Usability: Add people analysis page to find duplicate names or Baha’i Ids; also show if soundex is similar? (12h)
- Tech: Ensure that converted time is shown correctly in all locations (Front Desk, reports, etc.) (8h)
- Tech: Update caching system to change v=n to -n. Keep extension the same. (6h)
- Spec: Enable export to Excel... waiting for layout sample
- Add ability to Reports page to download as CSV (12h)
- Test in other browsers. (Developed with Chrome.) Test in Firefox, Safari, IE8, IE9. (Use browserstack.com).
- Front Desk Registration buttons don't change color when clicked ( e.g., "In Person" etc...)
- When counting ballots, when you click on "Start New Ballot", the counter doesn't increment(e.g., A1 stays A1).
- When entering names into the ballot, it doesn't seem like the ballot was saved to the database, although when you refresh it shows up.
- Version 9 - import of CSV files not working? (can’t use button or drag/drop)
- occasionally get HTML codes showing in the names list, which is then copied to the vote line. On moving to another ballet and back, all is fine.
- Version 1 Import - the uploading of CSV does not work cleanly, and the uploaded file cannot be imported (12h)
- Usability: Add more tips on all pages. (8h)
- Usability: Be able to import/copy names from another election. How useful is this? (8h)
- Tech: Improve top status message when person’s session has timed out. If session times out, status display is stuck as if waiting for response - handle logged out better. If guest teller’s session times out, still see menus? (12h)
- Tech: Consider adding Zopim.com for supporting TallyJ. (12h)
- Usability: Add restriction to reports and analysis pages so that they cannot be viewed (by anyone) until at least (10) ballots have been entered. This is to help protect the anonymity of ballots when only a few have been entered. However, by the time ballots are entered, they should be completely anonymous. (12h)
- Usability: Make some screencasts (like Camtasia-type) for learning the new system (32h)
- Usability: Add the option of a public URL to show the results of the election. Can be sent in emails for anyone to view. (12h)
- Usability: Welcome page (4h)
- Encourage making an account and making multiple elections
Related products to make?
- Build a “simple” site for the members of an Assembly to use when voting for officers.
Other Ideas, for possible future development
- Usability: Add ability to include address, phone number, birth date, etc. to make this a community directory. (48h)
- Add ability to print a phone list
- Add login ability so that authorized people can look up names, etc.
- Would need to ‘export’ names into each new election.
- Usability: Have “wizard” to introduce TallyJ to new users... step 1, step 2, etc.
- Draw schematic of an election process. (12h)
- Consider concepts from Metro designs
- Samples here…
- On Monitor page, allow lock out of a computer (not if full teller) (8h)
- Add import of data from USA online community database system (12h)
- More documentation online - about tallyj; more quotes about election; more guidance and tutorials about how TallyJ can help (10h)
- Add links to downloadable documents from various countries
- Add screen to show log of activity in the election. (Convert times to local time.) (12h)
- Add more logging.
- Improve sys admin reporting of # of logins, # of elections, size of populations, etc. (12h)
- Add page for named admins to view log reports
- Can use remote db access from Excel for now.
- Allow more than 9 for a local election? Don’t know of any locations that use this.
- Page for Additions/Deletions? For projection on screen. Refreshes from people list when edited from people page. --> No, don’t do additions/deletions.
- Have special treatment for Auxiliary Board members. ABM must decide after the election is complete.
Tips, Documentation and Instructions
- Manual processes… During roll call, arrange dropped off ballots in alphabetical order, so they are easy to find when their name appears
These are rough concepts and ideas... details are sure to change and be improved!
- Phone-in voting (future)
- Establish a network of Baha’is who would be involved from around the country/world
- Voter (A) would call a number, and enter a number to indicate which community they are voting in. They would then talk to someone (teller B) who would have a list of eligible voters in that community. Once A’s identity is established and confirmed (ask for DOB, Baha’i ID, address, email, phone number, etc.), teller B records that voter A has voted, and passes them to teller C to record who the vote is for. Tellers B and C could each be living in different locations, but specifically NOT in the community where voter A is voting.
- Could support multilingual voting if the languages spoken by tellers can be registered, and the call in voter can select from a list of languages to vote in.
- Self-service voting
- Voters would have to pre-register and be given a password. They log in using that password and fill in a ballot.
- Have a voting “window” of time, maybe the week before the election. Registrations could be processed up to the day before the election. The voting window would close during the election time, to coincide with when tellers are processing paper ballots.
- Mobile version
- A few aspects of TallyJ might be suited for a mobile version...
- DONE: Front desk registration - person with mobile phone could go to different rooms of the election location, and “register” people who may not have gotten to the front desk. Such as people in the kitchen who may have arrived before the tellers started registering people.
- DONE: Head teller monitor - the head teller could view the status of the ballot entry process. (Limited value, as the head teller should be with the tellers at all times!)
- Make available for non-Baha’i elections
- Any group of peers could use TallyJ to help run elections in their community.
- To make it more welcoming to them, could change wording to be more general.
- In election setup, use a wizard approach, and determine early-on whether this is for a Baha’i election or otherwise.
- If not for a Baha’i election, then wording elsewhere can be adjusted to be more general.
- Only show reports that they might be interested in
- Better validation
- When a person votes in person, a teller validates the identity of the person before receiving the ballot.
- However, when a ballot is dropped off for person (A) by someone else (B), the teller does not validate the identity of A, but takes B’s word for it.
- This leaves open the possibility for misuse, as B has complete control over the ballot they are dropping off.
- If B were malicious, they could replace the ballot with one of their own making.
- Similarly, if A is a Baha’i who is inactive or not in close contact with the community, B could take advantage of that and drop off a ballot “on behalf of” A, without A knowing about it.
- A similar possibility exists with mailed in ballots, even without the intervention of an intermediary.
- A malicious person could mail in a ballot under the name of an inactive Bahá'í, who would not be aware of this happening.
- A review of the voting habits of inactive Bahá'ís and of anyone who “always” delivers dropped off ballots for other people may help to identify possible abuses.
- In Canadian public elections, each voter must vote in person, unless they have specific circumstances. Dropped off ballots are not permitted. Mailed in ballots are possible, but only by special application beforehand and using a personalized ballot, etc.
- Announce that people who wish to mail in their ballot, or have their ballot dropped off, must first contact the chief teller (or Admin Office) in person or by telephone, to register their intention and to advise who will be delivering their ballot for them.
- This ensures that each voter has verbal interaction with a teller, who can record their intention to vote.
- This reduces the possibility of the malicious creation of a ballot “on behalf of” a person who is not otherwise participating.
- If a ballot is being dropped off by person B, there is still a possibility that B could maliciously alter or replace the ballot they are delivering. However, the accountability level is higher since the voter A has named them as the person they are entrusting their ballot to.
- If a ballot is received by mail, or dropped off, without being previously registered, an attempt can be made to contact the voter by phone - and if the voter cannot be contacted or verified, the ballot would be rejected.
- If a special phone number is setup for this purpose that is answered promptly by a teller, then it should not be a burden or barrier to voting. Since a verbal conversation is required, then a voice-message-only phone number would not be appropriate.
- During the conversation, an offer could be made to send a teller out to collect the ballot. This would eliminate the situation where a potentially untrusted 3rd party has private control of the ballot.
- Official online location of version 2
- “Experimental” online location of version 2. TallyJ was published here for a while. It worked well, but is too costly to keep as test site. This was experimental in mid-2014.
- “Official” support location where people can discuss TallyJ.
- “Official” location to download Version 1.8 of TallyJ
- More detailed information about version 1 of the software and other documentation.
- Blog-like site where I tried to provide support information. This originated as a group at MSN Groups.