How chuyuchen80-byte/info-harbor works
info-harbor is a modular AI-news aggregation product intended to collect global sources, screen and assess items, then present them by country or region. The repository shows a Vue interface and a FastAPI backend, but much of the backend is still skeletal: the mounted article endpoints return placeholders, and the worker pipeline only publishes an event. The graph preserves documented product areas without implying that unsampled services are wired together; paths for broader domain areas use their existing directories.
Main entry points: App.vue Vue application · main.py FastAPI app · worker.py Pipeline worker · registry.py Source adapters
Components 23
User interface
- Vue application
frontend/src/App.vue - Page router
frontend/src/router/index.ts - Article views
frontend/src/views/ArticleListView.vue - Country view
frontend/src/views/CountryView.vue - Dashboard
frontend/src/views/DashboardView.vue - Search view
frontend/src/views/SearchView.vue - Source view
frontend/src/views/SourceView.vue - Admin view
frontend/src/views/admin/AdminView.vue - HTTP client
frontend/src/services/http.ts
Backend API
- FastAPI app
backend/app/main.py - Article API
backend/app/domain/articles/api/router.py - Article domain
backend/app/domain/articles - Source domain
backend/app/domain/sources - Screening domain
backend/app/domain/screening - Statistics domain
backend/app/domain/stats - User domain
backend/app/domain/users - Task domain
backend/app/domain/tasks
Ingestion and assessment
- Pipeline worker
backend/app/worker.py - Source adapters
backend/app/plugins/registry.py - LLM gateway
backend/app/core/llm_gateway.py
Shared infrastructure
- Event bus
backend/app/core/events.py - Article contract
backend/app/core/models/article.py
Other components
- Reader
Connections 6
- Reader → Vue application: opens
- Vue application → Page router: renders routes
- FastAPI app → Article API: mounts
- Pipeline worker → Event bus: publishes event
- Source adapters → Article contract: normalizes to
- LLM gateway → Screening domain: planned assessment