Voting Information Page
Voting Resources Section
Sign Up Page on Website
Log In Page on Website
Form to Select Voting Center Location and Date to Make a Voting Appointment
The Storyboard Layout of our iOS App
Sign Up Screen (iOS App)
Log In Screen (iOS app)
Profile Screen (iOS App)
Maps Screen (iOS App)
Schedule Screen (iOS App)
Voter Suppression and a lack of awareness of available voting locations is an obstacle that we as a community still have not completely overcome. It is increasingly difficult for many to find resources regarding where to vote, how to vote, and when to schedule a voting appointment. Our iOS app and website aim to solve these problems by providing a platform where a voter can find information regarding voting as well as set a date, time, and location to vote.
What it does
The project has two main components - a website and a companion iOS app. The central features of the website include a page listing some commonly asked questions regarding how to vote and why one should vote, a page where users can create an appointment to keep track of where and when they are voting, along with an account system that maintains their appointments across multiple devices. In short, we make it easy to remember where and when you are voting and help provide much needed information to clarify the voting process.
How we built it
Aditya Phatak and Adithya Chandrasekar used ReactJS and React-Bootstrap to creatively develop the website’s informational pages as well as login and signup dashboards. Furthermore, Aditya and Adithya worked on implementing User Authentication using Google Cloud’s Firebase database for the signup and log in pages on the website by using the useEffect and useState hooks offered by the React View Library.
Kyle Kumar worked on designing and developing the iOS application and implementing Firebase User Authentication by integrating the cloud technology with Swift in the iOS app development. Both the iOS app and the website stored user account information (email and encrypted password) on the cloud, while appointment information, such as user location and date, was stored on Firebase’s Realtime noSQL Database. We used the Google Maps API to help users find nearby voting centers on both our website and app, and Nikhil Pitta helped implement this on the iOS app.
Challenges we ran into
Implementing the Google Civic Information API was a challenge that we are still trying to resolve because of the complexity of integrating the API with Firebase’s noSQL Realtime Database in order to store a user’s selection of the location that they want to vote at. Additionally, this was our first time using Google Cloud Services, specifically the Firebase Cloud Database for user authentication and storage of relevant user data, and we had to learn how do do this both on swift for iOS development and ReactJS for web dev. Nonetheless, we were able to successfully store and fetch a user's email, selected location, and selected date so that the information could be accessed in a cross-platform manner and on any device.
Accomplishments that we're proud of
While it goes without saying that we are proud of our product as a whole, a few specific things we were especially pleased with were being able to integrate Firebase to manage accounts and pushing out both an iOS app and website in merely a week's time. It was especially rewarding to see our learning progress with ReactJS and Swift, both of which we had minimal experience with beforehand, as we can now confidently proclaim that we built our own fully functional website and iOS app.
What we learned
To be completely honest, it wouldn’t be an overstatement to say that we learned how to use almost all the tools we implemented in this application over the course of this last week. Going from little experience with ReactJS, Firebase, and Swift, to being able to build an intentionally designed website and iOS app really attests to the immense amounts of learning we had to do on the technical side of things.
In addition to learning how to use new tools, we also learned a little more about how to effectively collaborate remotely, leveraging tools like Github and Repl.it to our advantage. We learned the hard way that trying to push the same document at the same time to Github would cause a massive headache and merging commits was a nightmare but in the end, we learned from our mistakes and overall, we believe we created a great product.
What's next for Go Vote!
We hope that both our iOS App and Website can serve as tools that motivate people in the Bay Area to increase their voting activity by realizing how important their voice is, especially after going through our informational website that additionally provides local, state, and national voting resources to increase awareness of how important it is for members in our community to participate in elections, no matter their size.
Our next steps involve successfully being able to implement the Google Civic Information API into our map feature in order to expand the number of voting centers that are displayed upon a user’s search. Additionally, we would like to add more voting resources specifically targeting different minorities and disenfranchised ethnicities to make the voting process more inclusive and accessible. We would also like to work on Machine Learning Algorithms that recommend voting centers to users based on user location and ratings on how efficient the voting centers are. Lastly, on the technical side, we would like to work on implementing more cyber security features to our website to create an even more professional product.