You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@fineract.apache.org by Ebenezer Graham <eg...@alustudent.com> on 2018/03/16 14:17:53 UTC

Fineract CN SMS & Email Notifications Idea

*Hi,I would like to contribute to the development of the new notification
microservice for Fineract CNThis is my thinking around the implementation
of notification microservice for GSoC. I would like get your input on the
approach if possible. The Notification Microservice could be divided into
the following subsystems.Preferably, refactor the existing codebase to
generate the triggers after passing the necessary checks in the
backend.Alternatively, A trigger creator can be made within the
microservice to avoid tampering with the existing codebase.TriggerGenerator
- Monitor Database for new records and generate and eventThe resolver will
accept event from the generator and then determine what has to be done. The
Resolver then determines the kind of notification required, an email or an
SMS I will determine if its an instant notification or need to be scheduled
for later release TriggerResolver - Listen for triggers- Determine the kind
of notification- Forward instant notification- Aggregate Notification for
scheduled releaseThis component will be abstracted to accommodate future
changes in message formats. It will create DAO for the various databases
accessDAOFactory - clientDAO- loanDAO- etcThe message resolver will gather
the content from the database using the DAO to form the message and all
relevant address.This component will use the template component to form the
message structure. MessageResolver - Gather message content using internal
DAO- Gather addressesThis component will receive the message and connect
with carrier domains and mailing services to send the
notifications.MessageHandler - Send Messages- Authenticate with carrier
domains and create mail servlets- Retry sending notification if
failed.EmailHandler extends MessageHandler - Prepare Email SMSHandler
extends MessageHandler - Prepare SMSThe template will abstract the various
message formats and work with the MessageResolver.Template - SMS templates-
SMS templates- Email Templates- CC/BCC : StakeholdersI have attached a
class diagram to help visualize the components. *

*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.
​
skype:
​ebenezer.graham
​ | Phone:
+230 5840 9206
GitHub <https://github.com/ebenezergraham> | LinkedIn
<https://www.linkedin.com/in/ebenezer-graham/> | Twitter
<https://twitter.com/pactmart> | Facebook
<https://www.facebook.com/pactmart> | Personal Website / CV
<http://ebenezergraham.github.io/>


*“Practice isn’t the thing you do once you’re good. It’s the thing you do
that makes you good.”*
-*Malcolm Gladwell*

Re: Fineract CN SMS & Email Notifications Idea

Posted by Markus Geiss <ma...@apache.org>.
Hey Ebenezer,

