Skip to content

RSS Aggregator API written in Go using the Chi router

Notifications You must be signed in to change notification settings

tariqs26/rss-aggregator

Repository files navigation

RSS Aggregator

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.

API Routes

In progress...

Setup and Installation

Prerequisites

Clone the Repository

git clone https://github.com/yourusername/rss-aggregator.git
cd rss-aggregator

Install Dependencies

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]

Additional Tools

  • 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

Environment Variables

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.

Usage

Apply Migrations

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 SQLC Code

Generate the SQLC code for interacting with the database:

sqlc generate

Build and Run the Server

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).

Contributing

If you would like to contribute to this project, please fork the repository and submit a pull request.

About

RSS Aggregator API written in Go using the Chi router

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages