Salad News


Tech, Media & Democracy Spring 2018


         SaladNews serves various needs of news readers to unwrap their interested topic efficiently. For example, if a reader is unfamiliar of a topic, he/she may search the topic and filtering articles to only easy reads (articles with low sophistication score), so he/she could understand a topic within 5 minutes. If a political analyst or culture researcher is interested in a topic, he/she may filter the news articles by only selecting ones with high sophistication score to gain more peer-reviewed data and arguments around the topic.



Product Flow

Upon login, users able to search news using the search bar or selecting a topic on the navigation bar. Alternatively, users who want to customize their search more, can specify their requirements in the home page. The example below shows the functionality to select desired topics and dates


They can choose a topic and a date range, specify source and reading ease level. When the button of ‘Build your news salad’ is pressed, the website will take users to the next page. Then SaladNews system enables user to filter articles with 5 levels of reading ease score. The higher the score, the heavier the reads. Users are able to like/unlike an article, of which source, reading ease level, number of likes, snippet, image and titles are provided. Users are able to filter or change filter of the reading ease level on the upper right corner. Also user will be able to select the time period of the selected article.


Technical Implementation

Overall, we built two UIs, a homepage, and an article-display page. The website is built in javascript, CSS, HTML, connecting to the back-end with python flask . We used Google NewsAPI to get news from different websites, and Flesch–Kincaid readability tests test to generate the sophistication scores of news articles. The Python application could crawl news articles about the given topic from different news websites, calculate the readability score, relevant information of the article (dates/title, etc) and display the score, number of likes for each article, which could allow users to choose the article they would like to consume.


Challenge Addressed

1. Gather and analyze the quality of news articles across different websites

2. Multi-thread to speed up the API processing

3. Return results based on sorted date order

4. Dynamically render the data on the front end, and have a generic template

5. Create visually appealing graphics, inspired by Pinterest layout

6. Give users options to personalize their search

7. Allow users to like and dislike articles, of which result is recorded in the database