Logo Lanfrica

ABKodes/news-summarizer

Domain:

natural language processing

Record type:

softwareproject
Creator:
ABK
Host:
Full-stack Amharic News Summarizer with Python and Next.js # Real-Time Amharic News Summarizer (Full-Stack) **Author:** ABKodes **Date:** 2025-11-22 **Status:** Completed ## 📖 Project Overview This is a full-stack web application designed to fetch real-time news articles, process them using Natural Language Processing (NLP) to generate concise summaries, and display them in a clean, responsive web interface. The system is built with a clear separation of concerns: - **Backend (Python/FastAPI)**: Handles data ingestion from external APIs and performs text summarization. - **Frontend (Next.js/React)**: Consumes the backend API and renders the news feed. --- ## 🛠️ Tech Stack | Component | Technology | Reason for Choice | |-----------|------------|-------------------| | **Backend** | Python, FastAPI | Fast execution, automatic documentation, and rich ecosystem for NLP (NLTK/Sumy). | | **Frontend** | Next.js (React), Tailwind CSS | Server-side rendering capabilities, component-based architecture, and rapid styling. | | **Processing** | Sumy (TextRank) | Efficient extractive summarization algorithm that doesn't require heavy ML models. | | **External API** | NewsAPI.org | Reliable source for fetching global news content. | --- ## 🏗️ System Architecture & Data Flow The system follows a linear data pipeline: ```mermaid graph LR A[Client Browser] -- GET /summaries --> B[Python Backend] B -- Request News --> C[External NewsAPI] C -- JSON Data --> B B -- Run TextRank --> B[Summarization Logic] B -- Structured JSON --> A A -- Renders UI --> User ``` **Data Flow Steps:** 1. **Request**: Frontend requests `/summaries`. 2. **Ingestion**: Backend calls NewsAPI to get raw articles. 3. **Processing**: Backend applies `TextRank` algorithm to the article body. 4. **Response**: Backend sends a simplified JSON object (Title, Summary, Keywords) to the Frontend. 5. **Display**: Frontend renders the cards. --- ## 🚀 Setup & Run Instructions ### Prerequisites - Python 3.8+ - Node.js 18+ - A free API Key from NewsAPI.org (Already c …