A TypeScript CLI tool that aggregates RSS feeds, allowing users to add, follow, and manage feeds while storing posts in a PostgreSQL database.
The name comes from aggreGATOR! 🐊
- Add RSS feeds and store collected posts in a database
- Follow/unfollow feeds from other users
- Multi-user support with authentication
- Browse other users' feeds and aggregated content
- Continuous feed refreshing with customizable intervals
Before running Gator, ensure you have:
- Node.js (v14 or higher)
- npm (v6 or higher)
- PostgreSQL (v12 or higher)
git clone https://github.com/<your-username>/Gator.git
cd Gatornpm installMake sure PostgreSQL is running and create the database:
createdb gatornpm run migrateThis will create all required tables automatically.
npm start| Command | Description | Example |
|---|---|---|
register <username> |
Register a new user | npm run start register john |
login <username> |
Login as an existing user | npm run start login john |
reset |
Delete your account and all associated data | npm run start reset |
| Command | Description | Example |
|---|---|---|
users |
List all registered users | npm run start users |
follow <feed-url> |
Follow a specific RSS feed | npm run start follow https://hnrss.org/newest |
following |
List feeds you are currently following | npm run start following |
unfollow <feed-url> |
Unfollow a feed | npm run start unfollow https://hnrss.org/newest |
| Command | Description | Example |
|---|---|---|
addfeed <name> <url> |
Add a new RSS feed (must be logged in) | npm run start addfeed "Hacker News" "https://hnrss.org/newest" |
feeds |
List your added feeds | npm run start feeds |
browse |
Browse feeds you follow | npm run start browse |
| Command | Description | Example |
|---|---|---|
agg |
Show aggregated posts from your feeds | npm run start agg |
agg <interval> |
Auto-refresh posts every X seconds | npm run start agg 10s |
This guide will walk you through the full workflow of using Gator.
npm startYou are now in the Gator CLI environment.
npm run start register usernamenpm run start login usernamenpm run start addfeed "Feed Name" "Feed URL "npm run start feedsnpm run start aggnpm run start agg 10sPosts will refresh automatically every 10 seconds. Press Ctrl+C to stop.
# Start Gator
npm start
# Create and login to your account
npm run start register afaf
npm run start login afaf
# Add some feeds
npm run start addfeed "Hacker News" "https://hnrss.org/newest"
npm run start addfeed "TechCrunch" "http://feeds.feedburner.com/TechCrunch"
npm run start addfeed "CSS Tricks" "https://css-tricks.com/feed/"
# View your feeds
npm run start feeds
# See what's new
npm run start agg
# Auto-refresh every 30 seconds
npm run start agg 30s
# Check other users
npm run start users
# Follow a specific feed
npm run start follow https://hnrss.org/newest
# Browse feeds you follow
npm run start browse
# Unfollow a feed
npm run start unfollow https://hnrss.org/newest
The application automatically creates the following tables:
users- Store user informationfeeds- Store RSS feed informationfeed_follows- Track user-feed relationshipsposts- Store aggregated posts from feeds
- Built with TypeScript and Node.js
- PostgreSQL for data persistence
- RSS parsing for feed aggregation
Happy feed aggregating! 🐊