Personalized News Update Aggregator
AI-powered microservice system for personalized news delivery.

- FastAPI
- Flask
- Dapr
- Docker
- RabbitMQ
- Pickle Cache
- Gemini AI
- SMTP
- Telegram Bot API
Core Features
- User signup, login, and preference management via FastAPI service.
- Aggregates and caches the latest news articles per user preference.
- AI summarization of articles using Gemini or equivalent LLM models.
- Delivers curated news via Email to users and via Telegram to managers.
- Caching layer prevents redundant API calls for 24 hours to improve performance.
- Complete Docker-Compose setup to orchestrate all services.
Architecture
- FastAPI Service handles all incoming REST requests and exposes Swagger UI.
- Flask Manager coordinates sub-services for user management, news aggregation, email, and Telegram bots.
- Dapr provides service invocation and message passing between microservices.
- RabbitMQ acts as message broker for reliable asynchronous communication.
- Pickle-based caching persists fetched news for 24 hours to reduce API load.
- Each microservice containerized with Docker and wired together in docker-compose.yml.
Technologies
- FastAPI — entry point and public REST API with automatic docs (Swagger UI).
- Flask — lightweight framework used for internal worker services.
- Dapr — side-car pattern for inter-service communication and pub/sub messaging.
- RabbitMQ — asynchronous queue handling tasks between workers.
- Gemini AI — generates concise summaries of fetched news articles.
- Pickle — file-based cache serialization for offline persistence.
- Docker Compose — manages multi-container deployment.
- SMTP & Telegram Bot API — deliver personalized notifications.
Key Highlights
- Full microservice ecosystem (6+ containers) built from scratch with Python.
- Combines real-time news aggregation with AI summarization.
- Automatic preference-based content delivery across multiple channels.
- Robust cache and messaging pipeline minimizing external API overhead.
- Demonstrates production-grade architecture: FastAPI ↔ Flask ↔ Dapr ↔ RabbitMQ.