{"id":15601339,"url":"https://github.com/kevindasilvas/notifier","last_synced_at":"2025-10-07T15:43:24.502Z","repository":{"id":102004013,"uuid":"441749219","full_name":"KevinDaSilvaS/notifier","owner":"KevinDaSilvaS","description":"Notifier app using erlang stack(rabbit-mq, couch-db and elixir) to send push notifications through websockets(phoenix channels)","archived":false,"fork":false,"pushed_at":"2022-01-31T22:58:11.000Z","size":224,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-29T12:28:09.492Z","etag":null,"topics":["api","channels","couchdb","elixir","elixir-lang","elixir-phoenix","http-poison","jason","microservice","phoenix","rabbitmq","slipstream","websockets"],"latest_commit_sha":null,"homepage":"","language":"Elixir","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/KevinDaSilvaS.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":"2021-12-25T19:57:32.000Z","updated_at":"2022-01-30T00:53:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"104add17-1cd5-45d2-845a-29aecc00970f","html_url":"https://github.com/KevinDaSilvaS/notifier","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/KevinDaSilvaS/notifier","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KevinDaSilvaS%2Fnotifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KevinDaSilvaS%2Fnotifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KevinDaSilvaS%2Fnotifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KevinDaSilvaS%2Fnotifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KevinDaSilvaS","download_url":"https://codeload.github.com/KevinDaSilvaS/notifier/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KevinDaSilvaS%2Fnotifier/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274705144,"owners_count":25334469,"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","status":"online","status_checked_at":"2025-09-11T02:00:13.660Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["api","channels","couchdb","elixir","elixir-lang","elixir-phoenix","http-poison","jason","microservice","phoenix","rabbitmq","slipstream","websockets"],"created_at":"2024-10-03T02:20:51.041Z","updated_at":"2025-10-07T15:43:19.470Z","avatar_url":"https://github.com/KevinDaSilvaS.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Notifier\nNotifier app using erlang stack(rabbit-mq, couch-db and elixir) to send push notifications through websockets(phoenix channels)\n\n### Sender\nGenerally other apps(or services) push a message in the ```notifications``` queue with a body ```{\"user_id\": \"user_id\", \"message\": \"notification body\", \"title\": \"my notification\"}``` and when consumed the message will be sent via websockets to the topic ```room:user_id``` where it will be broadcasted to connected sockets and saved on couchdb.\n\n### Client\nClient app that connects to the topic ```room:user_id``` and monitors the ```shout``` channel waiting for broadcasted messages.\n\n### Getting previous notifications\nThe app also has a url to access the previous notifications stored in db in a GET method ```localhost:4000/api/notifications/user_id``` that accepts the ```page=integer number``` and/or ```limit=integer number``` to limit and filter notifications.\n\n### Architecture Overview\n\u003cimg src=\"https://github.com/KevinDaSilvaS/notifier/blob/main/assets/architecture.png\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevindasilvas%2Fnotifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkevindasilvas%2Fnotifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevindasilvas%2Fnotifier/lists"}