Represent!

In my first semester of my senior year at UC Berkeley I took CS160: User Interface Design & Development, which served as an intro to the world of mobile app development. This was the first time I really dove into Android and I found that I really enjoyed both the class and the type of projects it led to.

This app, Represent!, allows a user to discover, learn more about, and contact the legislators who represent them in Congress.

Motivation

With the midterm elections approaching, the goal of this project was to enable people to be able to easily inform themselves of the people currently representing them in Congress. Many people can't name their local representatives in the House, and sometimes don't even know who their state senators are. The Represent! app allows someone to discover who these people are, what they're involved in within Congress, and whether they're up for re-election with no further knowledge than their zipcode.

Technologies

For this project, I used Android Studio to develop the app, and implemented the Geocodio API, ProPublica Congress API, and The United States API for gathering data.

Implementation

I decided to create 3 main screens within the app. The first is where the user initially interacts with the app, the second displays the legislators for a zipcode, and the third screen displays a specific legislator's information. This simple breakdown makes it extremely easy for a user to navigate the app.

The first thing a user would do is either enter their zipcode, get their phone's location, or choose the 'Surprise Me' option to get a random zipcode. From this point the zipcode (or zipcode parsed from the phone's location) is passed into a call to the Geocodio API, where we can determine what legislators represent the district(s) corresponding to the zipcode, along with some basic information for each legislator. After the user selects one of the legislators, a call is made to the ProPublica API to get a lot more detailed information about the legislator. This information includes committees they're a part of, bills they've sponsored, their political party, and whether they're up for reelection. An image of the legislator is also pulled from the The United States API. Lastly, a couple links are provided for the user to go directly to the legislator's website or contact form.

By using this app, hopefully users can become more informed with regards to who is representing them in Congress, and be more likely to vote in midterm elections instead of just in the presidential elections. Through this users can become more involved members of their community.

The source code for this project can be found on my GitHub, if you'd like to check out in more depth how I used these APIs in the app.

Conclusion

This project provided valuable experience in developing apps in Android Studio, which I discovered that I really enjoy. It also gave me the opportunity to interact with multiple APIs, which proved to be both challenging and, in the end, rewarding.