Fineract CN observations from a newcomer
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
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
2.1. Comments on "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
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
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@xxxxxxxxxxxxxxxxxxx"
I got a response back:
Fineract user list is closed. Please see dev.at.fineract list instead
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
Thank you for your attention and I hope to become a contributor soon.