Inspiration
Bad info spreads fast, while verification is slow, manual, and opaque. We wanted a tool that:
- meets people where they are (APIs, dashboards, CI/CD),
- explains why a claim looks true/false (not just “trust me”),
- feels friendly so teams actually use it.
Also… we really wanted a name that made us smile as much as it made us cringe. CheckMate stuck
What it does
CheckMate is a playful, developer-friendly web app that checks the validity of information across multiple sources and returns a single, transparent confidence score with explainable evidence. Think of it as your fact-checking mate who does the legwork and shows the receipts.
How we built it
We used python and TypeScript to make the backend, and Next.JS for the front-end. The data validation pipeline works like this:
- The user creates a ‘story’, representing the information they are trying to fact-check, and they upload at least one article (which is basically a url to any webpage) that contains said information.
- The web-app then uses an algorithm to find other relevant articles that share the same information with the article provided.
- Provenence is checked first. All the sources of all the different articles are evaluated using a publically accessible domain reputation evaluation API. This takes into account information about the source such as what type of source it is (e.g. ‘news outlet’), how long it’s been on the web, etc., and assigns a reputation factor to each source
- Then, we check Corroboration. The more articles from indepent sources that are uploaded by the user, or found by our algorithm that support the information, the higher the corroboration score.
- Then we check the language used within each article. Click-bait titles such as (‘LEAKED!!!’) yield penalty points, which lower the overall linguistic analysis score
- And finally, if the information contains financial data, such as stock or crypto-currency info, we perform claim checks on the data.
- Once we are done evaluating each aspect of the information, a final validity score is calculated.
Challenges we ran into
Integrating the back-end with the front-end gave us a lot of trouble. Properly communicating between scripts, keeping a well maintained database and a well structured dirrectory was also hard given the fact that we've been awake for the past 27 hours, working against the clock to both design and implement a solution to a very difficult real-world problem.
Accomplishments that we're proud of
Making the process of eficiently validating data so easily acessible.
What we learned
We learned A LOT about integrating APIs and making them communicate correctly, and efficiently. We learned about making eficiently structured programs consisting of little scripts, that each communicate to make one larger program.
What's next for CheckMate
A good long-term development plan for the project, would be to make it so that it runs continuously, filtering through web-pages for valid information that is relative to the user (based on info collected through a user profile, with the users consent). The app could then nottify the user about information that is relative to them, provided ofcourse that it is valid.
Built With
- next.js
- python
- typescript
Log in or sign up for Devpost to join the conversation.