Inspiration
We believe that transparency is the foundation of a healthy democracy, but for the average voter, "transparency" often means sifting through dense government databases and complex PDFs. We wanted to bridge the gap between public data and public understanding.
The idea for LobbyLens was born from a simple vision: "To provide unprecedented transparency in politics by visualizing campaign finance data directly onto images of politicians." We wanted to create a tool that turns abstract financial figures into a visual reality, making the influence of money in politics instant, intuitive, and impossible to ignore.
What it does
LobbyLens is an Android application that uses AI to reveal the money behind the politician.
- Snap & Reveal: Users can take a photo of any politician, and the app instantly identifies them using Google Cloud Vision API (Web Detection).
- Generative Visualization: It uses Gemini 3 Pro Image to naturally edit the photo, overlaying "donor badges" (company logos) onto their clothing based on their top contributors.
- Deep Data Dive: Beyond the visuals, the app aggregates data from the FEC (Federal Election Commission) and U.S. Senate Lobbying Disclosure (LDA) records. Users can toggle between campaign contributions and lobbyist "gift" reports.
- Interactive Analytics: Users can explore historical funding trends through interactive bar charts, filter by election cycles, and search for specific corporate donors.
How we built it
We built LobbyLens using Kotlin and Jetpack Compose for a modern, reactive UI. The architecture follows the MVVM pattern with a clean separation of concerns:
- Identification: We integrated the Google Cloud Vision API to identify public figures from images, utilizing Web Detection for high accuracy.
- Generative AI: We utilized Gemini 3 Pro Image via Vertex AI. We engineered specific prompts to instruct the model to place logos naturally on clothing while preserving the politician's identity.
- Data Aggregation: We built a robust repository layer (
PoliticianRepository) that fetches data from the FEC API and Senate LDA API. We used Retrofit for networking and Coil for image loading. - Security: We secured our API calls using Firebase App Check to prevent unauthorized access to our cloud resources.
- UI/UX: We designed a "Premium Dark" theme with Navy Blue and Gold accents to convey authority, utilizing glassmorphism and Material 3 components.
Challenges we ran into
- Data Fragmentation: Campaign finance data (FEC) and Lobbying data (Senate LDA) live in completely different silos with different naming conventions. Merging these into a unified "Donor Profile" required creating unified data models to handle the disparities.
- Reliable Identification: Early on, we realized on-device models were insufficient for recognizing specific politicians accurately. We had to pivot to using the Google Cloud Vision API Web Detection for higher accuracy.
- API Security: Protecting our cloud API keys while keeping the app accessible was a challenge. We implemented Firebase App Check with debug providers to ensure only our valid app instances could make requests.
Accomplishments that we're proud of
- The "NASCAR" Effect: Successfully implementing the generative AI pipeline to place logos on suits. Seeing the first high-quality render where a politician appeared "sponsored" was a huge milestone.
- Seamless Integration: We successfully combined three distinct, powerful APIs—Vision for seeing, Gemini for creating, and FEC/LDA for knowing—into a single, smooth user flow.
- Polished Aesthetic: We are proud of the "Presidential" design system. The custom animations and tabbed interfaces for toggling between "FEC Contributions" and "Lobbyist Disclosures" feel incredibly professional.
What we learned
- Government Data is Messy: We gained a deep appreciation for (and frustration with) the inconsistencies in public record-keeping. We learned how to handle rate limits and parse complex JSON structures from the Senate LDA API.
- The Power of Multimodal AI: We learned how to chain different AI models together—using discriminative AI (Vision) to categorize the world and generative AI (Gemini) to augment it.
- Security First: Implementing Firebase App Check taught us the importance of securing mobile backends from the start, rather than as an afterthought.
What's next for LobbyLens
- State-Level Data: Currently, we focus on federal data. We plan to integrate state-level campaign finance APIs to bring transparency to local elections.
- Social Sharing Cards: We want to expand the "Save & Share" feature to automatically generate social-media-ready infographics that combine the AI photo with key stats.
- Real-Time Alerts: Implementing notifications when a politician you follow receives a significant donation or files a new disclosure.
Log in or sign up for Devpost to join the conversation.