Inspiration
As naturalized citizens of the United States, registering to vote was an exciting coming-of-age activity for all of us to finally make our voices heard. Yet, when election day came, the process of finding and traveling to a polling location was filled with difficulty, and many members of our team were unable to cast our ballot.
While brainstorming, we found out that we weren’t the only youth dealing with this issue. A 2016 survey of the performance of elections in the United States showed that 30% of registered youth did not cast their ballot as they were unable to travel to their polling sites. In addition, a study conducted in Florida and North Carolina indicates that convenient access and travel to polling locations negatively affects many minority groups, leading voters to become discouraged from casting their ballot. Elderly people, rural voters, voters in lower socioeconomic strata, and those who are differently abled often have difficulty traveling to their polling sites.
GoVote is a platform aimed to help people of all ages, especially younger and older voters, get to polling locations as well as increase voter turnout in marginalized communities.
What it does
GoVote is a platform for organizations to address the polling location inaccessibility and help provide a community to marginalized groups. Community organizers can find volunteers to drive people to and from polling sites, and users can select what community organizations they would like to get rides with.
Here is an example use case. Jane needs a ride to her polling location. She sees that the League of Women Voters, an organization she would like to learn more about, is providing rides to and from her polling location. She selects the organization and she is then connected with a driver. Jane gets picked up, and along the way the driver picks up others who are interested in the League of Women Voters. This allows Jane to learn more about the organization on the way to her polling site. Once she votes, she catches a ride back to her house with the same organization.
How we built it
After finalizing our idea and its features, we started off by creating a data model to map out the interactions between all of the entities in the app. Then, we iterated through multiple UI and UX designs in Figma. We had to research what would be the most appealing for younger generations and also be understood well by older generations. Once we finalized our prototype and our design, we developed the app using Swift. We built the frontend using SwiftUI, the backend logic with Swift, and the database in Firebase. We implemented user authentication using Firebase’s authentication service.
We used AppSmith to provide organizations with a dashboard to onboard and manage drivers. We connected AppSmith to our Firebase instance and wrote in our frontend logic using JavaScript.
Challenges we ran into
In order to make the app appealing to use for everyone, especially younger and older people, we needed to make the user experience as smooth as possible, as well as ensure that the UI is simple and easy to understand. We elected to go for a high contrast color scheme to make the app easy to read and visually appealing. We had to spend a lot of time figuring out how to make the user experience as smooth as possible, and after going through many design iterations we ultimately settled on a design approach that takes users through each process in the app step by step, with one step per screen. This reduces the amount of information presented to the user which makes the app easier to understand.
Another challenge that we had was modeling our data into the NoSQL database. We learned how to create a data model flowchart that models all of the interactions between entities in the database. We were able to create this within the time constraint through lots of group discussion and teamwork.
Finally, refining our idea to get it to what we are presenting today was an arduous task. Although we had identified the problem that we wanted to solve, it was difficult to conclude how to implement our idea into a functional app which would use real-time data regarding location of polling sites to abstract routes to these destinations. Our main goal with this project was to connect voters to voting sites though building a network of riders, which led to multiple stemming questions regarding security, connectivity, and ease of use.
Accomplishments that we're proud of
We’re the most proud of creating an interface for riders and organizations. Through AppSmith and JavaScript we were able to create a website to allow for the voting advocacy groups to organize their driver information and manage it. Through Swift, we were able to create the rider side, where users can manage who they want as their driver and schedule their drop off time to polling locations. Utilizing our team’s wide variety of experiences, we were allowed to build a product within 24 hours that can help greatly with the transportation issue in voting. We are extremely proud of recognizing our unique skills and bringing them together to create something that can actively battle inequality in our community.
What we learned
Our goal is to bring local communities together to vote and increase voter accessibility. Since we are targeting young adults and elderly folk, we needed to ensure that the user experience was smooth and the design of the application was professional and inviting. As such, we learned a lot about optimal UX and UI design and everyone on our team became proficient in Figma.
The backend of our application is also quite complex as there are several moving parts that interact with each other. Each entity in the app (riders, drivers, organizations, etc.) have different attributes that are modified through functions that other entities trigger through interactions with the app. Thus, we learned how to organize these linkages with a data model and implement these linkages in Google Firebase.
What's next for GoVote
Because this app is built in Swift, it is only accessible to iOS users. Thus, we hope to implement this idea on android devices to accommodate all types of voters. In addition, we hope to implement an option for a payment method for tips between the organization and user using CheckBook. This feature would allow for more connectivity within the community and provide an opportunity for people to recognize efforts from others to provide transportation.
Note: Our video demos are in the Drive folder below! When accessing the Google Drive, the dashboard for user organizations is the first file in the folder, and our app walkthrough is the second link. Thank you!
Built With
- checkbook
- firebase
- firestore
- google-civic-information
- google-cloud
- swift
Log in or sign up for Devpost to join the conversation.