You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@fineract.apache.org by Juhan Aasaru <aa...@gmail.com> on 2018/12/19 18:38:43 UTC

Fineract CN observations from a newcomer

Hi, community!

I discovered Fineract CN project just recently and found it very
interesting and ambitious and it raised a great interest in me. I went
through all the documentation and materials I could find. I thought I share
my first impressions and ideas on how I think the project could be further
improved and highlight some minor issues that I found.

1. Fineract CN is targeted to a wider audience than its predecessors so in
my opinion, Fineract CN materials and discussions should be separated from
the Fineract project as it causes confusion and noise. I see that there is
a separate Jira project created for Fineract CN but not yet a separate
Confluence space nor separate developers list. Fineract CN materials are
mostly grouped under "Fineract CN" but there is also some material found
elsewhere (for example Fineract User Zone -> Apache Fineract CN Users
Guide).

2. I had some comments about Confluence pages. First I thought to register
myself as a Confluence user but after that, I still didn't have any
permissions to add comments to pages. So I thought I write them here for
now.

2.1. Comments on "How to build Apache Fineract CN
<https://cwiki.apache.org/confluence/display/FINERACT/How+To+Build+Apache+Fineract+CN>
"

The wiki page has a lot of info and organizing it into logical steps would
help a newcomer out and it wouldn't hurt to add a few lines explaining why
some step is done and also add a link to demo_server Readme.md

Luckily wiki page has all the info in there and so eventually I managed to
get the app running in my local environment (Mac). For some reason, I
couldn't get Cassandra working but I managed to solve this by running
Cassandra from a Docker image instead:
docker run -p9042:9042 -p7199:7199 cassandra:3.11
This brought me to an idea that a docker-compose.yml could be set up to
create an environment with all the running services (you can google "docker
compose npm local" for more info). I know it adds overhead (won't probably
work well on slow computers) but it would speed up getting the demo server
running locally.

All FN projects have Gradle wrapper in use so I don't see why there is a
need to install Gradle (Mac users are suggested to install Maven as
well). Also, I didn't get why there is a need for Nginx. Creating a fork of
all the Fineract CN Github repositories could be an optional step - one
could just clone the repos directly and switch to a fork only if he
actually plans contributing.

2.2. Comments on "Importing Fineract CN Microservices Into IntelliJ
<https://cwiki.apache.org/confluence/display/FINERACT/Importing+Fineract+CN+Microservices+Into+IntelliJ>
"

I think it would be good to suggest also importing modules under
"integration-tests/*" into IntelliJ IDEA

3. I was surprised to see that Fineract CN is based on Spring Boot 1. I
didn't find from anywhere in the roadmap about any plans to migrating on
Spring Boot 2. I think that at this stage it would be wise to stay up to
date with the base framework.

Spring Boot 2 comes with Hikari Connection Pool that is very fast and in my
opinion, Hikari combined with "com.mysql.jdbc.Driver" would solve the
licensing problem described by
https://issues.apache.org/jira/browse/FINCN-26 as well.

Some minor bugs in documentation that caught my attention:

1. This page http://fineract.apache.org/ says
"To subscribe, send a blank email to user-subscribe@fineract.apache.org"
I got a response back:
Fineract user list is closed. Please see dev.at.fineract list instead

2. https://cwiki.apache.org/confluence/display/FINERACT/Fineract+Home
Says: "On Jira tickets, please see the label CN.  "
This made me search for issues in project
https://issues.apache.org/jira/projects/FINERACT/ (with labels=CN) but some
time later I found out that correct Jira project link for Fineract CN is
actually:
https://issues.apache.org/jira/projects/FINCN

Thank you for your attention and I hope to become a contributor soon.

Kind regards
Juhan Aasaru

Re: Fineract CN observations from a newcomer

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

First off, welcome! and thank you for taking the time to introduce yourself
to the community and share your valuable contributions to improving the
documentation. I will let the developers respond to the questions and
inquiries you made about specific libraries.

I have given you the permissions to edit pages so please make the suggested
changes you've identified to the actual documentation.

Thanks and look forward to many more contributions.

Cheers,

Ed Cable

On Wed, Dec 19, 2018 at 10:39 AM Juhan Aasaru <aa...@gmail.com> wrote:

> Hi, community!
>
> I discovered Fineract CN project just recently and found it very
> interesting and ambitious and it raised a great interest in me. I went
> through all the documentation and materials I could find. I thought I share
> my first impressions and ideas on how I think the project could be further
> improved and highlight some minor issues that I found.
>
> 1. Fineract CN is targeted to a wider audience than its predecessors so in
> my opinion, Fineract CN materials and discussions should be separated from
> the Fineract project as it causes confusion and noise. I see that there is
> a separate Jira project created for Fineract CN but not yet a separate
> Confluence space nor separate developers list. Fineract CN materials are
> mostly grouped under "Fineract CN" but there is also some material found
> elsewhere (for example Fineract User Zone -> Apache Fineract CN Users
> Guide).
>
> 2. I had some comments about Confluence pages. First I thought to register
> myself as a Confluence user but after that, I still didn't have any
> permissions to add comments to pages. So I thought I write them here for
> now.
>
> 2.1. Comments on "How to build Apache Fineract CN
> <
> https://cwiki.apache.org/confluence/display/FINERACT/How+To+Build+Apache+Fineract+CN
> >
> "
>
> The wiki page has a lot of info and organizing it into logical steps would
> help a newcomer out and it wouldn't hurt to add a few lines explaining why
> some step is done and also add a link to demo_server Readme.md
>
> Luckily wiki page has all the info in there and so eventually I managed to
> get the app running in my local environment (Mac). For some reason, I
> couldn't get Cassandra working but I managed to solve this by running
> Cassandra from a Docker image instead:
> docker run -p9042:9042 -p7199:7199 cassandra:3.11
> This brought me to an idea that a docker-compose.yml could be set up to
> create an environment with all the running services (you can google "docker
> compose npm local" for more info). I know it adds overhead (won't probably
> work well on slow computers) but it would speed up getting the demo server
> running locally.
>
> All FN projects have Gradle wrapper in use so I don't see why there is a
> need to install Gradle (Mac users are suggested to install Maven as
> well). Also, I didn't get why there is a need for Nginx. Creating a fork of
> all the Fineract CN Github repositories could be an optional step - one
> could just clone the repos directly and switch to a fork only if he
> actually plans contributing.
>
> 2.2. Comments on "Importing Fineract CN Microservices Into IntelliJ
> <
> https://cwiki.apache.org/confluence/display/FINERACT/Importing+Fineract+CN+Microservices+Into+IntelliJ
> >
> "
>
> I think it would be good to suggest also importing modules under
> "integration-tests/*" into IntelliJ IDEA
>
> 3. I was surprised to see that Fineract CN is based on Spring Boot 1. I
> didn't find from anywhere in the roadmap about any plans to migrating on
> Spring Boot 2. I think that at this stage it would be wise to stay up to
> date with the base framework.
>
> Spring Boot 2 comes with Hikari Connection Pool that is very fast and in my
> opinion, Hikari combined with "com.mysql.jdbc.Driver" would solve the
> licensing problem described by
> https://issues.apache.org/jira/browse/FINCN-26 as well.
>
> Some minor bugs in documentation that caught my attention:
>
> 1. This page http://fineract.apache.org/ says
> "To subscribe, send a blank email to user-subscribe@fineract.apache.org"
> I got a response back:
> Fineract user list is closed. Please see dev.at.fineract list instead
>
> 2. https://cwiki.apache.org/confluence/display/FINERACT/Fineract+Home
> Says: "On Jira tickets, please see the label CN.  "
> This made me search for issues in project
> https://issues.apache.org/jira/projects/FINERACT/ (with labels=CN) but
> some
> time later I found out that correct Jira project link for Fineract CN is
> actually:
> https://issues.apache.org/jira/projects/FINCN
>
> Thank you for your attention and I hope to become a contributor soon.
>
> Kind regards
> Juhan Aasaru
>


