The 24 hour news cycle is exhausting and worrisome due to the volume of often sensationalist information. We wanted to build a product people could use to cut much of this out while staying informed.

What it does

Users can visit our website to see short bullet points of the top/trending articles in a given moment. These bullet points are the result of grabbing articles from real sources and running them through a summarization algorithm.

How we built it

The back-end is built in Python. We deployed a Flask application using Google Cloud Run to develop our own APIs for the front-end.

We used a Python module called Sumy to summarize news articles. Sumy combines multiple advanced natural language processing algorithms such as Latent Semantic Analysis and TextRank to achieve this.

We also used a Python client library for NewsAPI to grab trending and breaking headlines from a variety of news sources. NewsAPI is an HTTP REST API that allows us to search and retrieve live articles from all across the web. NewsAPI caches news articles from over 50,000 news sources and lets us grab trending articles as per a filter we apply (topics, keywords, timeframe, etc.).

All of this is passed to our front-end built in Node and Vue.js.

Challenges we ran into

  • This was our first time using Flask for any substantial API development. Working on defining communication patterns between the front-end and our custom API was a challenge.
  • None of us had experience with the Google Cloud Platform ecosystem. We encountered a significant roadblock when trying to get our Flask API deployed to GCP. At first we tried to use Google App Engine, however we ran into dependency issues. Eventually we transitioned to using Google Cloud Run.

Accomplishments that we are proud of

Everything is deployed live and fully functional built from scratch pretty quickly. Anyone can access this app right now so long as we don't run out of free API calls.

What's next for In A Nutshell

  • We'd like to present a timeline for users to scroll through that is properly dated, so users can see what they've missed.
  • We don't currently have this hooked up to any database. For a long-term product, we would need to change that.

Built With

Share this project: