[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discussion] Fineract CN SMS & Email Notifications Project


Hello Graham,

What is the target audience for your project? Are the SMSs being sent out
to Customers or to Employees? I think we should serve the customer first as
updating them on the state of their account is of highest priority to me.
If to Customers, I see no need to do accounting listener except there is a
use case I have not seen.

I suggest you reduce the scope of project for this month(June) and do the
following:

1.) Support SMS notifications only to show proof of concept. Once this is
done, we will move to email notification. SMS is more ubiquitous in the
developing world given we are doing financial inclusion and most of the
customers are in our continent. Look around you, everyone has a GSM enabled
phone. Larger addressable market for your project to make a major impact. I
guess this is one of the reasons you got into open source as this was also
my motivation...Max Impact.

2.) Support CreateCustomer, ActivateCustomer in the customer service.
Support Loan Account Creation within the portfolio service along with Loan
Disbursement and Loan Repayment. Also support Deposit(Checking, Savings and
Share) account creation and their corresponding Cash in (Deposit), Cash out
(Withdrawal) events and send out notifications using the customer's mobile
number. No scheduling or retry for now. Assume the system is always up and
test these happy cases. We will deal with failures in the next iteration.

3.) Forget about GCM for now, it makes no sense considering this when you
have not even sent out one normal email or SMS to the a single customer. *Don't
abstract what you don't fully understand. Premature Optimization is a
disease. *We can handle this later when basic use cases have been
completed. Dont think too much about performance at the moment except you
have the experience, It will come with time. Else you will spend alot of
time just wrapping your head around something beyond your scope. Start
small and grow gradually into it.

4.) Forget about additional queuing after receiving an event from ActiveMQ.
Assume there is a fictional Ops team responsible for reliability for now.
In addition, when this system is in production, multiple instances of
Services will be running and this reduces the chances of an event not been
processes or picked up by your notification service. For the cases where we
begin to see failures in prod, we will tackle this problem separately.

5.) Sample Implementation approach as proposed by Markus few months ago:
https://lists.apache.org/thread.html/95cfb78c48d56dc5756089f837406f4d9e96fd5899ad6cc52eb60623@%3Cdev.fineract.apache.org%3E
This is also the approach Isaac used for the Webinar on SMS Alert available
on youtube. Follow them.

6.) For storing SMS Provider Auth Keys, Please use configuration files for
now but if you can extend the database and store the keys, please do that.
Dont store events, process them in real time. Dont schedule SMSs for now.
Dont retry.

7.) Get a baremetal on the Cloud and Run Demo Server and setup a sample MFI
using fims to get a feel of the platform and create some sample data for
yourself.

8. I said run demo server mutiple times a day.

9. Make changes and run demo server atleast 10 times a day so you
understand the ins and outs of the system.

If anyone has never ran demo server and is working on Fineract CN. Please
stop and go run it and keep asking questions if you dont understand some
aspects of the platform.

These are all proposals and my own recommendations. Feedback, Corrections
and Comments are welcome.

GSoC interns and other volunteers, keep the questions coming, they will
eventually get answers. Use the public dev mailing list. Even when am
unable to answer, there are more experience people on this list who will
help you. They are very  busy so be patient and we will get this system
shipped in a few months.

Thank.
Awasum Yannick



On Sun, May 27, 2018 at 11:40 PM, Ebenezer Graham <egraham15@xxxxxxxxxxxxxx>
wrote:

> ​​
> Hello Yannick,
>
> Thanks for your email. Yes, SMS and Emails will be sent out for events
> occurring in the accounting microservice. The tentative events shortlisted
> for consideration are  onCreateAccount, onChangeAccount, onCloseAccount,
>  onLockAccount, onUnlockAccount, onReopenAccount, onDeleteAccount.
>
> The scope of this project is to develop the notification microservice and
> incorporate it into the demo-server. Secondly, develop an interface for the
> notification service in the fims-web-app which will allow configuration of
> the service i.e flexibility to select permitted notifications, the default
> messages for each notification and the configurations for the Email and SMS
> gateways. My milestone for this month is to accomplish the first scope and
> successfully trigger at least one event from each microservice and
> receive an Email or SMS on the other end.
>
> Additional scope under discussion is the Google Cloud Messaging
> notification integration for the mobile app. I have dug up some of the
> previous emails on GCM and currently reading on what needs to be done.
> Anyone who was involved in the GCM discussion should please forward some fo
> the treads to me.
>
> About the libraries, I am using spring boot's JavaMail library
> <http://www.baeldung.com/spring-email> for emails and the Twilio SDK for
> SMS. I have written minimum code for both and working on running my
> demo-server to test them. For now, this is the libraries I have chosen to
> work with.
>
> About the services, the idea is to create both SMS and Email
> functionalities in the same notification microservice. I have defined the
> Email and SMS Sender classes and defined a Bean for the JavaMailSender to
> connect to google's mail server. This will be fleshed out once I have
> tested the notification service in the demo-server.
>
> Also, I haven't been able to successfully login to see the structure of
> Fineract CN. HIs has affected how the wireframe looks. I am actively
> working on resolving this as I write this mail. My mentor has suggested a
> way to resolve this issue and I have Victor helping me to fix my GCP as we
> speak. So I will definitely have a successful build in a matter of days.
>
> Once I have an idea of the look and feel I will incorporate the look into
> the design. The UI comes later so the look and functionality will evolve as
> we discuss it. All the same, the UI will typically have an interface to
> configure the Email and SMS gateways for each MFI on the platform, a
> section to define custom email/SMS templates and a section to enable and
> select the frequency of notifications retries.
>
> For now, the use case I am considering is instant notification via Email
> and SMS given that the recipient has opted for both. I will work on
> scheduled notification use cases when I have achieved my milestone for the
> first month.
>
> For the phases, the first is the notification services itself, secondly,
> incorporate the service into the demo server, and then move on to the UI.
> Finally, iterate through the previous phases. I am currently implementing
> the first and second scope.
>
> Phases of the notification service itself include creating JMS listeners
> for each microservice, I am still coding the logic for each listener. I
> believe this will happen throughout the lifetime of this project. Next is
> the notification models, and the Sender classes.
>
> PS: I am currently coding the notification models after the event
> listeners. The basic idea was to create a notification object from each
> event generated. It will then be queued and singleton Sender class will pop
> the queue and forward them to the relevant recipients. Please share your
> thoughts on the impact on performance and what to consider in other to
> improve the efficiency of the system.
>
> Also, I am currently thinking of the stage at which localization and
> templating of the messages should be done for the emails. For now, I am
> skewed towards what I have in the proposal.
>
> * At your service*
> *,*
>
> *Ebenezer Graham*
>
> *BSc (Hons) Computing*
>
>
> [image: EmailSignature.png]
>
> Beau Plan Business Park | West Building
>
> Pamplemousses |  Mauritius
>
>
> <http://www.pactmart.com/>
> <http://www.pactmart.com/>
> www.pactmart.com | Freelancing made easy.
> GitHub <https://github.com/ebenezergraham> | LinkedIn
> <https://www.linkedin.com/in/ebenezer-graham/> | Twitter
> <https://twitter.com/pactmart> | Facebook
> <https://www.facebook.com/pactmart> | Website
> <http://ebenezergraham.github.io/>
> ​
> *skype*:
> ​ebenezer.graham
> ​ | *Phone*:
> +230 5840 9206
>
>
> *“Practice isn’t the thing you do once you’re good. It’s the thing you do
> that makes you good.”*
> -*Malcolm Gladwell*
>
>
>
> On 27 May 2018 at 14:36, Awasum Yannick <yannickawasum@xxxxxxxxx> wrote:
>
> > Thanks you Graham,
> >
> > Are you going to be sending SMS or emails for accounting events??
> >
> > What's the scope and phases of the project? Will you do SMS and email
> > within the same service? Which of them will you do first? Have you
> decided
> > on an SMS or email library or provider?
> >
> > Have you ran fineract cn and seen the fims web app and the way the ui
> looks
> > so as to know how your wireframe will fit into it??
> >
> > Please try to think about these and let's all discuss on this thread
> about
> > how the notification should look like. I also think we should start with
> > very simple uses cases and start with one service, SMS or email..then we
> > can incrementally add others.
> >
> > What do you all think??
> >
> > On Fri, May 18, 2018, 23:41 Ebenezer Graham <egraham15@xxxxxxxxxxxxxx>
> > wrote:
> >
> > > I have updated the cwiki page
> > > <https://cwiki.apache.org/confluence/pages/viewpage.action?
> > pageId=75975771
> > > >
> > >
> > > *Best Regards,*
> > >
> > > *Ebenezer Graham*
> > >
> > > *BSc (Hons) Computing*
> > >
> > >
> > > [image: EmailSignature.png]
> > >
> > > Beau Plan Business Park | West Building
> > >
> > > Pamplemousses |  Mauritius
> > >
> > >
> > > <http://www.pactmart.com/>
> > > ​​ <http://www.pactmart.com/>
> > > www.pactmart.com | Freelancing made easy.
> > > GitHub <https://github.com/ebenezergraham> | LinkedIn
> > > <https://www.linkedin.com/in/ebenezer-graham/> | Twitter
> > > <https://twitter.com/pactmart> | Facebook
> > > <https://www.facebook.com/pactmart> | Website
> > > <http://ebenezergraham.github.io/>
> > > ​
> > > *skype*:
> > > ​ebenezer.graham
> > > ​ | *Phone*:
> > > +230 5840 9206
> > >
> > >
> > > *“Practice isn’t the thing you do once you’re good. It’s the thing you
> do
> > > that makes you good.”*
> > > -*Malcolm Gladwell*
> > >
> > >
> > >
> > > On 19 May 2018 at 01:47, Ebenezer Graham <egraham15@xxxxxxxxxxxxxx>
> > wrote:
> > >
> > > > ​Sure I will do that.​
> > > >
> > > > *Best Regards,*
> > > >
> > > > *Ebenezer Graham*
> > > >
> > > > *BSc (Hons) Computing*
> > > >
> > > >
> > > > [image: EmailSignature.png]
> > > >
> > > > Beau Plan Business Park | West Building
> > > >
> > > > Pamplemousses |  Mauritius
> > > >
> > > >
> > > > <http://www.pactmart.com/>
> > > > ​​ <http://www.pactmart.com/>
> > > > www.pactmart.com | Freelancing made easy.
> > > > GitHub <https://github.com/ebenezergraham> | LinkedIn
> > > > <https://www.linkedin.com/in/ebenezer-graham/> | Twitter
> > > > <https://twitter.com/pactmart> | Facebook
> > > > <https://www.facebook.com/pactmart> | Website
> > > > <http://ebenezergraham.github.io/>
> > > > ​
> > > > *skype*:
> > > > ​ebenezer.graham
> > > > ​ | *Phone*:
> > > > +230 5840 9206
> > > >
> > > >
> > > > *“Practice isn’t the thing you do once you’re good. It’s the thing
> you
> > do
> > > > that makes you good.”*
> > > > -*Malcolm Gladwell*
> > > >
> > > >
> > > >
> > > > On 19 May 2018 at 01:28, Awasum Yannick <awasum@xxxxxxxxxx> wrote:
> > > >
> > > >> Hello Graham,
> > > >>
> > > >> Please paste the contents of that document into your confluence
> page.
> > I
> > > >> think here is the wiki you have been using:
> > > >>
> > > https://cwiki.apache.org/confluence/pages/viewpage.action?
> > pageId=75975771
> > > >>
> > > >> For Fineract, Proposals and designs are documented on Confluence not
> > > >> Google
> > > >> Docs. That way there is more transparency and accessibility. Good
> > thing
> > > is
> > > >> that Confluence is version controlled.
> > > >>
> > > >>
> > > >> Thanks.
> > > >> Awasum
> > > >>
> > > >> On Fri, May 18, 2018 at 9:41 PM, Ebenezer Graham <
> > > >> egraham15@xxxxxxxxxxxxxx>
> > > >> wrote:
> > > >>
> > > >> > Hi everyone,
> > > >> >
> > > >> > I am Ebenezer a student from the African Leadership University
> and I
> > > >> will
> > > >> > be working on this project under the mentorship of Isaac Kamga.
> > > >> >
> > > >> > The idea is to use this thread to discuss the decisions being made
> > on
> > > >> this
> > > >> > project so that the community has visibility on what's happening
> and
> > > >> most
> > > >> > importantly give constructive feedback.
> > > >> >
> > > >> > *EventListeners:*
> > > >> > This is the Doc
> > > >> > <https://docs.google.com/document/d/
> 1kme5qrxOrO0WGUEvNgzv5XVkgWtpg
> > > >> > 0lbX-CrBH4js7o/edit?usp=sharing>
> > > >> > containing the shortlisted events which I believe qualify for an
> > Email
> > > >> or
> > > >> > SMS notification. Please review and comment on the doc suggesting
> > any
> > > >> > addition or deletion or related feedback.
> > > >> >
> > > >> > *UI for the service:*
> > > >> > This is a link <https://wireframe.cc/pro/pp/5fb6b2e61167290> to
> the
> > > >> > wireframes for the UI of the service. Please give pointers on what
> > > >> could be
> > > >> > added and what should be taken out.
> > > >> >
> > > >> >
> > > >> > *​At your service*
> > > >> > *,*
> > > >> >
> > > >> > *Ebenezer Graham*
> > > >> >
> > > >> > *BSc (Hons) Computing*
> > > >> >
> > > >> >
> > > >> > [image: EmailSignature.png]
> > > >> >
> > > >> > Beau Plan Business Park | West Building
> > > >> >
> > > >> > Pamplemousses |  Mauritius
> > > >> >
> > > >> >
> > > >> > <http://www.pactmart.com/>
> > > >> > <http://www.pactmart.com/>
> > > >> > www.pactmart.com | Freelancing made easy.
> > > >> > GitHub <https://github.com/ebenezergraham> | LinkedIn
> > > >> > <https://www.linkedin.com/in/ebenezer-graham/> | Twitter
> > > >> > <https://twitter.com/pactmart> | Facebook
> > > >> > <https://www.facebook.com/pactmart> | Website
> > > >> > <http://ebenezergraham.github.io/>
> > > >> > ​
> > > >> > *skype*:
> > > >> > ​ebenezer.graham
> > > >> > ​ | *Phone*:
> > > >> > +230 5840 9206
> > > >> >
> > > >> >
> > > >> > *“Practice isn’t the thing you do once you’re good. It’s the thing
> > you
> > > >> do
> > > >> > that makes you good.”*
> > > >> > -*Malcolm Gladwell*
> > > >> >
> > > >>
> > > >
> > > >
> > >
> >
>