Inspiration
As a team, we wanted to focus on a project that was meaningful and addressed an issue in our society that pervades our every day lives. We are in the information age, being constantly bombarded with massive quantities of information, which makes the dissemination of reliable information to the masses more important now than ever before. Thus, we decided that an accessible way to check the reliability of the information people were consuming was a project we wanted to tackle.
What it does
Our project, given a link to a news article, assigns a reliability score to that news article by analyzing its source and its frequency of occurrence in Google search results.
How we built it
As we knew early on that this would be effectively a single page application, we decided to use Flask to call our Python back-end and host our simple HTML and Javascript front-end. We also mean for this app to be widely accessible to future users, which was why we decided to build a web application. Designing a metric for assessing reliability was the next step in the process. We derived a formula to calculate the "reliability score" of a given article, utilizing the reliability of the article's source, the frequency of its occurrences in search results, and the reliability of the other news sources hosting this or similar articles in the same search results. Each of these parameters were given a weight to determine their influence on the final accessibility score out of 100.
Challenges we ran into
- Limited time/resources to research on the reliability of news sources (ex. New York Times, CNN, etc.)
- Inability to scrape the titles of all types of news articles
- Relatively slow processing time due to the need to retrieve and evaluate search results
Accomplishments that we're proud of
- Completion of the MVP (Minimal Viable Product)
- Getting accustomed to Python fairly quickly
- Handling a REST API with Flask, with all team members having little to no prior experience
- Doing thorough CSS styling to make the application visually appealing and user friendly
What we learned
- How to integrate Firebase with Flask
- How to use, and the nuances of, the Firestore Cloud Store and real-time databases
- How to pass data from a Python back-end to an HTML/Javascript front-end
- How to apply the Levenshtein Distance algorithm and the Longest Common Substring algorithm to match news articles with their news sources
What's next for News Reliability Checker
For the future, there are several places we can continue to improve on with the News Reliability Checker. First, we would like to expand on the list of news sources that have in our database, and do more research to assign a more nuanced reliability metric. Further, we would like to incorporate more methods to verify the reliability of articles as variables in the formula, such as scraping the content and parsing it with some means of sentiment/syntactical analysis. Next, we would like to do more error checking. As it stands, due to a lack of time, our application isn't as robust as it could be, and more error catching with the features we have would be an important next step. Finally, we would like to improve the processing time of our application. With the algorithm we have implemented, sampling a large amount of websites for use in the reliability assessment takes too long, which makes for bad user experience. In the future, we hope we can refine the algorithm so that the speed of our application isn't so drastically affected by our pursuit of precision.
Log in or sign up for Devpost to join the conversation.