A prototype system for tracking global news events on an interactive map. It aggregates news from various RSS feeds, clusters them into events, and displays them geographically.
Note: This is a work-in-progress prototype. Current features are basic and improvements are needed (filtered news sources, better noise reduction, AI integration, etc.).
- Ingestion: Polls RSS feeds (Reuters, CNBC, GDELT, etc.)
- Clustering: Groups related articles into events based on location and time.
- Visualization: Displays events on a MapLibre map with dark mode.
- Categorization: Basic rule-based tagging (Geopolitics, Markets, Energy, etc.).
- Frontend: Next.js, MapLibre GL JS
- Backend: Python, FastAPI
- Database: PostgreSQL with PostGIS
- Infrastructure: Docker Compose
- Docker Desktop installed
- Git
This is the easiest way to run the full system (Database, Backend, Frontend).
-
Clone the repository:
git clone https://github.com/yourusername/global-news-tracker.git cd global-news-tracker -
Configure Environment:
cp .env.example .env # (The default settings in .env.example work out-of-the-box for local testing) -
Start Services:
cd infra docker compose up -d --build -
Seed Location Data (Important): The app needs city data to geocode news correctly.
docker exec -it atlas-backend python /app/infra/seed_cities.py -
Use the App:
- Frontend: http://localhost:3000
- API Docs: http://localhost:8000/docs
## Project Structure
atlas-monitor/ ├── infra/ # Docker & Database setup ├── backend/ # Python FastAPI service & Worker │ ├── src/core/ # Ingestion, Clustering, Logic │ └── src/api/ # REST Endpoints └── frontend/ # Next.js Web App
## Future Improvement Ideas
- Add more high-quality financial news sources.
- Implement AI/LLM analysis for better summary and impact scoring.
- Reduce noise from low-value news items.
- diverse country-specific filters.
## Development Note
This project is my idea, fully built using **Google Antigravity IDE with Claude Opus 4.5**. I have not written a single line of code manually.