Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improvement of the readme file. #40

Merged
merged 1 commit into from
May 13, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 27 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# CI Status
[![Build Status](https://travis-ci.org/sflpro/notifier.svg?branch=master)](https://travis-ci.org/sflpro/notifier)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=com.sflpro.notifier%3Anotifier&metric=alert_status)](https://sonarcloud.io/dashboard?id=com.sflpro.notifier%3Anotifier)

# Notifications Microservice
The notifications microservice is a separataely deployable component intended for sending various types of notifications. It provides a common abstraction layer on top of the various notification types and actual sending, tracking routines.
Expand All @@ -8,39 +9,43 @@ Currently microservice supports :
* SMS notifications
* Push notifications

### Email Notifications
## Supported notification types
Notifier supports a number of notification types and platforms. The project aim to enable the user to only rely on
notifier for client messaging/communication.
Bellow are the supported notification types and implementations.

The microservice supports sending regular emails. The supported transports are :
#### Email Notifications

The microservice supports sending regular emails. The supported transports are:
* SMTP
* Mailchimp / [Mandril](https://mandrill.com/)

### SMS Notifications
#### SMS Notifications

The microservice supports sending SMS notifications. The supported transports are :
The microservice supports sending SMS notifications. The supported transports are:
* [Twilio](https://www.twilio.com/)

### Push Notifications
#### Push Notifications

The microservice supports sendong push notifications. The supported transposrts are :
The microservice supports sendong push notifications. The supported transposrts are:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sending

* [Amazon SNS](https://aws.amazon.com/sns/)

## Microservice API
## Integration

The public API of the microservice is exposed via HTTP REST. API client libraries are available in the followign languages :
* Java
You can call the notifier's REST API directly or use the provided Java client library. To use the client library add the
following maven dependency:
```xml
<dependency>
<groupId>com.sflpro.notifier</groupId>
<artifactId>api-client-library</artifactId>
<version>1.4.5</version>
</dependency>
```

However, any platform supporting HTTP calls can use the microservice by manually implementing HTTP calls execution logic.
The API is documented using OpenAPI Specification(Swagger) and the documentation JSON is available under `/swagger.json`
once the notifier microservice has been started.

## Deployment

Currently the microservice is packaged as a WAR file, hence requiring a servlet container which can be used for running it. Tested containers are :
* [Apache Tomcat 8] (http://tomcat.apache.org/)
* [Jetty](https://eclipse.org/jetty/)

## TODOs

Below you may find some of the actions planned for the near future :
* Convert the application to use [Spring Boot/Cloud](http://projects.spring.io/spring-cloud/)
* Document the REST API in [Apiary](https://apiary.io/)
* Add client libraries in Python
* Add support for other SMS providers
* Expose the API via [GRPC](http://www.grpc.io/)
Notifier is dockerized and can be easily deployed via docker. See the images on dockerhub:
https://hub.docker.com/r/sflpro/notifier & https://hub.docker.com/r/sflpro/notifier-worker