Throughout time, there has been a concern about security, especially when it comes to voting. Many people are very concerned about whether or not their ballot went through or if their information got leaked to hackers. As young software developers, we felt it was our moral obligation to help fight this issue. This problem is causing an unusual amount of stress in people who are exercising their rights. VOTE helps solve this critical problem by providing a safer and easier way to vote using Computer Vision. This web app can be used during this unprecedented time and after.
What it does
VOTE is a web app that makes casting a vote easy and simple. The user can log in/register into the application which uses OpenCV to make the authentication safe. The user can chat in real-time with other people to discuss politics and certain issues. They can also check nearby polling locations along with current elected representatives.
The user starts at the authentication where they can register or sign in if they have an account powered by firebase user authentication.
Dashboard: After the user logs in, they can view the dashboard from which they can select a few options such as news, polling locations, casting a ballot, and much more.
Statements: If you select statements, you can view politicians' statements and stances. You have to give the year and the politician ID, so we can retrieve the information from the API. A user can access the politician ID and year from the links we gave them on the website.
Ballots: If you select ballots, you can cast a ballot where you enter your information and the OpenCV algorithm will verify the user. The user will upload an image of their driver's license so the algorithm can verify the user. Once the user submits their ballot, their information, name, uid, and who they voted for will reflect in Firebase.
Bills and Proposals: If the user selects bills and proposals, they can search up a particular candidate's bills and proposals, giving a politician ID. To obtain a politician ID, the user can click the link below the search bar to find that.
Polling Locations: If the user selects polling locations, they can find nearby polling locations and current elected representatives in their area. The user will have to type their address, which will not be saved, to obtain this information. This information comes from the Google Civic Information API and the autocomplete search bar is powered by the Google Maps API.
News: If the user selects news, they can preview articles on what's happening in politics. They can view the full article by clicking the title where they will be redirected to the link for the full article. The news previews come from the New York Times API.
How we built it:
- Google Civic Information API for retrieving data regarding polling locations and elected representatives
- Google Maps API for the autocomplete search bar
- Firebase for user authentication and real-time data storage/retrieval
- New York Times API to retrieve the latest news on politics
- Figma for UI/UX design
- OpenCV for verification of user
- Pro Publica API for listing politician's statements and bill history
Challenges we ran into
We ran into many challenges and technical bugs, but that is what programming is all about. The first challenge we ran into was hooking up Computer Vision to the app, as we aren’t too familiar with it. Another challenge we ran into was figuring out a way to bring a real-time chat feature powered by Firestore, which we unfortuantely were not able to solve.
Accomplishments we are proud of
We are proud of so many things. We made use of this project to the best of our abilities in the allotted time. We got to use OpenCV, which is something that isn’t too familiar to both of us. After seeing how many layers of security it can provide, we plan on using it more often. Additionally, we combined all of our skills to create a mobile app that has multiple features and we are proud of this app. We love the UI/UX and we love the backend. Finally, we are proud of the amount of work we pulled off in the given time. We would have never thought we could accomplish this much in such a small amount of time.
What we learned
- Real-time storage/retrieval of messages
- Using OpenCV to verify users ##Things to Note
- The Drivers License algorithm Test is only available on the demo due to issues with live hosting integration and flask bottleneck
- The Statements and Bills politician search for years 2014-2020