hope this finds you well. (;

Every rest call that leads to a change in the database already creates an
event send via ActiveMQ.
This is all handle within CommandBus and we do use it to react on changes
within other services.

So all you would need to do is, creating a new microservice which will
listen to those events,
and implement the message handling and creation within this service.

For this you can simply use the JmsListener annotation provided by Spring.

I do not recommend to create your own DAOs because the system is internally
handling
the multi-tenancy issue. You should use provided API classes to access
foreign
microservices. A microservice will only read it's own data directly from
the DB,
reading data from another microservice directly will break the whole idea
of
separation of concerns.

Cheers

Markus

.::Yagni likes a DRY KISS::.

On Fri, Mar 16, 2018 at 3:18 PM Ebenezer Graham <eg...@alustudent.com>
wrote:

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> *Hi,I would like to contribute to the development of the new notification
> microservice for Fineract CNThis is my thinking around the implementation
> of notification microservice for GSoC. I would like get your input on the
> approach if possible. The Notification Microservice could be divided into
> the following subsystems.Preferably, refactor the existing codebase to
> generate the triggers after passing the necessary checks in the
> backend.Alternatively, A trigger creator can be made within the
> microservice to avoid tampering with the existing codebase.TriggerGenerator
> - Monitor Database for new records and generate and eventThe resolver will
> accept event from the generator and then determine what has to be done. The
> Resolver then determines the kind of notification required, an email or an
> SMS I will determine if its an instant notification or need to be scheduled
> for later release TriggerResolver - Listen for triggers- Determine the kind
> of notification- Forward instant notification- Aggregate Notification for
> scheduled releaseThis component will be abstracted to accommodate future
> changes in message formats. It will create DAO for the various databases
> accessDAOFactory - clientDAO- loanDAO- etcThe message resolver will gather
> the content from the database using the DAO to form the message and all
> relevant address.This component will use the template component to form the
> message structure. MessageResolver - Gather message content using internal
> DAO- Gather addressesThis component will receive the message and connect
> with carrier domains and mailing services to send the
> notifications.MessageHandler - Send Messages- Authenticate with carrier
> domains and create mail servlets- Retry sending notification if
> failed.EmailHandler extends MessageHandler - Prepare Email SMSHandler
> extends MessageHandler - Prepare SMSThe template will abstract the various
> message formats and work with the MessageResolver.Template - SMS templates-
> SMS templates- Email Templates- CC/BCC : StakeholdersI have attached a
> class diagram to help visualize the components. *
>
> *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.
> ​
> skype:
> ​ebenezer.graham
> ​ | Phone:
> +230 5840 9206 <+230%205840%209206>
> GitHub <https://github.com/ebenezergraham> | LinkedIn
> <https://www.linkedin.com/in/ebenezer-graham/> | Twitter
> <https://twitter.com/pactmart> | Facebook
> <https://www.facebook.com/pactmart> | Personal Website / CV
> <http://ebenezergraham.github.io/>
>
>
> *“Practice isn’t the thing you do once you’re good. It’s the thing you do
> that makes you good.”*
> -*Malcolm Gladwell*
>
>
>

Re: Fineract CN SMS & Email Notifications Idea

Posted by Ed Cable <ed...@mifos.org>.
Ebenezer,

Your proposal is still just in draft state - I just wanted to make sure you
got a final submission in before the deadline.

Ed

On Mon, Mar 19, 2018 at 12:46 AM, Myrle Krantz <my...@apache.org> wrote:

> Hi Ebenezer,
>
> You now have write priviliges in the Fineract wiki.  I suggest you
> work on notifications for Fineract CN here:
>
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=75975771
>
> Best Regards,
> Myrle
>
> On Sat, Mar 17, 2018 at 12:53 AM, Ebenezer Graham
> <eg...@alustudent.com> wrote:
> > Hello Markus and Myrle,
> >
> > Thank you for the input. I will revise the idea and include how it will
> > work using the API and ActiveMQ.
> > This is my confluence id ebenezergraham , hopefully I can start detailing
> > the idea there.
> >
> > *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.
> >
> > skype:
> > ebenezer.graham
> > | Phone:
> > +230 5840 9206
> > GitHub <https://github.com/ebenezergraham> | LinkedIn
> > <https://www.linkedin.com/in/ebenezer-graham/> | Twitter
> > <https://twitter.com/pactmart> | Facebook
> > <https://www.facebook.com/pactmart> | Personal Website / CV
> > <http://ebenezergraham.github.io/>
> >
> >
> > *“Practice isn’t the thing you do once you’re good. It’s the thing you do
> > that makes you good.”*
> > -*Malcolm Gladwell*
> >
> >
> >
> > On 16 March 2018 at 18:34, Myrle Krantz <my...@apache.org> wrote:
> >
> >> Hi Ebenezer,
> >>
> >> I believe you're planning to monitor at the wrong abstraction level.
> >> Currently each command handler has a so-called @EventEmitter, which
> places
> >> a message on the ActiveMQ message queue.  A command handler might change
> >> multiple tables while persisting the data it needs to persist, but it
> will
> >> only emit one ActiveMQ message.  So your monitor should listen to
> ActiveMQ
> >> rather than monitoring the database.  In all of the component-test
> modules
> >> for the services, there is a listener module which shows how to listen
> to
> >> the ActiveMQ events defined for that service.
> >>
> >> Also a question: how do you plan to solve the localization problem in
> your
> >> design?  IE what if an institution has customers who don't speak the
> same
> >> language as each other?
> >>
> >> If you'd like to put your design in confluence, create a confluence id
> and
> >> I'll give you edit permissions.
> >>
> >> Best Regards,
> >> Myrle
> >>
> >>
> >>
> >> On Fri, Mar 16, 2018 at 3:17 PM, Ebenezer Graham <
> egraham15@alustudent.com
> >> >
> >> wrote:
> >>
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> > *Hi,I would like to contribute to the development of the new
> notification
> >> > microservice for Fineract CNThis is my thinking around the
> implementation
> >> > of notification microservice for GSoC. I would like get your input on
> the
> >> > approach if possible. The Notification Microservice could be divided
> into
> >> > the following subsystems.Preferably, refactor the existing codebase to
> >> > generate the triggers after passing the necessary checks in the
> >> > backend.Alternatively, A trigger creator can be made within the
> >> > microservice to avoid tampering with the existing
> >> codebase.TriggerGenerator
> >> > - Monitor Database for new records and generate and eventThe resolver
> >> will
> >> > accept event from the generator and then determine what has to be
> done.
> >> The
> >> > Resolver then determines the kind of notification required, an email
> or
> >> an
> >> > SMS I will determine if its an instant notification or need to be
> >> scheduled
> >> > for later release TriggerResolver - Listen for triggers- Determine the
> >> kind
> >> > of notification- Forward instant notification- Aggregate Notification
> for
> >> > scheduled releaseThis component will be abstracted to accommodate
> future
> >> > changes in message formats. It will create DAO for the various
> databases
> >> > accessDAOFactory - clientDAO- loanDAO- etcThe message resolver will
> >> gather
> >> > the content from the database using the DAO to form the message and
> all
> >> > relevant address.This component will use the template component to
> form
> >> the
> >> > message structure. MessageResolver - Gather message content using
> >> internal
> >> > DAO- Gather addressesThis component will receive the message and
> connect
> >> > with carrier domains and mailing services to send the
> >> > notifications.MessageHandler - Send Messages- Authenticate with
> carrier
> >> > domains and create mail servlets- Retry sending notification if
> >> > failed.EmailHandler extends MessageHandler - Prepare Email SMSHandler
> >> > extends MessageHandler - Prepare SMSThe template will abstract the
> >> various
> >> > message formats and work with the MessageResolver.Template - SMS
> >> templates-
> >> > SMS templates- Email Templates- CC/BCC : StakeholdersI have attached a
> >> > class diagram to help visualize the components. *
> >> >
> >> > *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.
> >> >
> >> > skype:
> >> > ebenezer.graham
> >> > | Phone:
> >> > +230 5840 9206 <+230%205840%209206>
> >> > GitHub <https://github.com/ebenezergraham> | LinkedIn
> >> > <https://www.linkedin.com/in/ebenezer-graham/> | Twitter
> >> > <https://twitter.com/pactmart> | Facebook
> >> > <https://www.facebook.com/pactmart> | Personal Website / CV
> >> > <http://ebenezergraham.github.io/>
> >> >
> >> >
> >> > *“Practice isn’t the thing you do once you’re good. It’s the thing
> you do
> >> > that makes you good.”*
> >> > -*Malcolm Gladwell*
> >> >
> >> >
> >> >
> >>
>



-- 
*Ed Cable*
President/CEO, Mifos Initiative
edcable@mifos.org | Skype: edcable | Mobile: +1.484.477.8649

*Collectively Creating a World of 3 Billion Maries | *http://mifos.org
<http://facebook.com/mifos>  <http://www.twitter.com/mifos>

Re: Fineract CN SMS & Email Notifications Idea

Posted by Myrle Krantz <my...@apache.org>.
Hi Ebenezer,

You now have write priviliges in the Fineract wiki.  I suggest you
work on notifications for Fineract CN here:

https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=75975771

Best Regards,
Myrle

On Sat, Mar 17, 2018 at 12:53 AM, Ebenezer Graham
<eg...@alustudent.com> wrote:
> Hello Markus and Myrle,
>
> Thank you for the input. I will revise the idea and include how it will
> work using the API and ActiveMQ.
> This is my confluence id ebenezergraham , hopefully I can start detailing
> the idea there.
>
> *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.
>
> skype:
> ebenezer.graham
> | Phone:
> +230 5840 9206
> GitHub <https://github.com/ebenezergraham> | LinkedIn
> <https://www.linkedin.com/in/ebenezer-graham/> | Twitter
> <https://twitter.com/pactmart> | Facebook
> <https://www.facebook.com/pactmart> | Personal Website / CV
> <http://ebenezergraham.github.io/>
>
>
> *“Practice isn’t the thing you do once you’re good. It’s the thing you do
> that makes you good.”*
> -*Malcolm Gladwell*
>
>
>
> On 16 March 2018 at 18:34, Myrle Krantz <my...@apache.org> wrote:
>
>> Hi Ebenezer,
>>
>> I believe you're planning to monitor at the wrong abstraction level.
>> Currently each command handler has a so-called @EventEmitter, which places
>> a message on the ActiveMQ message queue.  A command handler might change
>> multiple tables while persisting the data it needs to persist, but it will
>> only emit one ActiveMQ message.  So your monitor should listen to ActiveMQ
>> rather than monitoring the database.  In all of the component-test modules
>> for the services, there is a listener module which shows how to listen to
>> the ActiveMQ events defined for that service.
>>
>> Also a question: how do you plan to solve the localization problem in your
>> design?  IE what if an institution has customers who don't speak the same
>> language as each other?
>>
>> If you'd like to put your design in confluence, create a confluence id and
>> I'll give you edit permissions.
>>
>> Best Regards,
>> Myrle
>>
>>
>>
>> On Fri, Mar 16, 2018 at 3:17 PM, Ebenezer Graham <egraham15@alustudent.com
>> >
>> wrote:
>>
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > *Hi,I would like to contribute to the development of the new notification
>> > microservice for Fineract CNThis is my thinking around the implementation
>> > of notification microservice for GSoC. I would like get your input on the
>> > approach if possible. The Notification Microservice could be divided into
>> > the following subsystems.Preferably, refactor the existing codebase to
>> > generate the triggers after passing the necessary checks in the
>> > backend.Alternatively, A trigger creator can be made within the
>> > microservice to avoid tampering with the existing
>> codebase.TriggerGenerator
>> > - Monitor Database for new records and generate and eventThe resolver
>> will
>> > accept event from the generator and then determine what has to be done.
>> The
>> > Resolver then determines the kind of notification required, an email or
>> an
>> > SMS I will determine if its an instant notification or need to be
>> scheduled
>> > for later release TriggerResolver - Listen for triggers- Determine the
>> kind
>> > of notification- Forward instant notification- Aggregate Notification for
>> > scheduled releaseThis component will be abstracted to accommodate future
>> > changes in message formats. It will create DAO for the various databases
>> > accessDAOFactory - clientDAO- loanDAO- etcThe message resolver will
>> gather
>> > the content from the database using the DAO to form the message and all
>> > relevant address.This component will use the template component to form
>> the
>> > message structure. MessageResolver - Gather message content using
>> internal
>> > DAO- Gather addressesThis component will receive the message and connect
>> > with carrier domains and mailing services to send the
>> > notifications.MessageHandler - Send Messages- Authenticate with carrier
>> > domains and create mail servlets- Retry sending notification if
>> > failed.EmailHandler extends MessageHandler - Prepare Email SMSHandler
>> > extends MessageHandler - Prepare SMSThe template will abstract the
>> various
>> > message formats and work with the MessageResolver.Template - SMS
>> templates-
>> > SMS templates- Email Templates- CC/BCC : StakeholdersI have attached a
>> > class diagram to help visualize the components. *
>> >
>> > *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.
>> >
>> > skype:
>> > ebenezer.graham
>> > | Phone:
>> > +230 5840 9206 <+230%205840%209206>
>> > GitHub <https://github.com/ebenezergraham> | LinkedIn
>> > <https://www.linkedin.com/in/ebenezer-graham/> | Twitter
>> > <https://twitter.com/pactmart> | Facebook
>> > <https://www.facebook.com/pactmart> | Personal Website / CV
>> > <http://ebenezergraham.github.io/>
>> >
>> >
>> > *“Practice isn’t the thing you do once you’re good. It’s the thing you do
>> > that makes you good.”*
>> > -*Malcolm Gladwell*
>> >
>> >
>> >
>>

Re: Fineract CN SMS & Email Notifications Idea

Posted by Ebenezer Graham <eg...@alustudent.com>.
Hello Markus and Myrle,

Thank you for the input. I will revise the idea and include how it will
work using the API and ActiveMQ.
This is my confluence id ebenezergraham , hopefully I can start detailing
the idea there.

*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.
​
skype:
​ebenezer.graham
​ | Phone:
+230 5840 9206
GitHub <https://github.com/ebenezergraham> | LinkedIn
<https://www.linkedin.com/in/ebenezer-graham/> | Twitter
<https://twitter.com/pactmart> | Facebook
<https://www.facebook.com/pactmart> | Personal Website / CV
<http://ebenezergraham.github.io/>


*“Practice isn’t the thing you do once you’re good. It’s the thing you do
that makes you good.”*
-*Malcolm Gladwell*



On 16 March 2018 at 18:34, Myrle Krantz <my...@apache.org> wrote:

> Hi Ebenezer,
>
> I believe you're planning to monitor at the wrong abstraction level.
> Currently each command handler has a so-called @EventEmitter, which places
> a message on the ActiveMQ message queue.  A command handler might change
> multiple tables while persisting the data it needs to persist, but it will
> only emit one ActiveMQ message.  So your monitor should listen to ActiveMQ
> rather than monitoring the database.  In all of the component-test modules
> for the services, there is a listener module which shows how to listen to
> the ActiveMQ events defined for that service.
>
> Also a question: how do you plan to solve the localization problem in your
> design?  IE what if an institution has customers who don't speak the same
> language as each other?
>
> If you'd like to put your design in confluence, create a confluence id and
> I'll give you edit permissions.
>
> Best Regards,
> Myrle
>
>
>
> On Fri, Mar 16, 2018 at 3:17 PM, Ebenezer Graham <egraham15@alustudent.com
> >
> wrote:
>
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > *Hi,I would like to contribute to the development of the new notification
> > microservice for Fineract CNThis is my thinking around the implementation
> > of notification microservice for GSoC. I would like get your input on the
> > approach if possible. The Notification Microservice could be divided into
> > the following subsystems.Preferably, refactor the existing codebase to
> > generate the triggers after passing the necessary checks in the
> > backend.Alternatively, A trigger creator can be made within the
> > microservice to avoid tampering with the existing
> codebase.TriggerGenerator
> > - Monitor Database for new records and generate and eventThe resolver
> will
> > accept event from the generator and then determine what has to be done.
> The
> > Resolver then determines the kind of notification required, an email or
> an
> > SMS I will determine if its an instant notification or need to be
> scheduled
> > for later release TriggerResolver - Listen for triggers- Determine the
> kind
> > of notification- Forward instant notification- Aggregate Notification for
> > scheduled releaseThis component will be abstracted to accommodate future
> > changes in message formats. It will create DAO for the various databases
> > accessDAOFactory - clientDAO- loanDAO- etcThe message resolver will
> gather
> > the content from the database using the DAO to form the message and all
> > relevant address.This component will use the template component to form
> the
> > message structure. MessageResolver - Gather message content using
> internal
> > DAO- Gather addressesThis component will receive the message and connect
> > with carrier domains and mailing services to send the
> > notifications.MessageHandler - Send Messages- Authenticate with carrier
> > domains and create mail servlets- Retry sending notification if
> > failed.EmailHandler extends MessageHandler - Prepare Email SMSHandler
> > extends MessageHandler - Prepare SMSThe template will abstract the
> various
> > message formats and work with the MessageResolver.Template - SMS
> templates-
> > SMS templates- Email Templates- CC/BCC : StakeholdersI have attached a
> > class diagram to help visualize the components. *
> >
> > *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.
> > ​
> > skype:
> > ​ebenezer.graham
> > ​ | Phone:
> > +230 5840 9206 <+230%205840%209206>
> > GitHub <https://github.com/ebenezergraham> | LinkedIn
> > <https://www.linkedin.com/in/ebenezer-graham/> | Twitter
> > <https://twitter.com/pactmart> | Facebook
> > <https://www.facebook.com/pactmart> | Personal Website / CV
> > <http://ebenezergraham.github.io/>
> >
> >
> > *“Practice isn’t the thing you do once you’re good. It’s the thing you do
> > that makes you good.”*
> > -*Malcolm Gladwell*
> >
> >
> >
>

Re: Fineract CN SMS & Email Notifications Idea

Posted by Myrle Krantz <my...@apache.org>.
Hi Ebenezer,

I believe you're planning to monitor at the wrong abstraction level.
Currently each command handler has a so-called @EventEmitter, which places
a message on the ActiveMQ message queue.  A command handler might change
multiple tables while persisting the data it needs to persist, but it will
only emit one ActiveMQ message.  So your monitor should listen to ActiveMQ
rather than monitoring the database.  In all of the component-test modules
for the services, there is a listener module which shows how to listen to
the ActiveMQ events defined for that service.

Also a question: how do you plan to solve the localization problem in your
design?  IE what if an institution has customers who don't speak the same
language as each other?

If you'd like to put your design in confluence, create a confluence id and
I'll give you edit permissions.

Best Regards,
Myrle



On Fri, Mar 16, 2018 at 3:17 PM, Ebenezer Graham <eg...@alustudent.com>
wrote:

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> *Hi,I would like to contribute to the development of the new notification
> microservice for Fineract CNThis is my thinking around the implementation
> of notification microservice for GSoC. I would like get your input on the
> approach if possible. The Notification Microservice could be divided into
> the following subsystems.Preferably, refactor the existing codebase to
> generate the triggers after passing the necessary checks in the
> backend.Alternatively, A trigger creator can be made within the
> microservice to avoid tampering with the existing codebase.TriggerGenerator
> - Monitor Database for new records and generate and eventThe resolver will
> accept event from the generator and then determine what has to be done. The
> Resolver then determines the kind of notification required, an email or an
> SMS I will determine if its an instant notification or need to be scheduled
> for later release TriggerResolver - Listen for triggers- Determine the kind
> of notification- Forward instant notification- Aggregate Notification for
> scheduled releaseThis component will be abstracted to accommodate future
> changes in message formats. It will create DAO for the various databases
> accessDAOFactory - clientDAO- loanDAO- etcThe message resolver will gather
> the content from the database using the DAO to form the message and all
> relevant address.This component will use the template component to form the
> message structure. MessageResolver - Gather message content using internal
> DAO- Gather addressesThis component will receive the message and connect
> with carrier domains and mailing services to send the
> notifications.MessageHandler - Send Messages- Authenticate with carrier
> domains and create mail servlets- Retry sending notification if
> failed.EmailHandler extends MessageHandler - Prepare Email SMSHandler
> extends MessageHandler - Prepare SMSThe template will abstract the various
> message formats and work with the MessageResolver.Template - SMS templates-
> SMS templates- Email Templates- CC/BCC : StakeholdersI have attached a
> class diagram to help visualize the components. *
>
> *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.
> ​
> skype:
> ​ebenezer.graham
> ​ | Phone:
> +230 5840 9206 <+230%205840%209206>
> GitHub <https://github.com/ebenezergraham> | LinkedIn
> <https://www.linkedin.com/in/ebenezer-graham/> | Twitter
> <https://twitter.com/pactmart> | Facebook
> <https://www.facebook.com/pactmart> | Personal Website / CV
> <http://ebenezergraham.github.io/>
>
>
> *“Practice isn’t the thing you do once you’re good. It’s the thing you do
> that makes you good.”*
> -*Malcolm Gladwell*
>
>
>

Re: [Mifos-developer] Fineract CN SMS & Email Notifications Idea

Posted by Kareem Qureshi <ka...@gmail.com>.
Hi Ebenezer,

I believe there needs to be a component to allow the users to select their
notification preferences and what type of notifications they would like to
receive and how they would like to receive, as in some countries like
Canada there is a concept of Do not solicit.  Let me know I can help around
in providing some inputs around the notifications.

Thanks
Kareem

On Fri, Mar 16, 2018 at 10:17 AM, Ebenezer Graham <eg...@alustudent.com>
wrote:

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> *Hi,I would like to contribute to the development of the new notification
> microservice for Fineract CNThis is my thinking around the implementation
> of notification microservice for GSoC. I would like get your input on the
> approach if possible. The Notification Microservice could be divided into
> the following subsystems.Preferably, refactor the existing codebase to
> generate the triggers after passing the necessary checks in the
> backend.Alternatively, A trigger creator can be made within the
> microservice to avoid tampering with the existing codebase.TriggerGenerator
> - Monitor Database for new records and generate and eventThe resolver will
> accept event from the generator and then determine what has to be done. The
> Resolver then determines the kind of notification required, an email or an
> SMS I will determine if its an instant notification or need to be scheduled
> for later release TriggerResolver - Listen for triggers- Determine the kind
> of notification- Forward instant notification- Aggregate Notification for
> scheduled releaseThis component will be abstracted to accommodate future
> changes in message formats. It will create DAO for the various databases
> accessDAOFactory - clientDAO- loanDAO- etcThe message resolver will gather
> the content from the database using the DAO to form the message and all
> relevant address.This component will use the template component to form the
> message structure. MessageResolver - Gather message content using internal
> DAO- Gather addressesThis component will receive the message and connect
> with carrier domains and mailing services to send the
> notifications.MessageHandler - Send Messages- Authenticate with carrier
> domains and create mail servlets- Retry sending notification if
> failed.EmailHandler extends MessageHandler - Prepare Email SMSHandler
> extends MessageHandler - Prepare SMSThe template will abstract the various
> message formats and work with the MessageResolver.Template - SMS templates-
> SMS templates- Email Templates- CC/BCC : StakeholdersI have attached a
> class diagram to help visualize the components. *
>
> *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.
> ​
> skype:
> ​ebenezer.graham
> ​ | Phone:
> +230 5840 9206 <+230%205840%209206>
> GitHub <https://github.com/ebenezergraham> | LinkedIn
> <https://www.linkedin.com/in/ebenezer-graham/> | Twitter
> <https://twitter.com/pactmart> | Facebook
> <https://www.facebook.com/pactmart> | Personal Website / CV
> <http://ebenezergraham.github.io/>
>
>
> *“Practice isn’t the thing you do once you’re good. It’s the thing you do
> that makes you good.”*
> -*Malcolm Gladwell*
>
>
>
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> Mifos-developer mailing list
> mifos-developer@lists.sourceforge.net
> Unsubscribe or change settings at:
> https://lists.sourceforge.net/lists/listinfo/mifos-developer
>