Skip to content

A Python project for collecting, analyzing, and ranking news according to their relevance to trends.

Notifications You must be signed in to change notification settings

YuliiaSaliuta/news-aggregator

Repository files navigation

News Aggregator System

Introduction

This project aims to build a prototype news aggregator system that fetches news from the TSN RSS feed, identifies trending news using Google Trends data, calculates sentiment scores for matching news articles, and provides an API endpoint to access relevant news.

Development Part

Technologies Used

  • Python
  • Django
  • Celery
  • RabbitMQ
  • Google Trends API
  • ChatGPT API

Setup

  1. Clone this repository.
git clone https://github.com/YuliaHladyshkevych/news-aggregator.git
  1. You can open project in IDE and configure .env file using .env.sample file as an example.
  2. Build and run the Docker containers:
    docker-compose up --build

The API will be accessible at http://localhost:8000/.

Functionality

  • Fetches news from TSN RSS feed.
  • Identifies trending news using Google Trends data.
  • Calculates sentiment scores for matching news articles using ChatGPT API.
  • Provides an API endpoint to access relevant news.

API Endpoint

  • /api/trending-news: Retrieves relevant news articles with headline, source link, publication date, sentiment score, and trending topic names. The news articles are sorted by sentiment score in descending order.

About

A Python project for collecting, analyzing, and ranking news according to their relevance to trends.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages