Hi Aswin, First some background:
The current Fineract code base was donated to Apache by the Mifos community out of the MifosX code. It is a traditional monolithic backend made up of a REST application fronting an SQL database. It is used as a backend by the Mifos community application which was not donated to Apache. Several community members, including myself, are working on a rearchitecting of current generation Fineract core banking concepts into a cloud native microservices architecture. We are also working on a front-end based on Angular which we intend to contribute to the Apache project as well. I am optimistically calling this set of modules Fineract Cloud Native, or Fineract CN for short. Because of the range of these projects anyone who answers your question will have to define the scope of their answer. I'll answer for the backend of Fineract CN. Hopefully if that is not the answer you were looking for, someone else will also speak up about other areas of the Fineract project. We are using the following technologies and concepts on a day-to-day basis in the development of the Fineract CN backend: *** REST *** The Command Query Responsibility Segregation pattern (CQRS - there's a good article online by Martin Fowler about this) *** Java 8 (lambdas and streams are fun!) ** Test-driven development ** Junit 4 ** Mojito ** Spring Data JPA * Feign * Cassandra * the java money library * Java web tokens * Eureka * Ribbon * Spring boot * flyway Just a few things we'd like to add to the mix in the near future: *** Backwards compatibility and semantic versioning ** Liquibase ** Java 9 * Reactive programming * Hystrix * Milagro * CouchDB/PouchDB * jpos That's a long list, and I'm not sure where you are on your learning curve, so I've put it in the order of importance as I see it. Feel free to ask more questions. I'm glad that you're interested in Fineract, and I hope we can help you become productive in our community. Regards, Myrle On Sun, Jul 30, 2017 at 9:10 PM, Aswin kumar <[email protected]> wrote: > Hi, > > I am new to java and I am trying to learn software development by > contributing to fineract.I do not have much experience in web > development.From the chat conversation in Gitter, I have found that > fineract(https://github.com/apache/fineract) is the > backend.Community-app (https://github.com/openMF/community-app ) is > the front end.I am learning java and also in the process of learning > front end > technologies like HTML, CSS and javascript.I would like to know, to > contribute to backend fineract, what are the web technologies that I > should know to start contributing to fineract project.From google > search I came to know that I should learn JSP,Servlets first and then > move on to frameworks like Spring.I would like to know your opinion > and please advice me regarding the same.Also please suggest if you > know of some good resources (books , links on the web) to learn the > technologies required to contribute to Fineract. > > Thanks! > Aswin
