Skip to content

futer24/FastAPI-PositiveNews

Repository files navigation

FastAPI PositiveNews 🗞️☀️

Un proyecto web desarrollado con Python y FastAPI que filtra, analiza y te presenta únicamente las buenas noticias del día procedentes de los periódicos más relevantes del país (El País, El Mundo, La Vanguardia, ABC).

Olvídate de política, tragedias o deportes. Este algoritmo selecciona inteligentemente avances científicos, logros culturales y buenas historias utilizando herramientas de Procesamiento de Lenguaje Natural e Inteligencia Artificial (Sentiment Analysis).

Positive News Logo

📌 Características Principales

  • 100% Python y Server-Side Rendering (SSR): No depende de bibliotecas complejas de JavaScript (React/Vue). La interfaz es construida de manera asíncrona directamente desde el servidor usando Jinja2 para máxima velocidad.
  • Web scraping concurrente: Lee múltiples feeds RSS simultáneamente y sin bloquear hilos gracias a asyncio.
  • Análisis de Sentimientos IA: Evalúa la positividad matemática del titular y el sumario gracias a sentiment-analysis-spanish.
  • Filtro estricto propio: Incluye listas personalizadas de palabras vetadas y palabras clave altamente positivas.
  • Diseño estético y clásico: La interfaz (UI) simula un hermoso y relajante periódico vintage animado por CSS.

🛠️ Requisitos e Instalación

  1. Clona el repositorio y entra en el directorio.
  2. Crea un entorno virtual e instala los requerimientos (se recomiendan Python 3.9 o superior).
python -m venv venv
# Activa el entorno
venv\Scripts\activate  # Windows
source venv/bin/activate # Mac/Linux

pip install fastapi uvicorn feedparser sentiment-analysis-spanish jinja2
  1. Modifica a tu gusto las listas de palabras clave si así lo deseas (positive_words.txt, negative_words.txt).

🚀 Uso

Inicia el servidor local de desarrollo utilizando Uvicorn:

uvicorn main:app --reload

Abre tu navegador de internet y dirígete a http://localhost:8000/. ¡Disfruta leyendo!

⚙️ ¿Cómo funciona bajo el capó?

El núcleo de la aplicación descansa en main.py. Este archivo:

  1. Inicializa FastAPI y monta las rutas.
  2. Lee los RSS configurados.
  3. Filtra la basura con el cruce de los diccionarios (Filtro 1).
  4. Somete el texto restante a la función de sentimiento numérico IA (Filtro 2).
  5. Se balancean las métricas para evitar que un solo periódico sature la portada.
  6. Jinja2 recibe el paquete final de noticias puras y las injerta dinámicamente sobre la plantilla de index.html.
  7. En el frontend, el archivo style.css se ocupa de toda la animación de entrada progresiva.

About

🗞️☀️Un proyecto web desarrollado con Python y FastAPI que filtra, analiza y te presenta únicamente las buenas noticias del día procedentes de los periódicos más relevantes del país (El País, El Mundo, La Vanguardia, ABC).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors