Tiny website for previewing the ballot papers (house and senate) for Austalian federal elections

Overview

AusBallot

Code for https://ausballot.netlify.app/

The AEC (Australian Electoral Commission) has this page to view all the candidates for an upcoming election: https://www.aec.gov.au/election/candidates.htm

The problem with that is that it's a flat wall of text which is kind of hard to navigate.

Wouldn't it be good if you could see a preview of what the actual ballot paper looked like for your area, so that you can look at it and calmly decide where to put your vote before the polling booth?

That's what this tiny website does.

Disclaimer

This is not an official government website about the Australian election ballot.

There are about 5% of the total votes classified as informal (invalid) because of a number of reasons.

This website contains actual candidate information retrieved from the official government website.

This website is designed to help voters see who the candidates in their actual ballot papers are and what it will look like on the day.

This website also helps voters practice voting and prepare for polling day.

Voters can practice filling out their ballot papers, or even take a screenshot of the practice vote and copy what they have decided/prepared to the actual ballots on the day.

References

Development

  • npm install: Installs dependencies

  • npm run dev: Run a development, HMR server

  • npm run serve: Run a production-like server

  • npm run build: Production-ready build

  • npm run lint: Pass TypeScript files using ESLint

  • npm run test: Run Jest and Enzyme with enzyme-adapter-preact-pure for your tests

For detailed explanation on how things work, checkout the CLI Readme.

House/senate candidate data

The candidate data (in the data directory) was downloaded as .csv files from the AEC website here: https://www.aec.gov.au/election/downloads.htm

It was then transformed into .json using the script npx ts-node scripts/csv-to-json.ts.

We can run some analysis on the data using jq:

# Longest house ballot (max number of candidates):
$ jq '[.[] | .[] | length] | max' src/data/house-candidates.json
12

# All electorates with how many candidates they have:
$ jq -r '.[] | to_entries[] | .key + "," + (.value | length | tostring)' src/data/house-candidates.json | sort -t, -k2 -n
...

# How many columns each state senate ballot has:
$ jq -r 'to_entries[] | .key + ": " + (.value | length | tostring)' src/data/senate-candidates.json
ACT: 12
NSW: 24
NT: 9
QLD: 26
SA: 23
TAS: 15
VIC: 27
WA: 23
You might also like...

Source code of the papers.labml.ai Chrome extension

papers.labml.ai Chrome extension This is the source code of the papers.labml.ai Chrome extension. Get it from Chrome webstore About 🔎 View informatio

Dec 16, 2022

Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

May 3, 2022

Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

Jan 3, 2023

Tiny JavaScript library (1kB) by CurrencyRate.today, providing simple way and advanced number, money and currency formatting and removes all formatting/cruft and returns the raw float value.

Zero dependency tiny JavaScript library (1kB bytes) by CurrencyRate.today, providing simple way and advanced number, money and currency formatting and removes all formatting/cruft and returns the raw float value.

Nov 8, 2022

Tiny and powerful JavaScript full-text search engine for browser and Node

MiniSearch MiniSearch is a tiny but powerful in-memory fulltext search engine written in JavaScript. It is respectful of resources, and it can comfort

Jan 3, 2023

A super tiny Javascript library to make DOM elements draggable and movable. ~500 bytes and no dependencies.

dragmove.js A super tiny Javascript library to make DOM elements draggable and movable. Has touch screen support. Zero dependencies and 500 bytes Gzip

Dec 29, 2022

🛣️ A tiny and fast http request router designed for use with deno and deno deploy

Rutt Rutt is a tiny http router designed for use with deno and deno deploy. It is written in about 200 lines of code and is pretty fast, using an exte

Dec 10, 2022

"Awesome books" is a simple website that displays a list of books and allows you to add and remove books from that list. By building this application with JavaScript, the website is more interactive!

Awesome-books Description "Awesome books" is a simple website that displays a list of books and allows you to add and remove books from that list. By

Oct 18, 2022

In this website you will add books and also watch the lists of books. A website build wit HTML, CSS, and JavaScript.

Awesome Books ES6 In this website you will add books and also watch the lists of books. Built With HTML CSS JavaScript Authors 👤 HaaDiiii GitHub: @Ha

Oct 7, 2022
Comments
  • Remember last selected electorate and redirect there when landing on home page late

    Remember last selected electorate and redirect there when landing on home page late

    From https://www.reddit.com/r/AustralianPolitics/comments/umwy7g/comment/i8aknc1/?utm_source=share&utm_medium=web2x&context=3:

    Persist the filled in ballot papers as a landing page. (When I return to the website I have to select the electorate again when this is unnecessary if previously chosen)

    We can save the last selected electorate in local storage. The tricky bit might be recognizing if the user is going to the home page by clicking the navigation (in that case we do not want to go back to the electorate), vs the user coming to the landing page through a fresh page load.

    enhancement help wanted good first issue 
    opened by robinst 1
  • On print conditionally show instructions.

    On print conditionally show instructions.

    Reply to https://www.reddit.com/r/AustralianPolitics/comments/umwy7g/ausballot_preview_your_ballot_papers_and_prepare/i8eyvhj/

    Hmm I'd like to keep the instructions there. There's nothing preventing anyone from printing the page with the ballots empty, so in that case I think it would make sense to have the instructions still there.

    A good consideration. (Arguably it is unnecessarily complex but) you could make the instructions conditional:

    If (IsBallotsValidlyFilled()) {
      HideInstructions() 
    } else {
      ShowInstructions()
    }
    
    help wanted 
    opened by JohnLukeBentley 4
Owner
Robin Stocker
Other projects: https://www.whatsthistimestamp.com
Robin Stocker
Elections in Russia, Saint Petersburg, 2021: results, turnout, and commission data. With image charts and brief introduction to election fraud methods used.

2021 Elections in Saint Petersburg, Russia ???? Переключиться на русский ?? Jump to charts ?? Telegram bot In Russia, Saint Petersburg from 17th to 19

Vyacheslav 11 Dec 26, 2022
The visualizer is a tool developped by the cheminformatics department of the Swiss Federal Institute of Technology

Concept The visualizer is a tool developped by the cheminformatics department of the Swiss Federal Institute of Technology. We promote the development

Norman Pellet 31 Sep 13, 2022
Rapidamente faça consultas a Receita federal.

Better CPF Uma aplicação desenvolvida para automatizar verificações de CPF Better CPF é uma aplicação criada para fazer consultas a RECEITA FEDERAL pa

Alexsandro Xavier da Silveira 3 Aug 10, 2022
Papers from the computer science community to read and discuss.

Papers We Love (PWL) is a community built around reading, discussing and learning more about academic computer science papers. This repository serves

Papers We Love 66.8k Dec 31, 2022
Build homes, communities and hope through a virtual house-building game that mirrors the experience of physical volunteering programmes.

Habitat Heroes Note: The current house building time and quiz reset time have been shortened for the purpose of allowing users to try out more feature

Habitat Heroes 4 Mar 15, 2022
An indexed compendium of graphics programming papers, articles, blog posts, presentations, and more

Paper Bug CONTRIBUTIONS WANTED What is this? The idea is to have an annotated and easily searchable repository of papers, presentations, articles, etc

Jeremy Ong 64 Dec 16, 2022
For NUS PhD Students and Staffs, just one click to open the research papers on Google Scholar/IEEE/ACM, etc. with this script.

NUS Literature Quick Access For National University of Singapore's students and staffs, just with one single click you can open any paper without the

Naibo Wang 9 Nov 30, 2022
Programmers House api official wrapper

programmershouse-wrapper Programmers House api official wrapper Install: npm install programmershouse-wrapper Example of using: With .then //importing

Raid 2 Mar 23, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
This textlint rule found representations not suitable for English papers

This textlint rule found representations not suitable for English papers

SATO Yusuke 4 Mar 1, 2022