Inspiration

Our team met during the 2022 SHAD summer program at the University of Calgary. During our time at SHAD, we learned that finding a problem to address is just as, if not more, important than creating a solution. When we came to Hack the North, we all knew that we wanted to tackle a big issue that has a serious impact on society.

Given the opportunity to participate in such a unique event, we wanted to find a unique way to use technology. We were all drawn to the problem of growing political and social polarization, which is largely caused by modern media. Echo-chambers and extremist outlets are becoming increasingly prevalent, and we wanted to work towards shielding society from these harms!

What it does

News Shield is a web-based platform that provides users with analytics about news articles from many different sources, that all have different opinions and leanings. The website presents users with popular topics that are often in the news, and uses the NewsAPI to dynamically find news articles relating to a chosen topic. Multiple APIs and modules are used to scrape and analyze these articles, returning information such as the articles':

  • url
  • author
  • description
  • word count
  • reading time
  • "reading ease"
  • appropriate grade level (for readers) and most importantly...
  • raw sentiment value &
  • relative sentiment value

How we built it

The News Shield platform is built with a python back-end and React front-end, using Flask to bridge both elements. The front-end allows the user to navigate pages and select overall news topics. When a topic is selected, key phrases are passed to the back-end, where a main function uses the key phrases, among other conditions, to search a database of news article titles using the NewsAPI. The newspaper API copies the content from the identified articles, and the OneSimpleApi "Readability, Reading Time and Sentiment for Texts" endpoint is used to conduct text analysis. All of this information is then formatted and passed back to the website using Flask.

A primary function of News Shield is the relative sentiment value measurement, which can be used to see how different authors/news sources address the same topic.

Our team also built a NLP algorithm to identify REAL or FAKE news. We decided not to implement this directly into the prototype at this stage, as it may come with biases based on training data and the model, which would counteract the purpose of News Shield.

Our team primarily used GitHub to collaborate, in addition to VSCode, and we divided tasks based on our unique skills and strengths.

Challenges we ran into

Front-End & Back-End!! As a team with limited software-dev experience, we ran into many challenges when attempting to combine a front-end & back-end element. We chose to work in React and python because of our experience with these languages, but we failed to look forward at merging these elements written in these two languages. Our initial solution used Flask and ngrok to host the back-end and front-end on seperate machines, which ended up not working using our methods. We pivoted and ran both elements on one machine, which allowed us to better develop our proof of concept.

APIs The designated back-end developers did not have prior experience dealing with APIs, so using multiple in this project provided to be a challenge. It was an interesting challenge to learn how different APIs operate, and how to use documentation effectively.

Accomplishments that we're proud of

We are proud that we were able to develop a (almost) complete solution in the designated time. As programmers with limited experience, we were very happy that we were able to all work together to build a solution that could possibly have real benefits.

What we learned

We learned how to develop on-the-fly, and how important collaboration is when developing elements individually!

What's next for News Shield

We would love to find better ways to analyze text, possibly with non-biased NLP, and improve on our solution until it is ready to release!

Built With

Share this project:

Updates