A Go-based RSS feed aggregator that fetches and stores content from multiple RSS feeds. Features a REST API for managing feed subscriptions and viewing aggregated posts.
- Concurrent RSS feed scraping
- User authentication
- PostgreSQL storage
- RESTful API endpoints
- Configurable scraping intervals
- Clone the repository
- Set environment variables in
.env
:
DATABASE_URL=postgresql://user:password@localhost:5432/dbname
PORT=8000
- Install the deps
go mod download
- Run the code
make run
POST /api/users # Create user
POST /api/feeds # Create feed
GET /api/users # Get user info (auth required)
GET /api/feeds # Get feed info (auth required)
GET /api/feed-follow # Get user followed feeds info (auth required)
GET /api/users/posts # Get user's posts (auth required)
- users: User accounts
- feeds: RSS feed sources
- posts: Scraped content
- feed_follows: user followed feeds
- Scraping interval: Configurable via StartScraping()
- Concurrency: Adjustable worker pool size
- Database connection pool: Managed automatically