An RSS feed aggregator built with Golang and PostgreSQL. This web server allows clients to:
- Add RSS feeds to be collected
- Follow and unfollow RSS feeds that other users have added
- Fetch all of the latest posts from the RSS feeds they follow
RSS feeds are a way for websites to publish updates to their content. You can use this project to keep up with your favorite blogs, news sites, podcasts, and more!
- User authentication
- Add and manage RSS feeds
- Follow/unfollow feeds added by other users
- Fetch and store latest posts from followed feeds
- RESTful API for easy integration
- Backend: Golang (Go)
- Database: PostgreSQL
- Libraries & Tools:
gorilla/mux
for routinggorm
for ORM (optional)go-chi/chi
for middleware handlinggo-feed
for RSS parsinggodotenv
for environment variable management
- Install Go
- Install PostgreSQL
-
Clone the repository:
git clone https://github.com/ShubhamTiwari55/RSS-Agg.git cd RSS-Agg
-
Create a
.env
file and configure your database credentials:PORT=yourPortNumber DB_URL=yourDbUrl
-
Install dependencies:
go mod tidy
-
Run database migrations (if applicable):
goose postgres DB_URL up
-
Start the server:
go build && rss-agg.exe
Method | Endpoint | Description |
---|---|---|
GET | /v1/ready |
Check service readiness |
GET | /v1/err |
Trigger an error for testing |
POST | /v1/users |
Create a new user |
GET | /v1/users |
Get user details (requires authentication) |
POST | /v1/feeds |
Create a new RSS feed (requires authentication) |
GET | /v1/feeds |
Get all available RSS feeds |
POST | /v1/feeds_follows |
Follow a feed (requires authentication) |
GET | /v1/feeds_follows |
Get followed feeds (requires authentication) |
DELETE | /v1/feeds_follows/{feedFollowID} |
Unfollow a feed (requires authentication) |
GET | /v1/posts |
Get the latest posts from followed feeds (requires authentication) |
Contributions are welcome! Feel free to open an issue or submit a pull request.
This project is licensed under the MIT License.
For any inquiries, open an issue on GitHub.