đź’ˇ Inspiration

Pledgely was inspired by a simple problem: during elections, politicians make a lot of promises, but once they are in office, it's hard for voters to keep track of whether those promises are kept. It's hard for regular voters to stay up to date on political promises because they are often spread out across news articles, policy papers, and government websites. We wanted to make a tool that makes political accountability clearer and easier to understand by putting all of the promises in one place where people can easily see what was promised and how much progress has been made.

🔍 What it does

Pledgely is a site that keeps track of political promises and shows users if politicians are keeping them. People can look at political parties, see politicians in those parties, and look at specific promises that have been made. The goal is to help voters understand what their leaders promised and whether those promises are being kept over time. The platform helps people stay informed and involved in political accountability by presenting this information in a clear and organized way.

🛠️ How We Built It

Pledgely is a full-stack app built using React for the frontend and Tailwind CSS for styling as well as Express with MongoDB for the backend. The project’s core idea is recording political promises through the use of AI. The Backboard API checks whether promises are pending, in progress, fulfilled, or broken. We used antigravity to debug any errors we encountered with the Backboard API. We used NewsAPI (with GNews as a fallback) to retrieve real articles from the web to back up the grading of the promises. We also support uploading news article PDFs and use Gemini API to extract promises from them, making sure it is relevant to only the last 4 years. Auth0 is used for sign-in, Mongoose for data models, and there’s a feature to compare politicians side by side. No cloud services were used; MongoDB can run locally or remotely.

đźš§ Challenges We Ran Into

We initially used GNews and NewsAPI to retrieve relevant articles, but we ran into issues where the APIs often returned either very few results or articles that were not closely related to the user’s query. To improve the quality of results, we refined our search queries to be more specific so that the APIs could better match relevant news articles.

In addition to improving the query specificity, we implemented a cascade approach to ensure the user would still receive useful results even if one service failed. The system first attempts to fetch articles from GNews. If GNews does not return meaningful results, the request automatically falls back to NewsAPI as a secondary source. If neither API provides sufficient articles, the system generates a Google News search URL based on the user’s query. This ensures that users can still access relevant news coverage even when the APIs fail to return reliable results, making the feature more robust and resilient.

🌟 Accomplishments We’re Proud Of

We were able to build a platform that effectively connects political activity in the real world with a technical system that makes this information easier for users to explore. On the backend, we created API endpoints that link the data layer of our application to the user-facing platform. These endpoints allow the frontend to request and display information about political parties, individual politicians, and the promises they have made. As a result, users can easily navigate the platform and understand who made certain commitments and what those commitments involve. We also implemented a user authentication system that allows people to securely create accounts and log in to the platform.

One feature we are especially proud of is the PDF upload functionality. This allows documents related to political promises or reports to be uploaded directly to the platform. Our backend then processes the uploaded files and uses the title of the promise to search the web for relevant updates or evidence of progress. Based on this information, the system generates a progress percentage along with a short justification explaining why that score was assigned, which originates from our custom AI agent created with backboard.io, another integration we are proud of!

This automated analysis helps users quickly understand how much progress has been made on a promise without needing to manually review large amounts of information. Another aspect of the project that we are particularly proud of is successfully integrating external services such as Auth0 and Backboard.io. Auth0 allowed us to implement a secure authentication system so users can safely create accounts and log in to the platform. Setting up authentication required configuring tokens, redirect URIs, and ensuring that our backend correctly validated user sessions, which gave us valuable experience working with real-world identity management systems.

📚 What We Learned

Through this project, we were able to learn a lot regarding the design of RESTful APIs, the design of backend data models, as well as the integration of the frontend and backend systems. Moreover, the project has given us the opportunity to work with authentication systems such as Auth0, as well as dealing with real-world debugging challenges that may occur during the integration of different technologies.

We also had to think carefully about credibility and reliability when incorporating AI-generated insights into the platform. Since the system generates progress percentages and justifications based on web searches, we focused on ensuring that the information being analyzed was recent and relevant. For example, our PDF upload system prioritizes recent uploads that have been published in the past 4 years and prevents duplicate documents from being processed again. This helps maintain data quality and avoids redundant analysis. By building safeguards around the data sources and outputs, we aimed to make sure the generated insights remain as trustworthy and useful as possible.

🚀 What's next for Pledgely?

In the future, we hope to continue developing Pledgely by adding more real political data and better tracking capabilities for promises made over time. As the platform grows, we envision building a larger and more comprehensive database of political promises. With consistent updates and additional sources of information, the promise database can become more accurate and reliable, allowing users to better understand how commitments evolve and whether meaningful progress is being made.

It would be great to incorporate features that enable users to follow their favorite politicians or issues and get notified when there is progress on their promises. It would also be great to enhance the user interface and incorporate some visualizations to make Pledgely more enjoyable to use. Our ultimate aim is to create a powerful tool that can be used by voters to stay informed and hold their leaders accountable.

Built With

Share this project:

Updates