What it does
Bernstein attempts to determine whether a candidate is funded by and therefore affected by “dark” undisclosed money.
We hope that Bernstein will engage young voters to better understand the motivations of their representatives, increasing voter education and turnout and strengthening democracy
How we built it
Bernstein is a Flask app built with Python3 (see below). We use NumPy for numerical computations and scikit-learn for statistical analysis and PCA. We also used the Plot.ly API for charting. The whole thing is wrapped in Bootstrap.
Challenges we ran into
- Python2 vs Python3. Halfway through we realized that different team members were using different versions of Python (we know, rookie mistake). Because of this, we weren’t able to put together our web scraper in time.
-Plot.ly’s API limit. We kept hitting the Plot.ly API limit while testing, so we had to figure out a few “creative” workarounds.
What we’re proud of
- We’re pretty good at predicting dark donors’ stances on the issues. As an example, Bernstein identified that dark donors to Kelly Ayotte’s campaign (R., NH) were against environmental protection, taxation, and gun control. Our own (extremely time-consuming) research traced $6.3 million from the oil industry, pro-gun interests, and large financial companies through two super PACs to Kelly Ayotte’s campaign, confirming Bernstein’s original prediction.
What we learned
- To be careful and explicit when it comes to compatibility issues
- How to use numpy and scikit-learn to implement numerical computations and statistical techniques
- How to use Flask as a web framework
- About the surprising (or not really surprising) prevalence of dark money in politics
- So, so much about Lindsey Graham (R., SC)