Inspiration
There are constantly new laws being introduced, advanced, and signed into law, but they are so hard to track, and learning about them often requires depending on news media, introducing potential bias and/or misinformation. To solve this, TrackLaw aims to give users direct access to current legislation by displaying its status/progress, the actual text of the law, a summary of key points, and a chatbot to ask questions.
What it does
TrackLaw pulls data from the official API for the U.S. Congress, and
How we built it
We built it with Dart and its Flutter framework for portability to different mobile operating systems, Firebase, the Congresss API, and Google Gemini. Our first step was to engineer the flow of data and the user across different screens, by creating wireframes. From there we set up one screen at a time.
Challenges we ran into
Our toughest challenges were setting up user authentication with Firebase, and properly handling the JSON results from APIs while also handling potentially empty fields. Many UI fields and functions depended on API values, so we had to account for empty fields through exception handling and meaningful default values.
Accomplishments that we're proud of
We are very proud of how much we have been able get done this weekend, specifically the landing page and sign in/up, the handling of API data, as we had very little API experience, and building a working chat box.
What we learned
We learned a lot about setting up Firebase, working with APIs and JSONs, creating many interconnected data structures, and maintaining states in Dart and Flutter.
What's next for TrackLaw
There is more data from the Congress API that we hope to include, such as who proposed the given legislation, who is voting on it and what was their vote, what kind of subject it details with, and search/filter/sort functionality to give the user more power in their results. We also hope to give the user the ability to track bills they are interested in following.
Log in or sign up for Devpost to join the conversation.