Skip to content

Sending notifications to your users supporting different messages languages and different sending interfaces such as push notifications, SMS, webhook.

Notifications You must be signed in to change notification settings

amrHassanAbdallah/notificationaway

Repository files navigation

Go

Notificationaway

Sending notifications to your users supporting different messages languages and different sending interfaces such as push notifications, sms, webhook.

Getting started

Manually

  1. install golang
  2. start a mongo instance locally
  3. install kafka
  4. run the app
     $ make generate
     $ make build
     $ ./bin/app 
    

Using docker-compose

  1. make sure that you have docker, docker-compose installed
  2. run
    $ docker-compose up
    

Check the API

Use this file content and paste it inside this viewer

How to use

  1. Create a message through the API
  2. Publish a message into the notifications topic with the expected payload (type, to, language), make sure that the type and language match a message you already created in order to complete the whole cycle
  3. if the type is webhook, you will get a message over that webhook, otherwise are dummy adapter the consumer will consume the message and ignore it.

Or

You can run the test/test.go that would do all of that to you.

Features

  • Add a message
  • Consume notification
  • Send notifications (webhook type)
  • Add Light size integration test
  • Update a message
  • Query messages
  • Add unit tests
  • Handle message with templates keys
  • Add HTTP logger
  • Add CI/CD to run the test/test file after every commit (almost done)
  • Add a circuit breaker over the third party notifications sender providers

Architecture

Blank diagram More details in design document

About

Sending notifications to your users supporting different messages languages and different sending interfaces such as push notifications, SMS, webhook.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published