{"id":13819679,"url":"https://github.com/zealot128/filter-app","last_synced_at":"2025-09-04T23:14:56.996Z","repository":{"id":1621051,"uuid":"42937200","full_name":"zealot128/filter-app","owner":"zealot128","description":"Rails app - news aggregator that powers http://hrfilter.de and http://fahrrad-filter.de","archived":false,"fork":false,"pushed_at":"2025-05-09T07:28:23.000Z","size":28749,"stargazers_count":28,"open_issues_count":30,"forks_count":16,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-05-15T20:54:41.150Z","etag":null,"topics":["news-aggregator","rails","rss"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zealot128.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2015-09-22T14:00:05.000Z","updated_at":"2025-05-09T07:28:26.000Z","dependencies_parsed_at":"2023-02-11T22:00:55.974Z","dependency_job_id":"f2eccb19-04f0-4d97-b10d-49843e679fc2","html_url":"https://github.com/zealot128/filter-app","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zealot128%2Ffilter-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zealot128%2Ffilter-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zealot128%2Ffilter-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zealot128%2Ffilter-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zealot128","download_url":"https://codeload.github.com/zealot128/filter-app/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254488280,"owners_count":22079395,"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":["news-aggregator","rails","rss"],"created_at":"2024-08-04T08:00:51.620Z","updated_at":"2025-05-16T07:31:49.502Z","avatar_url":"https://github.com/zealot128.png","language":"Ruby","funding_links":[],"categories":["Happy Exploring 🤘"],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/zealot128/filter-app.svg)](https://travis-ci.org/zealot128/filter-app)\n\n#  News aggregator app\n\nThis is a Ruby-on-Rails app for running (German) news aggregator websites. Today, it powers:\n\n* http://www.hrfilter.de  (German news of HR/personal/recruiting)\n* http://www.fahrrad-filter.de (German/English news of cycling topic)\n\n\n## Reasoning\n\nI want to follow news of those two areas but struggle with RSS, as it is too much for me too process - I want to see the most \"relevant\" sources at once, without investing too much time. Other sources, like Twitter + Reddit I found too noisy to follow.\n\nThis is why I created that app\n\n## News fetching + scoring algorithm\n\nThe admin of the apps curates a list of trusted sources. Those will regularly checked for new content. Following news sources are supported:\n\n* RSS/Atom feeds (FeedSource)\n* Podcast via RSS/Atom (similar as FeedSource but different visual)\n* Twitter Streams\n* (in planning) RedditSources - subscribe whole /r/'s\n\n\nIn similar fashion, the app checks popularity of the news in social network, that means:\n\n* Facebook likecount (as reported by Facebook Like Button)\n* Twitter retweets + favorites (as reported by Twitter API)\n* XING + LinkedIn shares (as reported by regarding Widgets)\n* Reddit total score sum in all subreddits (if exists)\n* Each of those sources is configured with a different value (e.g. Facebook likes are more common, so less value than XING share)\n\nThe admin of the sites can give a Source individual:\n\n* Base factor (that means, how much \"Likes\" any link of that website is worth, can also be negative too remove noise from some sources)\n* Multiplicator, e.g. 0.2, 1.0, 2.0  - each like will be multiplied by that number -- Some sources have a much higher reach and can be leveled out so the news are more broad\n\n\nAltogether, the score is calculated regularly for fresh links.\nFor Display on the homepage, the freshness is also important - the older the link, the more the score is reduced.\n\n## Topics\n\nThe topic matching is very simple - just simple keyword lists. That means, the categorization is far far from perfect or even good. It might be an area of further development :)\n\n## Newsletter\n\nIt is possible to subscribe via E-Mail. Then, once per week on sunday, you will receive a Mail with from the selected topics.\n\n# Development\n\nAs it is a Rails app, you can try to run it yourself. First make sure to have installed:\n\n- Linux or macos\n- Ruby 3.3+\n- Postgresql 11++\n- nodejs 16.0+ and yarn\n\n```\ngit clone https://github.com/zealot128/filter-app.git\ncd filter-app\nbin/setup\n```\n\nTo run the app + background worker + webpack run:\n\n```\nforeman start\n```\n\nIf anything fails, then you might need to adjust the ``config/database.yml`` to configure the correct database or run the individual commands\n\nOtherwise: you can check out the running app on ``localhost:5000``\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzealot128%2Ffilter-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzealot128%2Ffilter-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzealot128%2Ffilter-app/lists"}