Inspiration
As citizens in a democracy, we deserve to know what laws our government is making. This data is available on congress.gov; however, the lawmaking process is highly technical, and the official website does not make the data sufficiently accessible. Billboard is designed to help normal people like you and I keep up-to-date from primary sources on Congress's happenings.
What it does
Billboard allows you to search over 150,000 bills indexed from the Congress.gov API. You can easily see the status of each bill (inactive, pending, enacted into law). Additionally, a machine learning algorithm trained on this data provides the probability that a given bill will become law, based on similar historical bills.
How we built it
Billboard runs on a Svelte(Kit) + Tailwind + Flask + SQLite tech stack, with Pandas and SciKitLearn used for model training. The search function uses prefetched values from a local database, but the API makes live queries to generate bill summaries. The Congress.gov API limits bill queries to a maximum of 250, but a quick Bash script was enough to synthesize the results of many queries.
Challenges we ran into
It took a little while to figure out how to work around CORS errors when making HTTP requests from the frontend to the backend. Additionally, the inconsistent data required us to do lots of data preprocessing and manipulation before we could even start working with it.
The Congress.gov API sometimes returns inconsistent HTML or pre-processed data instead of giving us the unfiltered data to process ourselves. For example, there is no single field that returns the status of a bill; instead, the most recent action must be inspected to determine whether the bill is stagnant. Additionally, some of the summaries include the title of the bill at the beginning, while others do not. And when the title is there, it might be wrapped in <b>, <strong>, or <STRONG>...
Accomplishments that we're proud of
Even though we've only had 24 hours to work on this project, our UI is already far more intuitive than congress.gov's. Additionally, we were quite happy to be able to apply concepts from class to train the machine learning model on such a widely applicable data set.
What we learned
We learned a lot about how Congress works and what the life of a typical bill looks like. We weren't previously aware of the sheer extent of publicly available data published by Congress. In terms of technical growth, we also had to be flexible and open-minded, since each of us was new to at least one part of our tech stack, but each also had some prior experience, so we were able to learn a lot from each other. We improved our abilities with Git, Svelte, Flask, and even CSS.
What's next for Billboard
There is a lot of functionality on Congress.gov to implement—too much to do well in a hackathon. We're glad to pave the way to a more accessible government!
Built With
- flask
- pandas
- scikit-learn
- sqlite
- svelte
- sveltekit
- tailwind
- vite

Log in or sign up for Devpost to join the conversation.