diff --git a/README.md b/README.md index b569cddf..b0e8748b 100644 --- a/README.md +++ b/README.md @@ -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. @@ -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: * [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 + + com.sflpro.notifier + api-client-library + 1.4.5 + +``` -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