Skip to content

Latest commit

 

History

25 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SitRoom

Real-time global affairs crisis tracker. Aggregates headlines from Reuters, Al Jazeera, AP News, and BBC into a unified reverse-chronological timeline.

Stack

  • Frontend — Next.js 14 + TypeScript + Tailwind CSS
  • Backend — Python FastAPI
  • Ingestionfeedparser polling RSS feeds every 60 seconds, in-memory store

Quick Start

Backend

cd backend
python -m venv .venv
source .venv/bin/activate      # Windows: .venv\Scripts\activate
pip install -r requirements.txt
uvicorn main:app --reload

API runs at http://localhost:8000. Feeds load on startup; the store refreshes every 60 seconds.

Frontend

cd frontend
npm install
npm run dev

UI runs at http://localhost:3000.

API Endpoints

Method Path Description
GET /api/feed?limit=100 Latest articles (max 200)
GET /api/feed/search?q=<term> Keyword search across title + summary
GET /health Health check

Project Structure

sitroom/
├── backend/
│   ├── main.py              # FastAPI app, CORS, lifespan, background refresh
│   ├── requirements.txt
│   └── app/
│       ├── store.py         # Thread-safe in-memory ArticleStore
│       ├── feed_parser.py   # feedparser + normalization logic
│       └── routes/feed.py   # /api/feed endpoints
└── frontend/
    └── src/
        ├── app/             # Next.js App Router (layout, page, globals.css)
        ├── components/      # Header, SourceFilter, Timeline, ArticleCard
        └── lib/             # types.ts, api.ts, utils.ts

About

Sit Room - Global Affairs

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages