git.net

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

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


Check your logs and figure out the problem.

On Fri, Jun 15, 2018, 02:20 Ebenezer Graham <egraham15@xxxxxxxxxxxxxx>
wrote:

> Thanks, Yannick and Courage,
>
> I have been able to integrate the notification service into the demo-server
> :)
>
> I just created a customer but didn't receive an SMS as I expected. How can
> I debug the system without tearing down the build?
>
> Any pointers on how to debug the build?
>
> *At your service,*
>
> *Ebenezer Graham*
>
> *BSc (Hons) Computing*
>
>
> [image: EmailSignature.png]
>
> African Leadership University,
>
> Power Mill Road, Pamplemousses,
>
> Mauritius.
>
>
> ​
> *skype*:
> ​ebenezer.graham
> GitHub <https://github.com/ebenezergraham> | LinkedIn
> <https://www.linkedin.com/in/ebenezer-graham/> | Twitter
> <https://twitter.com/pactmart> | Facebook
> <https://www.facebook.com/pactmart>
> www.pactmart.com | Freelancing made easy.
>
>
> *“Talk is cheap, show me the code.” *- *Linus Torvalds*
>
>
>
> On 15 June 2018 at 02:50, Courage Angeh <courageangeh@xxxxxxxxx> wrote:
>
> > Yea, I meant that of your notification microservice, not demo-server.
> > Also, I specified 'shared.gradle' file
> >
> > On Thu, Jun 14, 2018 at 7:34 PM Awasum Yannick <awasum@xxxxxxxxxx>
> wrote:
> >
> > > Use this as the version f the notification service:
> 0.1.0-BUILD-SNAPSHOT
> > >
> > > So it becomes compatible with that in demo server. Check your version
> in
> > > the notification service was: 0.1.0.BUILD-SNAPSHOT (which is wrong).
> > >
> > >
> > > On Thu, Jun 14, 2018 at 7:30 PM Ebenezer Graham <
> > egraham15@xxxxxxxxxxxxxx>
> > > wrote:
> > >
> > > > Please use this link
> > > > <
> > > >
> > > https://github.com/ebenezergraham/fineract-cn-demo-server/
> > blob/fix-notification-integration/build.gradle
> > > > >
> > > > instead I have reset the develop branch to a stable state.
> > > >
> > > > version declaration in on line 53 and dependency declaration is on
> line
> > > > 114.
> > > >
> > > >
> > > > *At your service,*
> > > >
> > > > *Ebenezer Graham*
> > > >
> > > > *BSc (Hons) Computing*
> > > >
> > > >
> > > > [image: EmailSignature.png]
> > > >
> > > > African Leadership University,
> > > >
> > > > Power Mill Road, Pamplemousses,
> > > >
> > > > Mauritius.
> > > >
> > > >
> > > > ​
> > > > *skype*:
> > > > ​ebenezer.graham
> > > > GitHub <https://github.com/ebenezergraham> | LinkedIn
> > > > <https://www.linkedin.com/in/ebenezer-graham/> | Twitter
> > > > <https://twitter.com/pactmart> | Facebook
> > > > <https://www.facebook.com/pactmart>
> > > > www.pactmart.com | Freelancing made easy.
> > > >
> > > >
> > > > *“Talk is cheap, show me the code.” *- *Linus Torvalds*
> > > >
> > > >
> > > >
> > > > On 14 June 2018 at 21:56, Ebenezer Graham <egraham15@xxxxxxxxxxxxxx>
> > > > wrote:
> > > >
> > > > > Hi Courage,
> > > > >
> > > > > Thanks for the tip. I have checked the .m2 directory everything
> looks
> > > > fine
> > > > > to me: https://pastebin.com/dePWtcch
> > > > >
> > > > > This is the demo-server's gradle file : link
> > > > > <
> > > >
> > > https://github.com/ebenezergraham/fineract-cn-demo-server/
> > blob/develop/build.gradle
> > > > >.
> > > > > Can you take a look and let me know if I have missed anything.
> > > > >
> > > > > version declaration in on line 53 and dependency declaration is on
> > line
> > > > > 114.
> > > > >
> > > > > *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 14 June 2018 at 10:28, Courage Angeh <courageangeh@xxxxxxxxx>
> > > wrote:
> > > > >
> > > > >> Hi Victor
> > > > >>
> > > > >> You should check if the artefact is in the .m2 directory. If it
> is,
> > > > check
> > > > >> to make sure '0.1.0-BUILD-SNAPSHOT' is the version you specified
> in
> > > your
> > > > >> shared.gradle file.
> > > > >>
> > > > >> Thanks,
> > > > >> Courage
> > > > >>
> > > > >> On Wed, Jun 13, 2018 at 11:37 AM Ebenezer Graham <
> > > > >> egraham15@xxxxxxxxxxxxxx>
> > > > >> wrote:
> > > > >>
> > > > >> > Hello everyone,
> > > > >> >
> > > > >> > I have managed to get my VM up and running. A big thank you to
> > > Isaac,
> > > > >> > Yannick and Victor for the constant support.
> > > > >> >
> > > > >> > I am now incorporating the notification service into the
> > demo-server
> > > > >> > however, I keep getting this error.
> https://pastebin.com/LW6CUwJ3
> > > > >> >
> > > > >> > NB: I have made a build of the notification microservice and
> > > > >> > publishToMavenLocal. I have also added the dependency to the
> > > > >> build.gradle
> > > > >> > file in the demo server.
> > > > >> >
> > > > >> > I believe this issue has to do with locating the notification
> > > > artefacts
> > > > >> in
> > > > >> > the .m2.
> > > > >> >
> > > > >> > *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 6 June 2018 at 13:13, Awasum Yannick <awasum@xxxxxxxxxx>
> > wrote:
> > > > >> >
> > > > >> > > ​Hi Graham,
> > > > >> > >
> > > > >> > > Delete your /tmp/* directory. Shutdown MySQL and Cassandra if
> > you
> > > > are
> > > > >> not
> > > > >> > > using persistence.
> > > > >> > >
> > > > >> > > ​If you run with peristent=true, make sure to delete the
> seshat
> > > and
> > > > >> > > playground DBs in both MySQL and Cassandra before next run.
> > > > >> > >
> > > > >> > > Try to run the system without your changes. When that is
> > > successful
> > > > >> you
> > > > >> > can
> > > > >> > > start your integration.
> > > > >> > >
> > > > >> > >
> > > > >> > > On Fri, Jun 1, 2018 at 1:17 PM, Ebenezer Graham <
> > > > >> > egraham15@xxxxxxxxxxxxxx>
> > > > >> > > wrote:
> > > > >> > >
> > > > >> > > > Hello Everyone,
> > > > >> > > >
> > > > >> > > > I have been studying my logs carefully and noticed this
> error
> > > > >> occurring
> > > > >> > > > long before the failure message
> > > > >> > > >
> > > > >> > > > https://pastebin.com/9237iFaR
> > > > >> > > >
> > > > >> > > > Please let me know how I can resolve this.
> > > > >> > > >
> > > > >> > > > *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 31 May 2018 at 13:19, Ebenezer Graham <
> > > > egraham15@xxxxxxxxxxxxxx>
> > > > >> > > wrote:
> > > > >> > > >
> > > > >> > > > > Hello Yannick,
> > > > >> > > > >
> > > > >> > > > > Thanks for your email. I will limit my scope for now and
> > > > gradually
> > > > >> > make
> > > > >> > > > > progress with the entire scope.
> > > > >> > > > >
> > > > >> > > > > Thanks for the archive email. It was very insightful, I
> will
> > > > >> focus on
> > > > >> > > the
> > > > >> > > > > customer and portfolio service for now and then we can
> > include
> > > > >> others
> > > > >> > > > > later.
> > > > >> > > > >
> > > > >> > > > > The target audience includes all MFI member (Customers and
> > > > Staff).
> > > > >> > > > > However, the customers are my priority for now. I will
> focus
> > > on
> > > > >> your
> > > > >> > > > > suggested events and code their logic for testing.
> > > > >> > > > >
> > > > >> > > > > I will share a set of use cases for the entire system and
> > all
> > > > MFI
> > > > >> > > members
> > > > >> > > > > so that we can eliminate and add some use cases for both
> > > > customers
> > > > >> > and
> > > > >> > > > > staff.
> > > > >> > > > >
> > > > >> > > > > I have written minimum code for SMS and so I will further
> > > > develop
> > > > >> the
> > > > >> > > > > classes in this scope and ensure that I am processing live
> > > > >> > notification
> > > > >> > > > for
> > > > >> > > > > the SMS. Please note that I am working on the *increment-
> > one
> > > > >> branch*
> > > > >> > > of
> > > > >> > > > > the repository so checks that out when looking at the
> > > > repository.
> > > > >> > > > >
> > > > >> > > > > I have set up another VM (C2L) on Scaleway following my
> > > mentor's
> > > > >> and
> > > > >> > > > > Yannick's advise.
> > > > >> > > > >
> > > > >> > > > > In summary, it has 30GB RAM, 8 cores and running on Ubuntu
> > > 16.04
> > > > >> LTS.
> > > > >> > > > >
> > > > >> > > > > I have also installed, JDK 8, git, MySQL 5.7, Gradle 4.5,
> > > Maven
> > > > >> > 3.3.9,
> > > > >> > > > > Cassandra 3.11, the latest Nginx, Nodejs, and NPM
> > > > >> > > > >
> > > > >> > > > > NB: I am using the root account.
> > > > >> > > > >
> > > > >> > > > > After the installation, I used option A and got a
> Cassandra
> > > > >> error. I
> > > > >> > > used
> > > > >> > > > > option B and managed to get the build to run for over 30
> > mins.
> > > > >> but I
> > > > >> > > got
> > > > >> > > > > this error https://pastebin.com/0rVWCpgD
> > > > >> > > > >
> > > > >> > > > > I restarted the server and tried again with option B and
> got
> > > an
> > > > >> error
> > > > >> > > > with
> > > > >> > > > > the Cassandra. After troubleshooting with nodetool status
> I
> > > got
> > > > >> this
> > > > >> > > > error:
> > > > >> > > > >
> > > > >> > > > > nodetool: Failed to connect to '127.0.0.1:7199' -
> > > > >> ConnectException:
> > > > >> > > > > 'Connection refused (Connection refused)'.
> > > > >> > > > >
> > > > >> > > > > I followed this guide
> > > > >> > > > > <https://www.liquidweb.com/kb/error-failed-to-connect-to-
> > > > >> > > > 127-0-0-17199-connection-refused-cassandra-solved/> to
> > > > >> > > > > modify my Cassandra-env.sh and this allowed me to connect
> to
> > > the
> > > > >> > > > > Cassandra after that. Please let me know if I should
> revert
> > to
> > > > the
> > > > >> > > > original.
> > > > >> > > > >
> > > > >> > > > > Currently, I have run the build several times and this is
> > the
> > > > >> error
> > > > >> > > log I
> > > > >> > > > > am getting -  https://pastebin.com/YQnLVMFQ
> > > > >> > > > > <https://www.google.com/url?q=
> > https://pastebin.com/YQnLVMFQ&;
> > > > >> > > > sa=D&source=hangouts&ust=1527816499142000&usg=AFQjCNF503CCHS
> > > > >> obASiks1_
> > > > >> > > > RBMazyPT61Q>.
> > > > >> > > > > I think it has something to do with the identity service.
> > > > >> > > > >
> > > > >> > > > > Looking forward to your suggestions.
> > > > >> > > > >
> > > > >> > > > > *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 30 May 2018 at 14:16, Awasum Yannick <
> awasum@xxxxxxxxxx>
> > > > >> wrote:
> > > > >> > > > >
> > > > >> > > > >> 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/threa
> > d.html/95cfb78c48d56dc5756089f
> > > > >> > > > >> 837406f4d9e96fd5899ad6cc52eb60623@%
> > 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*
> > > > >> > > > >> > > > >> >
> > > > >> > > > >> > > > >>
> > > > >> > > > >> > > > >
> > > > >> > > > >> > > > >
> > > > >> > > > >> > > >
> > > > >> > > > >> > >
> > > > >> > > > >> >
> > > > >> > > > >>
> > > > >> > > > >
> > > > >> > > > >
> > > > >> > > >
> > > > >> > >
> > > > >> >
> > > > >>
> > > > >
> > > > >
> > > >
> > >
> >
>