An open API service indexing awesome lists of open source software.

https://github.com/ibnu-umer/tech-pulse

Async-powered tech aggregator fetching real-time trends from GitHub, Reddit, and News APIs.
https://github.com/ibnu-umer/tech-pulse

aiohttp api-aggregator async portfolio python

Last synced: 4 days ago
JSON representation

Async-powered tech aggregator fetching real-time trends from GitHub, Reddit, and News APIs.

Awesome Lists containing this project

README

          

# ⚑ TechPulse β€” Async Tech Intelligence Aggregator

> A fast, asynchronous Python tool that aggregates **real-time tech news, Reddit discussions, and GitHub trends** for your chosen topics β€” all in one place.

## 🧠 Overview

TechPulse solves a simple but painful problem:
Tech professionals waste time jumping across News sites, Reddit, and GitHub to figure out what’s trending.
TechPulse automates that β€” fetching, filtering, and summarizing everything **concurrently** using `asyncio` and `aiohttp`.

You give it a few topics, it gives you a **real-time tech pulse report**.

## πŸš€ Example Usage

```bash
python main.py --topics "AI, Python, Tesla" --limit 5
```

### Output
**πŸ“Š TechPulse Report**

πŸ”Ή AI
- πŸ“° OpenAI launches GPT-6 β€” https://newsapi.org/...
- πŸ’¬ Reddit: "Prompt Engineering is Dead" β€” 2.3k upvotes
- πŸ’» GitHub: huggingface/transformers β€” 125k ⭐

πŸ”Ή Python
- πŸ“° Python 3.13 Released β€” https://gnews.io/...
- πŸ’» GitHub: fastapi/fastapi β€” 75k ⭐

## 🧩 Features
- πŸ”„ Async fetching from multiple APIs in parallel
- πŸ“° Aggregates data from NewsAPI, Reddit, GitHub
- βš™οΈ Configurable topics and limits via CLI
- πŸ’Ύ Exports results as structured JSON
- 🧠 Easily extendable (add more sources or processing layers)

## βš™οΈ Tech Stack

| Component | Purpose |
|------------|----------|
| `asyncio` | Core async orchestration |
| `aiohttp` | Non-blocking HTTP client |
| `requests` | For any blocking fallback APIs |
| `argparse` | CLI argument handling |
| `json`, `pathlib` | Data formatting & output |

## 🧱 Project Structure

```plaintext
techpulse/
β”œβ”€β”€ main.py
β”œβ”€β”€ core/
β”‚ β”œβ”€β”€ fetcher.py # Manages concurrent API calls
β”‚ β”œβ”€β”€ processor.py # Cleans + merges responses
β”‚ β”œβ”€β”€ reporter.py # Formats console + JSON output
β”œβ”€β”€ apis/
β”‚ β”œβ”€β”€ news_api.py
β”‚ β”œβ”€β”€ reddit_api.py
β”‚ └── github_api.py
└── output/
└── report.json
```

## πŸ”‘ Setup

### 1. Clone the repo
```bash
git clone https://github.com/yourusername/techpulse.git
cd techpulse
```

### 2. Install dependencies
```bash
pip install -r requirements.txt
```

### 3. Add API Keys
Create a .env file and set:
```bash
NEWS_API_KEY=your_api_key_here
GITHUB_TOKEN=optional_token_here
(Reddit uses public endpoints; no auth needed for now.)
```

### 4. Run it
```bash
python main.py --topics "AI, Tesla"
```

## πŸ“¦ Output
- Console summary (pretty printed)
- JSON report at /output/report.json

## 🧭 Roadmap
- Add YouTube API integration
- Add Hacker News scraper
- Add async caching layer
- Add sentiment analysis on Reddit discussions
- Add Slack/email notifications

## 🧠 Author
TechPulse β€” built for developers who want the world’s tech chatter at a glance.