{"id":23176732,"url":"https://github.com/sieugene/rssagg","last_synced_at":"2025-04-05T01:24:25.087Z","repository":{"id":267571930,"uuid":"864359142","full_name":"sieugene/rssagg","owner":"sieugene","description":"Simple rss feed","archived":false,"fork":false,"pushed_at":"2024-09-29T03:34:49.000Z","size":152,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-10T09:42:20.153Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sieugene.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-28T02:54:11.000Z","updated_at":"2024-09-29T03:35:52.000Z","dependencies_parsed_at":"2024-12-18T06:19:29.646Z","dependency_job_id":null,"html_url":"https://github.com/sieugene/rssagg","commit_stats":null,"previous_names":["sieugene/rssagg"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sieugene%2Frssagg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sieugene%2Frssagg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sieugene%2Frssagg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sieugene%2Frssagg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sieugene","download_url":"https://codeload.github.com/sieugene/rssagg/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247273341,"owners_count":20911915,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-18T06:19:26.651Z","updated_at":"2025-04-05T01:24:25.052Z","avatar_url":"https://github.com/sieugene.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Go RSSAGG\n\nThis is a backend service built in Go. It provides RESTful API endpoints for user management, feed handling, and post interaction. The application also includes periodic web scraping functionality and uses PostgreSQL as the database.\n\n[Based on bootdotdev](https://github.com/bootdotdev/fcc-learn-golang-assets)\n\n## Features\n\n- User registration and authentication\n- Feed creation and management\n- Follow and unfollow feeds\n- Post management for users\n- Periodic web scraping\n- CORS handling for cross-origin requests\n\n## Installation\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/sieugene/rssagg\n```\n\n2. Create a .env file based on .env.example\n```bash\ncp .env.example .env\n```\n\n3. Install dependencies:\n```bash\ngo mod tidy\n```\n\n4. Run the application using Docker Compose:\n```bash\ndocker-compose up -d\n```\n\n5. Run migrations using goose:\n```bash\ncd ./scl/schema\ngoose postgres DB_URL up\n```\n\n6. Generate SQL code with sqlc\n```bash\n# From the root of the application\nsqlc generate\n```\n\n7. Run the application:\n```bash\ngo run main.go\n```\n\n\n## API Endpoints\n\n### Health Check\n- **GET** `/v1/healthz`: Checks the service health.\n\n### Users\n- **GET** `/v1/users`: Get the current user (requires authentication).\n- **POST** `/v1/users`: Create a new user.\n\n### Feeds\n- **GET** `/v1/feeds`: Get all feeds.\n- **POST** `/v1/feeds`: Create a new feed (requires authentication).\n\n### Feed Follows\n- **GET** `/v1/feed_follows`: Get all followed feeds (requires authentication).\n- **POST** `/v1/feed_follows`: Follow a new feed (requires authentication).\n- **DELETE** `/v1/feed_follows/{feedFollowId}`: Unfollow a feed (requires authentication).\n\n### Posts\n- **GET** `/v1/posts`: Get posts for the current user (requires authentication).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsieugene%2Frssagg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsieugene%2Frssagg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsieugene%2Frssagg/lists"}