We have always been interested in politics, but we found it was difficult to actually communicate with our representatives. One of us had even tried to contact his local representative, but of course, the representative never responded. It is aggravating when you can’t even communicate with someone who is supposed to be representing your interests in government. We discovered that this was a common problem: politicians often don’t respond to individual calls, emails, or letters, and if they do, it’s almost always a cookie-cutter response by an intern or secretary rather than by the politician his/herself. People who personally send letters to their politician would also not know if fellow people had the same questions or concerns or if their concern had been addressed already. Considering the number of voters a politician may have, it may be impossible for them to answer every single question they recieve.

We thought it would be more efficient if a politician would only have to answer the most pressing questions through a convenient platform. Additionally, video responses would ensure that constituents know that they are not getting a prefabricated response by an intern or a compromised response. This solution of participating in politics gave us the inspiration of creating an app that improves the communication between politicians and their constituents: PoliticianConnect.

What it does

PoliticianConnect is a platform where the public can conveniently ask questions to their representatives. It is divided into two account types: constituents and politicians. When a regular user creates an account, PoliticianConnect automatically assigns the relevant senators, representatives, and governors for that user based on the address they signed up with.

Users can create a question-post directed at a representative and can “upvote” questions made by other users that they like. The most pressing questions float to the top, creating more attention and visibility to the issue, demonstrating that the post demands an answer from the representative. Our ML algorithm automatically assigns a tag to the post when the question is submitted, allowing for convenient sort features.

The politicians can then create a politician account in order to effortlessly respond to the most upvoted questions. They can reply with text, a video, or both. On the “answered” page, users can look at all the questions their politician has answered.

On the “ranks‘ page, users can see which politicians have answered most questions that week, signifying which politicians are most active in communicating with their constituents. The user can click on the politician’s website

How we built it

The app is built using Meteor.js, HTML, CSS, Bootstrap, and Flask. Videos uploaded by the politician are uploaded to Google Cloud storage and retrieved using signed URLs. For machine learning, we constructed an NLP naive bayes topic classifier using scikit-learn. We used the Google Civic Information API to retrieve information about politicians.

Challenges I ran into

We initially had difficulty with using Bootstrap with Meteor.js. At the start, we tried to use Bootstrap Studio, but found it very annoying to synchronize our work together, so we ended up not using it.

Accomplishments that I'm proud of

We are happy that we created a powerful web app with a really nice UI.

What I learned

We learned how to use Meteor.js together with bootstrap. This was our first time using Bootstrap Studio!

What's next for PoliticianConnect

The Civic Information API provides a lot of information for each politician, including their website URL and office locations. We’d like to be able to display that information for the user.

Add more ways of sorting questions and answers.

Add more types of politicians (such as state legislators and mayors) and candidates

Share this project: