A simple RSS feed aggregator that allows users to:
- Add RSS feeds to be collected.
- Follow and un-follow RSS feeds that they have added.
- Fetch the latest posts from the RSS feeds they follow.
In progress...
- Go 1.22.3 or later
- PostgreSQL 16.0 or later
git clone https://github.com/yourusername/rss-aggregator.git
cd rss-aggregator
This project uses the following Go packages:
go get github.com/joho/[email protected]
go get github.com/go-chi/chi/[email protected]
go get github.com/google/[email protected]
go get github.com/lib/[email protected]
go get github.com/rs/[email protected]
-
sqlc for generating type-safe code from SQL.
go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest
-
goose for database migrations.
go install github.com/pressly/goose/v3/cmd/goose@latest
Create a .env
file in the root directory of your project and add the following environment variables:
PORT=8080
DATABASE_URL=postgres://username:password@localhost:5432/yourdbname?sslmode=disable
Replace username
, password
, localhost
, 5432
, and yourdbname
with your PostgreSQL credentials and database details.
Navigate to the directory containing the migration files and run goose to apply the migrations:
cd sql/schema
goose -dir migrations postgres "postgres://username:password@localhost:5432/yourdbname?sslmode=disable" up
Generate the SQLC code for interacting with the database:
sqlc generate
Compile the server and run it:
go build -o rss-aggregator
./rss-aggregator
The server will start on the port specified in the .env
file (default is 8080
).
If you would like to contribute to this project, please fork the repository and submit a pull request.