https://github.com/kevindasilvas/notifier
Notifier app using erlang stack(rabbit-mq, couch-db and elixir) to send push notifications through websockets(phoenix channels)
https://github.com/kevindasilvas/notifier
api channels couchdb elixir elixir-lang elixir-phoenix http-poison jason microservice phoenix rabbitmq slipstream websockets
Last synced: 6 months ago
JSON representation
Notifier app using erlang stack(rabbit-mq, couch-db and elixir) to send push notifications through websockets(phoenix channels)
- Host: GitHub
- URL: https://github.com/kevindasilvas/notifier
- Owner: KevinDaSilvaS
- Created: 2021-12-25T19:57:32.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-01-31T22:58:11.000Z (about 4 years ago)
- Last Synced: 2025-03-29T12:28:09.492Z (12 months ago)
- Topics: api, channels, couchdb, elixir, elixir-lang, elixir-phoenix, http-poison, jason, microservice, phoenix, rabbitmq, slipstream, websockets
- Language: Elixir
- Homepage:
- Size: 219 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Notifier
Notifier app using erlang stack(rabbit-mq, couch-db and elixir) to send push notifications through websockets(phoenix channels)
### Sender
Generally 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.
### Client
Client app that connects to the topic ```room:user_id``` and monitors the ```shout``` channel waiting for broadcasted messages.
### Getting previous notifications
The 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.
### Architecture Overview