Track
Inequality
Inspiration
Voting is an important civic duty. Unfortunately, many eligible voters choose not to vote for any candidate in certain races because they do not know which candidate most closely aligns with their beliefs. Other times, they vote for a random candidate, or vote for a candidate because of their political party, without knowing too much about this candidate’s actual campaign platform since there is no easy way to compare all of the candidates in the election. A lot of the time it is very difficult to do research into these candidates because information is very scattered and decentralized, and consequently makes being an informed voter very inefficient. Because voting, especially voting in local elections, is essential to combatting so many different facets of inequality in the United States, anything that negatively impacts voting will also propagate inequality. Providing voters with a straightforward way to look up this information would increase voter participation and allow voters to make more informed decisions about which candidate to vote for.
What it does
PolMatch hopes to deliver a solution to the issue described above. Voters can fill out a survey that touches on many of the biggest concerns in current elections in the US. This was created with the idea of matching users with politicians that include the users’ interests as part of their platforms. We also allow users to find the nearest politicians and judges running in elections near them, and we allow users to see the history of donations that a particular candidate received in their political career so that users can make more informed decisions about who they support.
How we built it
PolMatch was built using Javascript and React on the frontend, using the Material UI framework, and Python and Flask with a REST API on the backend. In addition to the REST API, Pollmatch incorporates a FireStore database as well. Beautiful Soup, a web scraping library for Python, was used to get the information and donation links for different politicians.
Challenges we ran into
On the frontend, it was mostly smooth sailing aside from getting a survey that could send the results to the backend as a JSON or other parsable format. On the backend, getting the politicians’ data via the web scraper proved to be a bit of a challenge at first. A major reason for this was that much of the data was stored in different webpages, or in some cases it came in the form of text which would be difficult to process. Connecting users’ addresses to relevant politicians was also something of a challenge, though we eventually figured out how to do so in a convenient way. On the backend setting up API calls between the frontend and the backend was also challenging because sometimes python structures could not be converted to Javascript ones until they were serialized into JSON objects.
Accomplishments that we’re proud of
We managed to get a sign up page that then scrapes the web based on the user’s address. Additionally, a functioning survey that provides a JSON of the user’s responses that could then be read by the backend was produced.
What we learned
We learned how to integrate a React frontend with a Python Flask backend. We also learned how to build an interdependent system of web scrapers to gather multiple kinds of data. This involved utilizing the Beautiful Soup package and transferring the results into a web database. We learned how to set up efficient REST API calls as well.
What's next for PolMatch
The next big step for PolMatch is finding and adding more data about politicians and candidates, particularly information about their stances on the major issues in US elections right now. When a voter fills out the survey about their views on these issues, PolMatch could then tell them which candidate’s platform most closely aligns with the voter’s beliefs. An added improvement on this functionality would be to allow voters to indicate which points of contention they care about most. With the survey’s current format, all of the issues would have to be weighted in the same way for every user in PolMatch’s candidate recommendation, but we know that some people feel extremely passionate about certain topics, but not so much about others, so weighting everything the same way for everyone would not reflect people’s true political stances most accurately. Improving the survey to allow voters to express which concerns are at the top of their list would allow PolMatch to make better candidate recommendations. In addition, PolMatch’s survey and the candidate data in the database would have to be updated regularly as new issues emerge in every election. The major issues in 2024 will probably not be exactly the same as in this year’s election, after all.
Log in or sign up for Devpost to join the conversation.