Skip to content

Command line tool + python library for checking voter registration status across several US states.

License

Notifications You must be signed in to change notification settings

front-seat/voter-data-tools

Repository files navigation

FrontSeat Voter Data Tools

Warning: this is very new code.

Contains a command line tool (./vote.py), and python library (vlib), to check voter registration status.

Currently we support checking in:

  • Georgia
  • Michigan
  • Pennsylvania
  • Wisconsin

Checking registration is accomplished by interacting directly with Secretary of State websites.

A survey of all SOS websites, including required data and obstacles to our approach (like CAPTCHAs), can be found in the Google spreadsheet we maintain. Feedback is most welcome.

Check registration of a single voter

To check whether a voter is registered:

./vote.py check <first-name> <last-name> <zip> <dob YYYY-MM-DD> [--details]

This will tell you whether the user is registered to vote. You can request extra details (registration date, current status, etc.) with the --details flag.

Check registration of multiple voters in bulk

There is also a tool to check every record in a CSV file:

./vote.py check-csv <input-file.csv> [--details]

A new CSV is written to stdout with the same fields as the input CSV plus extras related to the registration check.

Getting started

The vote command line tool, and underlying library, use python 3.12 (including newer language features).

To get started:

  1. Clone this repository (git clone [email protected]:front-seat/voter-data-tools.git)
  2. Create a virtualenv (python -m venv .venv)
  3. Enter the venv (source .venv/bin/activate)
  4. Install python dependencies (pip install -r requirements.txt)
  5. Try it! (./vote.py check your name zipcode dob --details — assuming you're in a supported state)

The node stuff (package.json and friends) is included only so that we can use Microsoft's pyright type checker.

You can run tests with ./scripts/test.sh. They are extremely minimal at the moment; ultimately, we'll want to have a basic suite of unit tests, and a separate set of tests for each state to make sure that the code continues to work correctly.

About

Command line tool + python library for checking voter registration status across several US states.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published