GUI News Feed

Phase 1 — Source adapters & fetching

  • Implement 4+ adapters (e.g., Reddit, BBC RSS, Google News RSS, Hacker News)
  • Query by topic, request with timeouts, and parse RSS/JSON
  • Normalize common fields like title, source, url or published_at
  • Create a simple CLI to test adapters

Functional result: A test run fetches N recent items per source for a topic and prints normalized entries with correct fields.


Phase 2 — Merge, sort & de-dup

  • Merge adapter results into one list
  • De-duplicate by canonicalized URL/title fingerprint
  • Sort the results (most recent first)
  • Optional tiny in-memory cache (TTL) to avoid refetch storms

Functional result: A single merged feed shows unique, newest-first items that match the topic across all sources.


Phase 3 — GUI browsing (Tkinter)

  • Topic entry + “Refresh” button
  • Paginated (or scrollable) list of headlines with source and time
  • Detail pane with summary and “Open in browser” action
  • Non-blocking fetch (thread/async) with a busy indicator

Functional result: User searches a topic; the UI refreshes without freezing and displays clickable, de-duplicated articles from all sources.


Phase 4 — Auto-refresh & minimal errors

  • Optional auto-refresh interval (e.g., 5–15 min) with “Last update” status
  • Brief error banner on fetch failure; keep last good results

Functional result: The app periodically refreshes when enabled, shows the last update time, and gracefully warns on failures while remaining usable.