π‘ GoSniff

An RSS feed aggregator built with Go that helps you stay updated with your favorite content! π
β¨ Features
- π User Authentication via API Keys
- π Feed Management (Create, List, Follow, Unfollow)
- π€ Multi-user Support
- π Automatic Feed Aggregation
- π Real-time Updates
- π― REST API Interface
π οΈ Technologies
- Go 1.x
- PostgreSQL
- Chi Router
- SQLC
- Goose (migrations)
ποΈ Project Architecture
π¦ GoSniff
β£ π internal
β β π database # Database models and queries
β£ π sql
β β£ π schema # Database migrations
β β π queries # SQLC queries
β π main.go # Application entrypoint
π Getting Started
- Clone the repository
git clone https://github.com/WST-T/GoSniff.git
- Set up your environment variables
.env
# Edit .env with your configuration
It should be something like:
PORT=?
DB_URL=?
- Run database migrations
goose postgres "postgres://user:password@localhost:5432/gosniffdb" up
goose postgres "postgres://user:password@localhost:5432/gosniffdb" down
- Start the server
go run main.go ||
go build && ./GoSniff
π Feed Aggregator
The feed aggregator worker runs in the background and:
- β° Periodically checks RSS feeds for updates
- π₯ Fetches new content
- πΎ Stores new posts in the database
- π Keeps content fresh and up-to-date
π€ Contributing
Feel free to open issues and pull requests!
π License
MIT License - feel free to use this project however you'd like!
π Acknowledgments
- Chi router for the amazing HTTP routing
- SQLC for type-safe SQL
- Goose for easy database migrations
- And all other open source contributors!
Made with β€οΈ using Go