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):
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.
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):
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.
Having several years experience developing Web Applications, I've used several kinds of frameworks for different tasks Android Spy Software Without Physical Access
ReplyDeleteGreat Article
DeleteFinal Year Project Domains for CSE
Project Centers in Chennai
JavaScript Training in Chennai
JavaScript Training in Chennai
Wonderful post. I like your blog. Thanks for sharing.
ReplyDeleteTransactional SMS Service in Chennai
You got to read this content on WhatsApp hacking software for android, it will blow your mind!
ReplyDeletewe can send Promotional SMS and Transactional SMS India by using these bulk sms services so its important for business.
ReplyDeleteHi!)) 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.
ReplyDeleteActually, the recommendation to use SMS software for online shops https://www.intistele.com/solutions/online_offline_shops/ cuz, nowadays it`s one of the most popular and simple way to deliver information to your client. Good luck!
It is also worth bearing in mind that some providers will offer several routing options for your mobile messaging padisoft nigeria
ReplyDeleteTransactional Bulk SMS Service Provider
ReplyDeletePromotional Bulk SMS Service Provider
Bulk SMS Service
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.
ReplyDeleteespionnage sms
Children need to investigate these distinctive kinds of development vehicles and their motivations. speech to text apps
ReplyDeleteThey get effortlessly introduced on your cell phone. You can search for these apps in the App stores.480 interactive
ReplyDeleteUtilizing a SMS aircraft does not normally require any propelled specialized aptitudes. sms bomber
ReplyDeleteWow, 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
ReplyDeleteNice to read your article! I am looking forward to sharing your adventures and experiences.
ReplyDeleteSpotify premium apk
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
ReplyDelete