Skip to content

SemanticFeed is a full-stack news aggregator built with FastAPI and React/Vite, featuring PostgreSQL, background scraping workers, Redux Toolkit state management, and a modern glassmorphism UI. Docker-ready for seamless deployment.

Notifications You must be signed in to change notification settings

rahulapjs/SemanticFeed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SemanticFeed

A full-stack news aggregator application built with FastAPI (Backend) and React/Vite (Frontend).

Project Structure

  • backend/: FastAPI application with PostgreSQL, SQLAlchemy, and a background worker for scraping.
  • frontend/: React + TypeScript application with Redux Toolkit and a modern Glassmorphism UI.

Getting Started

Prerequisites

  • Docker & Docker Compose (Recommended)
  • Or: Python 3.11+, Node.js 20+, PostgreSQL

Environment Setup

  1. Copy the root .env.example to .env:
    cp .env.example .env
  2. Update .env with your real keys (especially GOOGLE_API_KEY).

Running with Docker (Easiest)

  1. Run the stack:
    docker-compose up --build
  2. Access the app:

Running Locally (Manual)

Backend

  1. Navigate to backend:
    cd backend
  2. Create virtual env and install dependencies:
    python -m venv venv
    source venv/bin/activate  # or venv\Scripts\activate on Windows
    pip install -r requirements.txt
  3. Set up environment variables. You can set DATABASE_URL directly OR set the components:
    • POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB, POSTGRES_SERVER, POSTGRES_PORT
  4. Run server:
    uvicorn app.main:app --reload

Frontend

  1. Navigate to frontend:
    cd frontend
  2. Install dependencies:
    npm install
  3. Set up .env (see .env.example in frontend folder).
  4. Start dev server:
    npm run dev

Development

  • Linting: A GitHub Actions workflow (.github/workflows/lint.yml) runs on push to check code quality.
  • Cleanup: To delete old news (older than 7 days), run:
    cd backend
     python cleanup.py

License

MIT

About

SemanticFeed is a full-stack news aggregator built with FastAPI and React/Vite, featuring PostgreSQL, background scraping workers, Redux Toolkit state management, and a modern glassmorphism UI. Docker-ready for seamless deployment.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •