Inspiration

Western New York suffers from severe lack of voter turnout, with an estimated 33% of registered voters participating in general elections. This lack of voter turnout allows for incumbent politicians to maintain their position with relatively little input from the community. In order to propagate much needed economic and social reforms in the western New York region, it is vital that more citizen participate in their local government.

What it does

WNY Votes is a web application to spur voting registration and participation in local elections. Through intuitive design and easy-to-use features, WNY Votes informs citizens of western New York about their local candidates, their polling location, and provides an intuitive interface for registering to vote.

Goals:

  1. Simplify the voter registration process.
  2. Provide information about running candidates.
  3. Inform users about polling locations.

Non-goals:

  1. Letting users communicate with politicians.
  2. Recommending candidates.

Application Demo

A demonstration of this application can be found at wny-votes.nicholasyager.com.

How I Built It

Voter precinct data and geolocation was made possible by accessing the Erie Country Board of Election's internal API used to find a user's voting precinct and local government officials based on their home address. This was accomplished by writing a middleware API to access this data and present it in a meaningful way.

Election candidates were parsed from a PDF released by the Erie County Board of elections, prepared, and hosted in a MySQL database.

Lastly, the voter registration functionality was constructed using pdffiller, a Node.js module that serves as a wrapper for pdftk. This allows the Node.js application to accept JSON data about the user registering to vote, and fill the New York State voter registration form for them. This PDF is then automatically returned to the user for printing and submission.

Challenges During Development

The largest challenge I had was engineering a client for the Erie County Board of Election's API. Being completely undocumented, accessing this obscured pubic data proved challenging.

Accomplishments That I'm Proud Of

This is my first time using Angular.js in a project. Despite the initial learning curve, my choice of Angular proved wise as an opportunity for growth.

What's Next for WNY Votes

I would like to aggregate more data about the candidates, including information about their backgrounds, political views, polling numbers, and news about them. The more information and context I provide to my users, the more knowledgeable our electorate can become.

Share this project:

Updates