A news curator app that associates relevant news articles with a personalized stock watchlist
- Introduction
- Backend Functionality
- Client Functionality
- Sample Screenshots
- Future Improvements
- Prerequisites and Installation
- License
News Pulse is an application that curates news articles for users based on their specific stock watchlist. Users can log in using their Google, Twitter, or Facebook accounts, view and manage their stock watchlist, and get relevant news articles for each stock. All user data, including the watchlist, is stored in Firebase.
The backend is built on Google Cloud Platform (GCP), using Google Cloud Functions and BigQuery. Here is how it works:
- News articles are fetched from the NewsAPI.
- These articles are then analyzed using a Python library called Langchain. This library utilizes a Language Model to analyze the description and contents of an article and returns which sectors are impacted by the news.
- The analyzed articles are meant to be stored in tabular format in BigQuery. (Note: This is currently a work in progress)
The client application is built in Flutter. Here is how it works:
- Users can log in using their Google, Twitter, or Facebook accounts.
- They can view their stock watchlist, with each stock's current price displayed.
- Stocks can be added or removed from the watchlist.
- Holding down a stock on the watchlist will display all relevant news articles for that stock. (Note: This feature is currently a work in progress)
Here are some screenshots from the current version of News Pulse:
...In future iterations of News Pulse, the following improvements are planned:
- Enhancements to the frontend design for better user experience.
- Implementation of a batch process that periodically downloads new articles, analyzes them, and stores them in BigQuery.
The frontend of the application runs on Flutter, and the backend is all handled in Python through the cloud. A .env will need to be created to import all the necessary API keys.
This project is licensed under the terms of the MIT license.