Have you ever wanted to write your neighbor a kind letter, but didn't know how to spell their name? Or maybe you were invited to a relative's home for the holidays, but someone forgot to send you the address? Or worse yet, what if you're in charge of buying someone a birthday cake, but you don't know how old they will be this year? Well that's why I've build MiVoterInfo! Of course, it was also built to demonstrate just how easy, fast, and cheap it is to find sensitive information than many didn't even know was available.
What it does
This application is able to search through a database containing all 7+ million Michigan Public Voter Records in just seconds, and returns to you values such as First Name, Last Name, Middle Name, Home Address, Date of Birth, Gender, and other information useful for generating voter demographics.
How I built it
First, I needed to get the data into a quickly process-able format, so I took it from the .lst file I received and put it into a local Oracle Database (I would've used a cloud database service but storing >4gb of data is not cheap). Once I had the data, I created a simple Windows Form Application written in C# that allowed for users to easily search by whatever information they had available.
Challenges I ran into
The .lst file I was initially given stored the data similar to how an old COBOL system might, which made manipulating, processing, and migrating the data slightly difficult and extremely time consuming.
Accomplishments that I'm proud of
I was pleased to see how well the local Oracle Database turned out. In prior projects, Oracle Database Express has been the toughest part of the project.
What I learned
I've learned how to quickly format and migrate data from one platform to another.
What's next for MiVoterInfo
I think it's really important that people are aware of just how available all of their sensitive information is, so I'd like to build a site similar to haveibeenpwned.com that allows for people to see what public data is available, where it's available, and how to request that it be taken down.