-- 
*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 observations from a newcomer

Posted by Isaac Kamga <is...@mifos.org>.
Hello Juhan and Awasum,

Thank you very much for the feedback.

Juhan, thanks once more for testing...I would have liked us to test
demo-server with *provision=true, persistent=true AND lite=true too* given
that the PoC I put out there was just for the minimal set of services.

Awasum, Yes, I do have more details which I'll be sharing soon.

P/S, you both replied to a discussion on a completely different thread.
Maybe be head back to the right thread and continue there ;-) .

At Your Service,
Isaac Kamga.

On Fri, May 3, 2019 at 12:48 PM Awasum Yannick <aw...@apache.org> wrote:

> Hi Juhan,
>
> Thanks for verifying. What could be the problem?
>
> Isaac, do you have more details?
>
> On Fri, May 3, 2019 at 12:01 PM Juhan Aasaru <aa...@gmail.com> wrote:
>
>> Hi!
>>
>> good point, Awasum.
>> it seems database "playground" is created but inside it there are no
>> tables created.
>>
>> Juhan
>>
>> Kontakt Awasum Yannick (<aw...@apache.org>) kirjutas kuupäeval R, 3.
>> mai 2019 kell 12:50:
>>
>>> Thanks very much Juhan for the thorough QA and Dev work.
>>>
>>> I learnt alot.
>>>
>>> Is the playground postgres DB been created and used?
>>>
>>> On Fri, May 3, 2019 at 9:18 AM Juhan Aasaru <aa...@gmail.com> wrote:
>>>
>>>> Hi Isaac,
>>>>
>>>> Sorry abou the delay in my response. I did test out your code now and
>>>> found some issues.
>>>>
>>>> Here is what I did:
>>>> I pulled the newest code from your forks.
>>>> I'm running PostgreSQL and Cassandra inside Docker, so I cleaned the
>>>> containers to loose any previous state.
>>>>
>>>> Then I ran:
>>>>
>>>> java -Ddemoserver.persistent=true -Ddemoserver.provision=true
>>>> -Dcustom.cassandra.contactPoints=127.0.0.1:9042
>>>> -Dcassandra.cluster.user=cassandra -Dcassandra.cluster.pwd=password
>>>> -Ddemoserver.lite=true -jar demo-server-0.1.0-BUILD-SNAPSHOT.jar
>>>>
>>>> In the logs I see that the migrations to database get applied without
>>>> errors and the applications get started.
>>>> There was however an error by Provisioner that database "seshat" didn't
>>>> exist but it seems that the service
>>>> managed to recover fromt his and create the database itself. Or should
>>>> I have created database "seshat" myself?
>>>>
>>>> Then I started fims-web-app and I managed to log in.
>>>> What I didn't manage to do was to create an headquarter office
>>>>
>>>> I filled in the details in fims-web-app and from developer console
>>>> under Networking I see
>>>> that the request is sent to http://localhost:4200/api/office/v1/offices
>>>> and it gets 202 (Accepted) as response:
>>>> Payload:
>>>> { "identifier": "OF123", "name": "Office name", "description": null,
>>>> "address": { "street": "Street", "city": "City", "postalCode": "",
>>>> "region": null } }
>>>>
>>>> But when the app makes a request:
>>>>
>>>> http://localhost:4200/api/office/v1/offices/OF123
>>>> it gets 404 (not found).
>>>>
>>>> In the logs I see:
>>>>
>>>> 10:06:11.670 [async-processor-4] WARN
>>>> o.h.e.jdbc.spi.SqlExceptionHelper - SQL Error: 0, SQLState: 23502
>>>> 10:06:11.671 [async-processor-4] ERROR
>>>> o.h.e.jdbc.spi.SqlExceptionHelper - ERROR: null value in column "id"
>>>> violates not-null constraint
>>>>   Detail: Failing row contains (null, null, OF123, Office name, null,
>>>> operator, 2019-05-03 10:06:11.663, null, null).
>>>>
>>>> If I compare the new Postgre DB scripts with old MariaDB scripts then I
>>>> see that in MariaDB/MySQL the ID fields are AUTO_INCREMENT:
>>>>
>>>>   id               BIGINT        NOT NULL AUTO_INCREMENT,
>>>>
>>>> but in your postgresql flyway *.sql scripts you don't create any
>>>> sequences and you don't use serial type. You have just:
>>>>
>>>> id BIGINT NOT NULL,
>>>>
>>>> So there is nothing to create ID-s for new records. So I changed in
>>>> fineract-cn-office/*.sql files all "id BIGINT NOT NULL" into:
>>>>
>>>> id SERIAL,
>>>>
>>>> this is basically Postgres version of AUTO_INCREMENT (and you don't
>>>> have to specify data type), you can read more abut it here:
>>>> http://www.postgresqltutorial.com/postgresql-serial/
>>>> Now I cleaned Posgre database, rebuilt fineract-cn-office and restarted
>>>> the server and then I managed to create offices
>>>> in fims-web-app.
>>>>
>>>> So what you need to do is everywhere where there was AUTO_INCREMENT in
>>>> *.sql files you need to use SERIAL.
>>>>
>>>> So almost there! Please let me know if you have gone over all the *sql
>>>> files and I will test again.
>>>>
>>>> Kind regards
>>>> Juhan
>>>>
>>>> Kontakt Isaac Kamga (<is...@mifos.org>) kirjutas kuupäeval N,
>>>> 27. detsember 2018 kell 03:26:
>>>>
>>>>> Hey Juhan,
>>>>>
>>>>> Yes, I've been following the updates to the How-To-Build page.
>>>>>
>>>>> I'm happy the clarification was helpful and you've improved Step 3. I
>>>>> also
>>>>> updated the demo-server and service-starter repositories to enable the
>>>>> Fineract CN build happen in less time. Kindly update your respective
>>>>> repositories and build once more to provide more feedback.
>>>>>
>>>>> Keep up the good work.
>>>>>
>>>>> Cheers,
>>>>> Isaac Kamga.
>>>>>
>>>>> On Wed, Dec 26, 2018 at 11:14 PM Juhan Aasaru <aa...@gmail.com>
>>>>> wrote:
>>>>>
>>>>> > Thanks, Isaac for clearing up the confusion.
>>>>> > Based on your explanations I also restructured Step 3 to make it
>>>>> easier to
>>>>> > follow.
>>>>> > Please review if you have a moment.
>>>>> >
>>>>> > Kind regards
>>>>> > Juhan Aasaru
>>>>> >
>>>>>
>>>>

Re: Fineract CN observations from a newcomer

Posted by Awasum Yannick <aw...@apache.org>.
Hi Juhan,

Thanks for verifying. What could be the problem?

Isaac, do you have more details?

On Fri, May 3, 2019 at 12:01 PM Juhan Aasaru <aa...@gmail.com> wrote:

> Hi!
>
> good point, Awasum.
> it seems database "playground" is created but inside it there are no
> tables created.
>
> Juhan
>
> Kontakt Awasum Yannick (<aw...@apache.org>) kirjutas kuupäeval R, 3. mai
> 2019 kell 12:50:
>
>> Thanks very much Juhan for the thorough QA and Dev work.
>>
>> I learnt alot.
>>
>> Is the playground postgres DB been created and used?
>>
>> On Fri, May 3, 2019 at 9:18 AM Juhan Aasaru <aa...@gmail.com> wrote:
>>
>>> Hi Isaac,
>>>
>>> Sorry abou the delay in my response. I did test out your code now and
>>> found some issues.
>>>
>>> Here is what I did:
>>> I pulled the newest code from your forks.
>>> I'm running PostgreSQL and Cassandra inside Docker, so I cleaned the
>>> containers to loose any previous state.
>>>
>>> Then I ran:
>>>
>>> java -Ddemoserver.persistent=true -Ddemoserver.provision=true
>>> -Dcustom.cassandra.contactPoints=127.0.0.1:9042
>>> -Dcassandra.cluster.user=cassandra -Dcassandra.cluster.pwd=password
>>> -Ddemoserver.lite=true -jar demo-server-0.1.0-BUILD-SNAPSHOT.jar
>>>
>>> In the logs I see that the migrations to database get applied without
>>> errors and the applications get started.
>>> There was however an error by Provisioner that database "seshat" didn't
>>> exist but it seems that the service
>>> managed to recover fromt his and create the database itself. Or should I
>>> have created database "seshat" myself?
>>>
>>> Then I started fims-web-app and I managed to log in.
>>> What I didn't manage to do was to create an headquarter office
>>>
>>> I filled in the details in fims-web-app and from developer console under
>>> Networking I see
>>> that the request is sent to http://localhost:4200/api/office/v1/offices
>>> and it gets 202 (Accepted) as response:
>>> Payload:
>>> { "identifier": "OF123", "name": "Office name", "description": null,
>>> "address": { "street": "Street", "city": "City", "postalCode": "",
>>> "region": null } }
>>>
>>> But when the app makes a request:
>>>
>>> http://localhost:4200/api/office/v1/offices/OF123
>>> it gets 404 (not found).
>>>
>>> In the logs I see:
>>>
>>> 10:06:11.670 [async-processor-4] WARN  o.h.e.jdbc.spi.SqlExceptionHelper
>>> - SQL Error: 0, SQLState: 23502
>>> 10:06:11.671 [async-processor-4] ERROR o.h.e.jdbc.spi.SqlExceptionHelper
>>> - ERROR: null value in column "id" violates not-null constraint
>>>   Detail: Failing row contains (null, null, OF123, Office name, null,
>>> operator, 2019-05-03 10:06:11.663, null, null).
>>>
>>> If I compare the new Postgre DB scripts with old MariaDB scripts then I
>>> see that in MariaDB/MySQL the ID fields are AUTO_INCREMENT:
>>>
>>>   id               BIGINT        NOT NULL AUTO_INCREMENT,
>>>
>>> but in your postgresql flyway *.sql scripts you don't create any
>>> sequences and you don't use serial type. You have just:
>>>
>>> id BIGINT NOT NULL,
>>>
>>> So there is nothing to create ID-s for new records. So I changed in
>>> fineract-cn-office/*.sql files all "id BIGINT NOT NULL" into:
>>>
>>> id SERIAL,
>>>
>>> this is basically Postgres version of AUTO_INCREMENT (and you don't have
>>> to specify data type), you can read more abut it here:
>>> http://www.postgresqltutorial.com/postgresql-serial/
>>> Now I cleaned Posgre database, rebuilt fineract-cn-office and restarted
>>> the server and then I managed to create offices
>>> in fims-web-app.
>>>
>>> So what you need to do is everywhere where there was AUTO_INCREMENT in
>>> *.sql files you need to use SERIAL.
>>>
>>> So almost there! Please let me know if you have gone over all the *sql
>>> files and I will test again.
>>>
>>> Kind regards
>>> Juhan
>>>
>>> Kontakt Isaac Kamga (<is...@mifos.org>) kirjutas kuupäeval N, 27.
>>> detsember 2018 kell 03:26:
>>>
>>>> Hey Juhan,
>>>>
>>>> Yes, I've been following the updates to the How-To-Build page.
>>>>
>>>> I'm happy the clarification was helpful and you've improved Step 3. I
>>>> also
>>>> updated the demo-server and service-starter repositories to enable the
>>>> Fineract CN build happen in less time. Kindly update your respective
>>>> repositories and build once more to provide more feedback.
>>>>
>>>> Keep up the good work.
>>>>
>>>> Cheers,
>>>> Isaac Kamga.
>>>>
>>>> On Wed, Dec 26, 2018 at 11:14 PM Juhan Aasaru <aa...@gmail.com> wrote:
>>>>
>>>> > Thanks, Isaac for clearing up the confusion.
>>>> > Based on your explanations I also restructured Step 3 to make it
>>>> easier to
>>>> > follow.
>>>> > Please review if you have a moment.
>>>> >
>>>> > Kind regards
>>>> > Juhan Aasaru
>>>> >
>>>>
>>>

Re: Fineract CN observations from a newcomer

Posted by Juhan Aasaru <aa...@gmail.com>.
Hi!

good point, Awasum.
it seems database "playground" is created but inside it there are no tables
created.

Juhan

Kontakt Awasum Yannick (<aw...@apache.org>) kirjutas kuupäeval R, 3. mai
2019 kell 12:50:

> Thanks very much Juhan for the thorough QA and Dev work.
>
> I learnt alot.
>
> Is the playground postgres DB been created and used?
>
> On Fri, May 3, 2019 at 9:18 AM Juhan Aasaru <aa...@gmail.com> wrote:
>
>> Hi Isaac,
>>
>> Sorry abou the delay in my response. I did test out your code now and
>> found some issues.
>>
>> Here is what I did:
>> I pulled the newest code from your forks.
>> I'm running PostgreSQL and Cassandra inside Docker, so I cleaned the
>> containers to loose any previous state.
>>
>> Then I ran:
>>
>> java -Ddemoserver.persistent=true -Ddemoserver.provision=true
>> -Dcustom.cassandra.contactPoints=127.0.0.1:9042
>> -Dcassandra.cluster.user=cassandra -Dcassandra.cluster.pwd=password
>> -Ddemoserver.lite=true -jar demo-server-0.1.0-BUILD-SNAPSHOT.jar
>>
>> In the logs I see that the migrations to database get applied without
>> errors and the applications get started.
>> There was however an error by Provisioner that database "seshat" didn't
>> exist but it seems that the service
>> managed to recover fromt his and create the database itself. Or should I
>> have created database "seshat" myself?
>>
>> Then I started fims-web-app and I managed to log in.
>> What I didn't manage to do was to create an headquarter office
>>
>> I filled in the details in fims-web-app and from developer console under
>> Networking I see
>> that the request is sent to http://localhost:4200/api/office/v1/offices
>> and it gets 202 (Accepted) as response:
>> Payload:
>> { "identifier": "OF123", "name": "Office name", "description": null,
>> "address": { "street": "Street", "city": "City", "postalCode": "",
>> "region": null } }
>>
>> But when the app makes a request:
>>
>> http://localhost:4200/api/office/v1/offices/OF123
>> it gets 404 (not found).
>>
>> In the logs I see:
>>
>> 10:06:11.670 [async-processor-4] WARN  o.h.e.jdbc.spi.SqlExceptionHelper
>> - SQL Error: 0, SQLState: 23502
>> 10:06:11.671 [async-processor-4] ERROR o.h.e.jdbc.spi.SqlExceptionHelper
>> - ERROR: null value in column "id" violates not-null constraint
>>   Detail: Failing row contains (null, null, OF123, Office name, null,
>> operator, 2019-05-03 10:06:11.663, null, null).
>>
>> If I compare the new Postgre DB scripts with old MariaDB scripts then I
>> see that in MariaDB/MySQL the ID fields are AUTO_INCREMENT:
>>
>>   id               BIGINT        NOT NULL AUTO_INCREMENT,
>>
>> but in your postgresql flyway *.sql scripts you don't create any
>> sequences and you don't use serial type. You have just:
>>
>> id BIGINT NOT NULL,
>>
>> So there is nothing to create ID-s for new records. So I changed in
>> fineract-cn-office/*.sql files all "id BIGINT NOT NULL" into:
>>
>> id SERIAL,
>>
>> this is basically Postgres version of AUTO_INCREMENT (and you don't have
>> to specify data type), you can read more abut it here:
>> http://www.postgresqltutorial.com/postgresql-serial/
>> Now I cleaned Posgre database, rebuilt fineract-cn-office and restarted
>> the server and then I managed to create offices
>> in fims-web-app.
>>
>> So what you need to do is everywhere where there was AUTO_INCREMENT in
>> *.sql files you need to use SERIAL.
>>
>> So almost there! Please let me know if you have gone over all the *sql
>> files and I will test again.
>>
>> Kind regards
>> Juhan
>>
>> Kontakt Isaac Kamga (<is...@mifos.org>) kirjutas kuupäeval N, 27.
>> detsember 2018 kell 03:26:
>>
>>> Hey Juhan,
>>>
>>> Yes, I've been following the updates to the How-To-Build page.
>>>
>>> I'm happy the clarification was helpful and you've improved Step 3. I
>>> also
>>> updated the demo-server and service-starter repositories to enable the
>>> Fineract CN build happen in less time. Kindly update your respective
>>> repositories and build once more to provide more feedback.
>>>
>>> Keep up the good work.
>>>
>>> Cheers,
>>> Isaac Kamga.
>>>
>>> On Wed, Dec 26, 2018 at 11:14 PM Juhan Aasaru <aa...@gmail.com> wrote:
>>>
>>> > Thanks, Isaac for clearing up the confusion.
>>> > Based on your explanations I also restructured Step 3 to make it
>>> easier to
>>> > follow.
>>> > Please review if you have a moment.
>>> >
>>> > Kind regards
>>> > Juhan Aasaru
>>> >
>>>
>>

Re: Fineract CN observations from a newcomer

Posted by Awasum Yannick <aw...@apache.org>.
Thanks very much Juhan for the thorough QA and Dev work.

I learnt alot.

Is the playground postgres DB been created and used?

On Fri, May 3, 2019 at 9:18 AM Juhan Aasaru <aa...@gmail.com> wrote:

> Hi Isaac,
>
> Sorry abou the delay in my response. I did test out your code now and
> found some issues.
>
> Here is what I did:
> I pulled the newest code from your forks.
> I'm running PostgreSQL and Cassandra inside Docker, so I cleaned the
> containers to loose any previous state.
>
> Then I ran:
>
> java -Ddemoserver.persistent=true -Ddemoserver.provision=true
> -Dcustom.cassandra.contactPoints=127.0.0.1:9042
> -Dcassandra.cluster.user=cassandra -Dcassandra.cluster.pwd=password
> -Ddemoserver.lite=true -jar demo-server-0.1.0-BUILD-SNAPSHOT.jar
>
> In the logs I see that the migrations to database get applied without
> errors and the applications get started.
> There was however an error by Provisioner that database "seshat" didn't
> exist but it seems that the service
> managed to recover fromt his and create the database itself. Or should I
> have created database "seshat" myself?
>
> Then I started fims-web-app and I managed to log in.
> What I didn't manage to do was to create an headquarter office
>
> I filled in the details in fims-web-app and from developer console under
> Networking I see
> that the request is sent to http://localhost:4200/api/office/v1/offices
> and it gets 202 (Accepted) as response:
> Payload:
> { "identifier": "OF123", "name": "Office name", "description": null,
> "address": { "street": "Street", "city": "City", "postalCode": "",
> "region": null } }
>
> But when the app makes a request:
>
> http://localhost:4200/api/office/v1/offices/OF123
> it gets 404 (not found).
>
> In the logs I see:
>
> 10:06:11.670 [async-processor-4] WARN  o.h.e.jdbc.spi.SqlExceptionHelper -
> SQL Error: 0, SQLState: 23502
> 10:06:11.671 [async-processor-4] ERROR o.h.e.jdbc.spi.SqlExceptionHelper -
> ERROR: null value in column "id" violates not-null constraint
>   Detail: Failing row contains (null, null, OF123, Office name, null,
> operator, 2019-05-03 10:06:11.663, null, null).
>
> If I compare the new Postgre DB scripts with old MariaDB scripts then I
> see that in MariaDB/MySQL the ID fields are AUTO_INCREMENT:
>
>   id               BIGINT        NOT NULL AUTO_INCREMENT,
>
> but in your postgresql flyway *.sql scripts you don't create any sequences
> and you don't use serial type. You have just:
>
> id BIGINT NOT NULL,
>
> So there is nothing to create ID-s for new records. So I changed in
> fineract-cn-office/*.sql files all "id BIGINT NOT NULL" into:
>
> id SERIAL,
>
> this is basically Postgres version of AUTO_INCREMENT (and you don't have
> to specify data type), you can read more abut it here:
> http://www.postgresqltutorial.com/postgresql-serial/
> Now I cleaned Posgre database, rebuilt fineract-cn-office and restarted
> the server and then I managed to create offices
> in fims-web-app.
>
> So what you need to do is everywhere where there was AUTO_INCREMENT in
> *.sql files you need to use SERIAL.
>
> So almost there! Please let me know if you have gone over all the *sql
> files and I will test again.
>
> Kind regards
> Juhan
>
> Kontakt Isaac Kamga (<is...@mifos.org>) kirjutas kuupäeval N, 27.
> detsember 2018 kell 03:26:
>
>> Hey Juhan,
>>
>> Yes, I've been following the updates to the How-To-Build page.
>>
>> I'm happy the clarification was helpful and you've improved Step 3. I also
>> updated the demo-server and service-starter repositories to enable the
>> Fineract CN build happen in less time. Kindly update your respective
>> repositories and build once more to provide more feedback.
>>
>> Keep up the good work.
>>
>> Cheers,
>> Isaac Kamga.
>>
>> On Wed, Dec 26, 2018 at 11:14 PM Juhan Aasaru <aa...@gmail.com> wrote:
>>
>> > Thanks, Isaac for clearing up the confusion.
>> > Based on your explanations I also restructured Step 3 to make it easier
>> to
>> > follow.
>> > Please review if you have a moment.
>> >
>> > Kind regards
>> > Juhan Aasaru
>> >
>>
>

Re: Fineract CN observations from a newcomer

Posted by Juhan Aasaru <aa...@gmail.com>.
Hi Isaac,

Sorry abou the delay in my response. I did test out your code now and found
some issues.

Here is what I did:
I pulled the newest code from your forks.
I'm running PostgreSQL and Cassandra inside Docker, so I cleaned the
containers to loose any previous state.

Then I ran:

java -Ddemoserver.persistent=true -Ddemoserver.provision=true
-Dcustom.cassandra.contactPoints=127.0.0.1:9042
-Dcassandra.cluster.user=cassandra -Dcassandra.cluster.pwd=password
-Ddemoserver.lite=true -jar demo-server-0.1.0-BUILD-SNAPSHOT.jar

In the logs I see that the migrations to database get applied without
errors and the applications get started.
There was however an error by Provisioner that database "seshat" didn't
exist but it seems that the service
managed to recover fromt his and create the database itself. Or should I
have created database "seshat" myself?

Then I started fims-web-app and I managed to log in.
What I didn't manage to do was to create an headquarter office

I filled in the details in fims-web-app and from developer console under
Networking I see
that the request is sent to http://localhost:4200/api/office/v1/offices and
it gets 202 (Accepted) as response:
Payload:
{ "identifier": "OF123", "name": "Office name", "description": null,
"address": { "street": "Street", "city": "City", "postalCode": "",
"region": null } }

But when the app makes a request:

http://localhost:4200/api/office/v1/offices/OF123
it gets 404 (not found).

In the logs I see:

10:06:11.670 [async-processor-4] WARN  o.h.e.jdbc.spi.SqlExceptionHelper -
SQL Error: 0, SQLState: 23502
10:06:11.671 [async-processor-4] ERROR o.h.e.jdbc.spi.SqlExceptionHelper -
ERROR: null value in column "id" violates not-null constraint
  Detail: Failing row contains (null, null, OF123, Office name, null,
operator, 2019-05-03 10:06:11.663, null, null).

If I compare the new Postgre DB scripts with old MariaDB scripts then I see
that in MariaDB/MySQL the ID fields are AUTO_INCREMENT:

  id               BIGINT        NOT NULL AUTO_INCREMENT,

but in your postgresql flyway *.sql scripts you don't create any sequences
and you don't use serial type. You have just:

id BIGINT NOT NULL,

So there is nothing to create ID-s for new records. So I changed in
fineract-cn-office/*.sql files all "id BIGINT NOT NULL" into:

id SERIAL,

this is basically Postgres version of AUTO_INCREMENT (and you don't have to
specify data type), you can read more abut it here:
http://www.postgresqltutorial.com/postgresql-serial/
Now I cleaned Posgre database, rebuilt fineract-cn-office and restarted the
server and then I managed to create offices
in fims-web-app.

So what you need to do is everywhere where there was AUTO_INCREMENT in
*.sql files you need to use SERIAL.

So almost there! Please let me know if you have gone over all the *sql
files and I will test again.

Kind regards
Juhan

Kontakt Isaac Kamga (<is...@mifos.org>) kirjutas kuupäeval N, 27.
detsember 2018 kell 03:26:

> Hey Juhan,
>
> Yes, I've been following the updates to the How-To-Build page.
>
> I'm happy the clarification was helpful and you've improved Step 3. I also
> updated the demo-server and service-starter repositories to enable the
> Fineract CN build happen in less time. Kindly update your respective
> repositories and build once more to provide more feedback.
>
> Keep up the good work.
>
> Cheers,
> Isaac Kamga.
>
> On Wed, Dec 26, 2018 at 11:14 PM Juhan Aasaru <aa...@gmail.com> wrote:
>
> > Thanks, Isaac for clearing up the confusion.
> > Based on your explanations I also restructured Step 3 to make it easier
> to
> > follow.
> > Please review if you have a moment.
> >
> > Kind regards
> > Juhan Aasaru
> >
>

Re: Fineract CN observations from a newcomer

Posted by Isaac Kamga <is...@mifos.org>.
Hey Juhan,

Yes, I've been following the updates to the How-To-Build page.

I'm happy the clarification was helpful and you've improved Step 3. I also
updated the demo-server and service-starter repositories to enable the
Fineract CN build happen in less time. Kindly update your respective
repositories and build once more to provide more feedback.

Keep up the good work.

Cheers,
Isaac Kamga.

On Wed, Dec 26, 2018 at 11:14 PM Juhan Aasaru <aa...@gmail.com> wrote:

> Thanks, Isaac for clearing up the confusion.
> Based on your explanations I also restructured Step 3 to make it easier to
> follow.
> Please review if you have a moment.
>
> Kind regards
> Juhan Aasaru
>

Re: Fineract CN observations from a newcomer

Posted by Juhan Aasaru <aa...@gmail.com>.
Thanks, Isaac for clearing up the confusion.
Based on your explanations I also restructured Step 3 to make it easier to
follow.
Please review if you have a moment.

Kind regards
Juhan Aasaru

Re: Fineract CN observations from a newcomer

Posted by Isaac Kamga <is...@mifos.org>.
Hello Juhan,

Thank you for the taking time to edit those wiki pages. That was very
helpful and fast.

Besides the updates to the *Importing Microservices in IntelliJ* wiki page,
I think tabulating Step 1 of the *How-To-Build* wiki page and allowing
developers to choose when to fork the Apache repositories in Step 2 is a
good approach.

Let me attempt to answer your questions:

1. You have to ensure that Cassandra and MySQL/MariaDB are services running
locally only when Option B is used. This is because by adding option
`-Ddemoserver.persistent=true` (which Option B is all about) indicates that
you have chosen to have persistence happen locally.
2 -> 4. When running Option A, you're using the microservice datastores
which are fineract-cn-cassandra and fineract-cn-mariadb. Just make mysql
service inactive or free port 3306 if mysql service is active (similar to
cassandra and 9042). When you choose `-Ddemoserver.provision=true` whether
Option A or Option B i.), you're choosing to create the playground and
seshat databases in Cassandra and MySQL. You're right, I also see
fineract-cn-cassandra and fineract-cn-mariadb as middlemen.

Keep up the good work.

Seasons greetings,
Isaac Kamga.


On Fri, Dec 21, 2018 at 10:42 AM Juhan Aasaru <aa...@gmail.com> wrote:

> Hi!
>
> Thanks for the edit privileges, Ed and Isaac.
> I now made changes to both wiki pages.
>
> In "How to build Fineract CN"
>
> https://cwiki.apache.org/confluence/display/FINERACT/How+To+Build+Apache+Fineract+CN
> I restructured step 1 into a table for better readability across Linux/Mac.
> I hope one day someone with Windows adds a separate column for Windows
> specific instructions.
>
> I made forking all the libraries optional in step 2. If someone comes back
> with why the forking is needed
> then I'm happy to remove the option that suggests directly cloning apache
> repositories.
>
> I still have trouble understanding Step 3 so I couldn't do anything there
> now.
> Is there anyone who could please explain to me how this works.
> I tried to formalize my confusion into concrete questions:
>
> 1. Do I have to run Cassandra and MySQL/MariaDB locally for both options -
> A and B described under step 3?
> 2. Is running fineract-cn-cassandra and fineract-cn-mariadb optional (when
> choosing option B)?
> 3. If one chooses Option A and runs fineract-cn-cassandra and
> fineract-cn-mariadb microservices then what is the value added by these
> services?
> Are these services like middlemen between the actual database?
> 4. How do the ports work when one decides to run fineract-cn-cassandra.
> Locally installed Cassandra listens port 9042, fineract-cn-cassandra
> connects to that but what port does it serve?
>
> Thanks!
> Juhan Aasaru
>
>
> Kontakt Isaac Kamga (<is...@mifos.org>) kirjutas kuupäeval N, 20.
> detsember 2018 kell 03:07:
>
> > Hello Juhan,
> >
> > Thank you for taking the time to email your suggestions. I wrote some
> > of the pages you referred to and personally appreciate your feedback.
> >
> > Please be aware that this is open source space and your suggestions
> > are ALWAYS WELCOME. So kindly use the privileges granted your
> > confluence account by Ed to edit your ideas into the said pages. If
> > you don't receive any objections to your suggestions within a week, I
> > think it generally means it's a go ahead as it doesn't break anything
> > for anybody.
> >
> > Thanks once again and I look forward to working with you.
> >
> > Seasons greetings,
> > Isaac Kamga.
> >
> > On Wed, Dec 19, 2018 at 7:39 PM Juhan Aasaru <aa...@gmail.com> wrote:
> > >
> > > Hi, community!
> > >
> > > I discovered Fineract CN project just recently and found it very
> > > interesting and ambitious and it raised a great interest in me. I went
> > > through all the documentation and materials I could find. I thought I
> > share
> > > my first impressions and ideas on how I think the project could be
> > further
> > > improved and highlight some minor issues that I found.
> > >
> > > 1. Fineract CN is targeted to a wider audience than its predecessors so
> > in
> > > my opinion, Fineract CN materials and discussions should be separated
> > from
> > > the Fineract project as it causes confusion and noise. I see that there
> > is
> > > a separate Jira project created for Fineract CN but not yet a separate
> > > Confluence space nor separate developers list. Fineract CN materials
> are
> > > mostly grouped under "Fineract CN" but there is also some material
> found
> > > elsewhere (for example Fineract User Zone -> Apache Fineract CN Users
> > > Guide).
> > >
> > > 2. I had some comments about Confluence pages. First I thought to
> > register
> > > myself as a Confluence user but after that, I still didn't have any
> > > permissions to add comments to pages. So I thought I write them here
> for
> > > now.
> > >
> > > 2.1. Comments on "How to build Apache Fineract CN
> > > <
> >
> https://cwiki.apache.org/confluence/display/FINERACT/How+To+Build+Apache+Fineract+CN
> > >
> > > "
> > >
> > > The wiki page has a lot of info and organizing it into logical steps
> > would
> > > help a newcomer out and it wouldn't hurt to add a few lines explaining
> > why
> > > some step is done and also add a link to demo_server Readme.md
> > >
> > > Luckily wiki page has all the info in there and so eventually I managed
> > to
> > > get the app running in my local environment (Mac). For some reason, I
> > > couldn't get Cassandra working but I managed to solve this by running
> > > Cassandra from a Docker image instead:
> > > docker run -p9042:9042 -p7199:7199 cassandra:3.11
> > > This brought me to an idea that a docker-compose.yml could be set up to
> > > create an environment with all the running services (you can google
> > "docker
> > > compose npm local" for more info). I know it adds overhead (won't
> > probably
> > > work well on slow computers) but it would speed up getting the demo
> > server
> > > running locally.
> > >
> > > All FN projects have Gradle wrapper in use so I don't see why there is
> a
> > > need to install Gradle (Mac users are suggested to install Maven as
> > > well). Also, I didn't get why there is a need for Nginx. Creating a
> fork
> > of
> > > all the Fineract CN Github repositories could be an optional step - one
> > > could just clone the repos directly and switch to a fork only if he
> > > actually plans contributing.
> > >
> > > 2.2. Comments on "Importing Fineract CN Microservices Into IntelliJ
> > > <
> >
> https://cwiki.apache.org/confluence/display/FINERACT/Importing+Fineract+CN+Microservices+Into+IntelliJ
> > >
> > > "
> > >
> > > I think it would be good to suggest also importing modules under
> > > "integration-tests/*" into IntelliJ IDEA
> > >
> > > 3. I was surprised to see that Fineract CN is based on Spring Boot 1. I
> > > didn't find from anywhere in the roadmap about any plans to migrating
> on
> > > Spring Boot 2. I think that at this stage it would be wise to stay up
> to
> > > date with the base framework.
> > >
> > > Spring Boot 2 comes with Hikari Connection Pool that is very fast and
> in
> > my
> > > opinion, Hikari combined with "com.mysql.jdbc.Driver" would solve the
> > > licensing problem described by
> > > https://issues.apache.org/jira/browse/FINCN-26 as well.
> > >
> > > Some minor bugs in documentation that caught my attention:
> > >
> > > 1. This page http://fineract.apache.org/ says
> > > "To subscribe, send a blank email to
> user-subscribe@fineract.apache.org"
> > > I got a response back:
> > > Fineract user list is closed. Please see dev.at.fineract list instead
> > >
> > > 2. https://cwiki.apache.org/confluence/display/FINERACT/Fineract+Home
> > > Says: "On Jira tickets, please see the label CN.  "
> > > This made me search for issues in project
> > > https://issues.apache.org/jira/projects/FINERACT/ (with labels=CN) but
> > some
> > > time later I found out that correct Jira project link for Fineract CN
> is
> > > actually:
> > > https://issues.apache.org/jira/projects/FINCN
> > >
> > > Thank you for your attention and I hope to become a contributor soon.
> > >
> > > Kind regards
> > > Juhan Aasaru
> >
>

Re: Fineract CN observations from a newcomer

Posted by Juhan Aasaru <aa...@gmail.com>.
Hi!

Thanks for the edit privileges, Ed and Isaac.
I now made changes to both wiki pages.

In "How to build Fineract CN"
https://cwiki.apache.org/confluence/display/FINERACT/How+To+Build+Apache+Fineract+CN
I restructured step 1 into a table for better readability across Linux/Mac.
I hope one day someone with Windows adds a separate column for Windows
specific instructions.

I made forking all the libraries optional in step 2. If someone comes back
with why the forking is needed
then I'm happy to remove the option that suggests directly cloning apache
repositories.

I still have trouble understanding Step 3 so I couldn't do anything there
now.
Is there anyone who could please explain to me how this works.
I tried to formalize my confusion into concrete questions:

1. Do I have to run Cassandra and MySQL/MariaDB locally for both options -
A and B described under step 3?
2. Is running fineract-cn-cassandra and fineract-cn-mariadb optional (when
choosing option B)?
3. If one chooses Option A and runs fineract-cn-cassandra and
fineract-cn-mariadb microservices then what is the value added by these
services?
Are these services like middlemen between the actual database?
4. How do the ports work when one decides to run fineract-cn-cassandra.
Locally installed Cassandra listens port 9042, fineract-cn-cassandra
connects to that but what port does it serve?

Thanks!
Juhan Aasaru


Kontakt Isaac Kamga (<is...@mifos.org>) kirjutas kuupäeval N, 20.
detsember 2018 kell 03:07:

> Hello Juhan,
>
> Thank you for taking the time to email your suggestions. I wrote some
> of the pages you referred to and personally appreciate your feedback.
>
> Please be aware that this is open source space and your suggestions
> are ALWAYS WELCOME. So kindly use the privileges granted your
> confluence account by Ed to edit your ideas into the said pages. If
> you don't receive any objections to your suggestions within a week, I
> think it generally means it's a go ahead as it doesn't break anything
> for anybody.
>
> Thanks once again and I look forward to working with you.
>
> Seasons greetings,
> Isaac Kamga.
>
> On Wed, Dec 19, 2018 at 7:39 PM Juhan Aasaru <aa...@gmail.com> wrote:
> >
> > Hi, community!
> >
> > I discovered Fineract CN project just recently and found it very
> > interesting and ambitious and it raised a great interest in me. I went
> > through all the documentation and materials I could find. I thought I
> share
> > my first impressions and ideas on how I think the project could be
> further
> > improved and highlight some minor issues that I found.
> >
> > 1. Fineract CN is targeted to a wider audience than its predecessors so
> in
> > my opinion, Fineract CN materials and discussions should be separated
> from
> > the Fineract project as it causes confusion and noise. I see that there
> is
> > a separate Jira project created for Fineract CN but not yet a separate
> > Confluence space nor separate developers list. Fineract CN materials are
> > mostly grouped under "Fineract CN" but there is also some material found
> > elsewhere (for example Fineract User Zone -> Apache Fineract CN Users
> > Guide).
> >
> > 2. I had some comments about Confluence pages. First I thought to
> register
> > myself as a Confluence user but after that, I still didn't have any
> > permissions to add comments to pages. So I thought I write them here for
> > now.
> >
> > 2.1. Comments on "How to build Apache Fineract CN
> > <
> https://cwiki.apache.org/confluence/display/FINERACT/How+To+Build+Apache+Fineract+CN
> >
> > "
> >
> > The wiki page has a lot of info and organizing it into logical steps
> would
> > help a newcomer out and it wouldn't hurt to add a few lines explaining
> why
> > some step is done and also add a link to demo_server Readme.md
> >
> > Luckily wiki page has all the info in there and so eventually I managed
> to
> > get the app running in my local environment (Mac). For some reason, I
> > couldn't get Cassandra working but I managed to solve this by running
> > Cassandra from a Docker image instead:
> > docker run -p9042:9042 -p7199:7199 cassandra:3.11
> > This brought me to an idea that a docker-compose.yml could be set up to
> > create an environment with all the running services (you can google
> "docker
> > compose npm local" for more info). I know it adds overhead (won't
> probably
> > work well on slow computers) but it would speed up getting the demo
> server
> > running locally.
> >
> > All FN projects have Gradle wrapper in use so I don't see why there is a
> > need to install Gradle (Mac users are suggested to install Maven as
> > well). Also, I didn't get why there is a need for Nginx. Creating a fork
> of
> > all the Fineract CN Github repositories could be an optional step - one
> > could just clone the repos directly and switch to a fork only if he
> > actually plans contributing.
> >
> > 2.2. Comments on "Importing Fineract CN Microservices Into IntelliJ
> > <
> https://cwiki.apache.org/confluence/display/FINERACT/Importing+Fineract+CN+Microservices+Into+IntelliJ
> >
> > "
> >
> > I think it would be good to suggest also importing modules under
> > "integration-tests/*" into IntelliJ IDEA
> >
> > 3. I was surprised to see that Fineract CN is based on Spring Boot 1. I
> > didn't find from anywhere in the roadmap about any plans to migrating on
> > Spring Boot 2. I think that at this stage it would be wise to stay up to
> > date with the base framework.
> >
> > Spring Boot 2 comes with Hikari Connection Pool that is very fast and in
> my
> > opinion, Hikari combined with "com.mysql.jdbc.Driver" would solve the
> > licensing problem described by
> > https://issues.apache.org/jira/browse/FINCN-26 as well.
> >
> > Some minor bugs in documentation that caught my attention:
> >
> > 1. This page http://fineract.apache.org/ says
> > "To subscribe, send a blank email to user-subscribe@fineract.apache.org"
> > I got a response back:
> > Fineract user list is closed. Please see dev.at.fineract list instead
> >
> > 2. https://cwiki.apache.org/confluence/display/FINERACT/Fineract+Home
> > Says: "On Jira tickets, please see the label CN.  "
> > This made me search for issues in project
> > https://issues.apache.org/jira/projects/FINERACT/ (with labels=CN) but
> some
> > time later I found out that correct Jira project link for Fineract CN is
> > actually:
> > https://issues.apache.org/jira/projects/FINCN
> >
> > Thank you for your attention and I hope to become a contributor soon.
> >
> > Kind regards
> > Juhan Aasaru
>

Re: Fineract CN observations from a newcomer

Posted by Isaac Kamga <is...@mifos.org>.
Hello Juhan,

Thank you for taking the time to email your suggestions. I wrote some
of the pages you referred to and personally appreciate your feedback.

Please be aware that this is open source space and your suggestions
are ALWAYS WELCOME. So kindly use the privileges granted your
confluence account by Ed to edit your ideas into the said pages. If
you don't receive any objections to your suggestions within a week, I
think it generally means it's a go ahead as it doesn't break anything
for anybody.

Thanks once again and I look forward to working with you.

Seasons greetings,
Isaac Kamga.

On Wed, Dec 19, 2018 at 7:39 PM Juhan Aasaru <aa...@gmail.com> wrote:
>
> Hi, community!
>
> I discovered Fineract CN project just recently and found it very
> interesting and ambitious and it raised a great interest in me. I went
> through all the documentation and materials I could find. I thought I share
> my first impressions and ideas on how I think the project could be further
> improved and highlight some minor issues that I found.
>
> 1. Fineract CN is targeted to a wider audience than its predecessors so in
> my opinion, Fineract CN materials and discussions should be separated from
> the Fineract project as it causes confusion and noise. I see that there is
> a separate Jira project created for Fineract CN but not yet a separate
> Confluence space nor separate developers list. Fineract CN materials are
> mostly grouped under "Fineract CN" but there is also some material found
> elsewhere (for example Fineract User Zone -> Apache Fineract CN Users
> Guide).
>
> 2. I had some comments about Confluence pages. First I thought to register
> myself as a Confluence user but after that, I still didn't have any
> permissions to add comments to pages. So I thought I write them here for
> now.
>
> 2.1. Comments on "How to build Apache Fineract CN
> <https://cwiki.apache.org/confluence/display/FINERACT/How+To+Build+Apache+Fineract+CN>
> "
>
> The wiki page has a lot of info and organizing it into logical steps would
> help a newcomer out and it wouldn't hurt to add a few lines explaining why
> some step is done and also add a link to demo_server Readme.md
>
> Luckily wiki page has all the info in there and so eventually I managed to
> get the app running in my local environment (Mac). For some reason, I
> couldn't get Cassandra working but I managed to solve this by running
> Cassandra from a Docker image instead:
> docker run -p9042:9042 -p7199:7199 cassandra:3.11
> This brought me to an idea that a docker-compose.yml could be set up to
> create an environment with all the running services (you can google "docker
> compose npm local" for more info). I know it adds overhead (won't probably
> work well on slow computers) but it would speed up getting the demo server
> running locally.
>
> All FN projects have Gradle wrapper in use so I don't see why there is a
> need to install Gradle (Mac users are suggested to install Maven as
> well). Also, I didn't get why there is a need for Nginx. Creating a fork of
> all the Fineract CN Github repositories could be an optional step - one
> could just clone the repos directly and switch to a fork only if he
> actually plans contributing.
>
> 2.2. Comments on "Importing Fineract CN Microservices Into IntelliJ
> <https://cwiki.apache.org/confluence/display/FINERACT/Importing+Fineract+CN+Microservices+Into+IntelliJ>
> "
>
> I think it would be good to suggest also importing modules under
> "integration-tests/*" into IntelliJ IDEA
>
> 3. I was surprised to see that Fineract CN is based on Spring Boot 1. I
> didn't find from anywhere in the roadmap about any plans to migrating on
> Spring Boot 2. I think that at this stage it would be wise to stay up to
> date with the base framework.
>
> Spring Boot 2 comes with Hikari Connection Pool that is very fast and in my
> opinion, Hikari combined with "com.mysql.jdbc.Driver" would solve the
> licensing problem described by
> https://issues.apache.org/jira/browse/FINCN-26 as well.
>
> Some minor bugs in documentation that caught my attention:
>
> 1. This page http://fineract.apache.org/ says
> "To subscribe, send a blank email to user-subscribe@fineract.apache.org"
> I got a response back:
> Fineract user list is closed. Please see dev.at.fineract list instead
>
> 2. https://cwiki.apache.org/confluence/display/FINERACT/Fineract+Home
> Says: "On Jira tickets, please see the label CN.  "
> This made me search for issues in project
> https://issues.apache.org/jira/projects/FINERACT/ (with labels=CN) but some
> time later I found out that correct Jira project link for Fineract CN is
> actually:
> https://issues.apache.org/jira/projects/FINCN
>
> Thank you for your attention and I hope to become a contributor soon.
>
> Kind regards
> Juhan Aasaru