Wednesday, October 15, 2014

MifosX Messenger - automated SMS notification app

As mentioned in my previous blog post, the architecture of MifosX makes it play very nicely with heterogenous technologies using the REST API and Webhooks to communicate. To fulfill my client's requirement, I started working on a SMS sending application to notify group members about financial transactions like loan repayments, and deposits and withdrawals to savings accounts.
I used the Sinatra framework of the ruby programming language because of it's simplicity. Though not as famous as Rails, it's elder brother, Sinatra is perfect for quickly writing great applications without enforcing a directory structure on the programmer. A simple application in sinatra can be as few as 5 lines. Your hello world in sinatra would look like (you won't believe this):

require 'sinatra'

get '/hi' do
  "Hello World!"

Having several years experience developing Web Applications, I've used several kinds of frameworks for different tasks. MVC frameworks like perl-Catalyst, ruby-on-Rails and python-django are great for developing modular applications. However, as the above code snippet shows, it's possible to get cracking with a much leaner and meaner application with a intuitive block for each request path and request type. I had the joy of using another microframework like Sinatra before: perl's Dancer framework. Dancer proved great for implementing a webhook handler app. With the help of CPAN's great array of libraries and modules, I could quickly develop an application with a few lines of code.

Having emphasized the simplicity and speed of developing with microframeworks like Sinatra, it's flexibility with directory structure shouldn't deter those looking to write maintainable applications. Since ruby itself is object oriented and provides neat ways to organize a growing project, it's possible to write a perfectly modular and well organized and maintainable application with Sinatra. In fact, MifosX Messenger uses a handful of classes which specialize in the different functionalities required to get the app working. The workflow starts when a financial transaction is recorded in MifosX.

As the above sequence diagram shows (click for full size view), MifosX Messenger gets notified when any financial transaction it has subscribed to is performed. It parses the JSON in the POST request data received and uses the clientId, loanId and resourceId to fetch information from Mifos via the REST API. Once it has collected the necessary information, it uses a MessageTemplate class to construct the SMS and sends it to the mobile number of the client.


  1. Having several years experience developing Web Applications, I've used several kinds of frameworks for different tasks Android Spy Software Without Physical Access

  2. we can send Promotional SMS and Transactional SMS India by using these bulk sms services so its important for business.

  3. Hi!)) Of course, the SMS sending software must have all the company's stated requirements. For my business, the main point is still the ease of use, this is more important than anything else.

    Actually, the recommendation to use SMS software for online shops cuz, nowadays it`s one of the most popular and simple way to deliver information to your client. Good luck!

  4. It is also worth bearing in mind that some providers will offer several routing options for your mobile messaging padisoft nigeria

  5. Great job for publishing such a beneficial web site. Your web log isn’t only useful but it is additionally really creative too. Thank you because you have been willing to share information with us. we will always appreciate all you have done here because I know you are very concerned with our.
    espionnage sms

  6. Children need to investigate these distinctive kinds of development vehicles and their motivations. speech to text apps

  7. They get effortlessly introduced on your cell phone. You can search for these apps in the App stores.480 interactive

  8. Utilizing a SMS aircraft does not normally require any propelled specialized aptitudes. sms bomber

  9. Wow, cool post. I’d like to write like this too – taking time and real hard work to make a great article… but I put things off too much and never seem to get started. Thanks though. Marketing Info Resources

  10. Nice to read your article! I am looking forward to sharing your adventures and experiences.
    Spotify premium apk

  11. It was really a nice experience to be on your blog to getting wonderful knowledge. Searching for the Transactional SMS Service Provider to connect with your customer then you can visit on Transactional SMS Service Provider India