Messaging Solution Provider

Our client was a messaging solution provider. They had a partially completed platform with ruby and microservices, a node.js based engine that connected to the SMS gateways and a campaign management system written in PHP. The campaign management system did not quite integrate with the rest of the platform. They also had a load distributor system called the balancer. We helped them build the following things.

Campaigner

The old campaigner system was rewritten using elixir and phoenix. We used React.js with Immutable.js and immstruct for the frontend. We achieved close to 90% code coverage on the project with unit test cases and configured CircleCI to not just run the unit tests but to also build a docker image and push it to the registry.

Docs Delivered

DocsDelivered is a bit like MailChimp or other email marketing tools. Customers can upload their contact lists as CSV files or populate them via an API. They can then setup documents (campaigns). We used liquid and markdown to generate documents which were then delivered via an SMS. The recepient can open the document and download it as PDF if needed or have it emailed to them by providing an email address. We integrated with Google Analytics to provide impressive analytics and visualization. Docs Delivered was written with elixir, phoenix and react.js. As with the campaigner, we used CircleCI to run our tests and to build and push the docker image on to the registry.

Engine

There was an existing implementation of the SMS engine that was written with Node.js and had a partial implementation with Go. We finished porting the implementation from Node.js to Golang to support handling incoming SMS from the SMPP gateway. We also reimplemented the distributor with a RabbitMQ based system thus simplyfing the effort needed to build a balancer. Also this decoupled the implementation of the engine from its consumers allowing us to iterate quickly.

Members

Vagmi, Sudhakar, Divyanshu

Technologies Used

Ruby , Elixir , Phoenix Framework , GoLang , RabbitMQ , React ,

Related Posts