Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

For each section of the road map below, there is some motivation why it has been added and a list of tasks to be completed. Some of these tasks are already on our Jira issue tracker ( prefixed with [FINCN-N] ) while others are still to be created. Fineracters are well-invited to contribute ideas into this road map.

Alpha Phase I: Getting to an initial workable release 

In phase I, the intent is to have the minimal viable product features while ensuring that the developer infrastructure is there for additional rapid development.  That is, the intent is NOT to provide functional equivalency with Fineract1.x but to provide a developer stack that is sufficient to allow for other microservices to be developed and deployed. 

Nice to have: solve for license compatibility and eliminate dependencies on Hibernate, MariaDB driver, and embedded MariaDB for component tests 

Alpha Phase II: Functional directions diverge 

In Phase II, the intent is to enable different "builds".  We intend that fineract-CN solves the problem of divergent requirements by enabling combinations of microservices at build time ( at run time ?) that support different types of organizations (in apache parlance "users").  This is vital if the new architecture with its patterns are to prove useful to the community. 

Alpha Phase III:  Official release 

In phase III, all of the license issues must be resolved, continuous integration tests must pass, and functionality needs to be complete enough for a single type of institution (user) to have a MVP. This user can be a simple "direct to consumer" mobile banking wallet.  

Phases I-III needs to solve for: 

A. Eliminate "Category X" Dependencies

...

Even though it's not a likely sequence, but because of the size of the negative outcome, we avoid it by not including LGPL (or any other Category X software) in our releases.


    1. Jira
      serverASF JIRA
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverId5aa69414-a9e9-3523-82ec-879b028fb15b
      keyFINCN-2
       Migrate
      [ FINCN-2 ] Migrate ORM From Hibernate To OpenJPA
    2. Jira
      serverASF JIRA
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverId5aa69414-a9e9-3523-82ec-879b028fb15b
      keyFINCN-26
       Replace
      [ FINCN-26 ] Replace MariaDB Driver With Drizzle As JDBC Driver[ FINCN-27 ] Remove Dependency On Embedded MariaDB From Component Tests
    3. Jira
      serverASF JIRA
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverId5aa69414-a9e9-3523-82ec-879b028fb15b
      keyFINCN-113
       Migration From MariaDB To PostgreSQL

B. Enable Local Development

To facilitate local development of Apache Fineract CN, it is important to optimize fineract-cn-demo-server to run on non-expensive non-Unix-like Operating systems with ease. These tasks help us achieve that by testing the initial-setup script to work in a Windows environment and run on non-expensive computers.

    1. [
      Jira
      serverASF JIRA
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverId5aa69414-a9e9-3523-82ec-879b028fb15b
      key
      FINCN-25
      ]
      One Process Local Deployment
    2. [
      Jira
      serverASF JIRA
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverId5aa69414-a9e9-3523-82ec-879b028fb15b
      key
      FINCN-24
      ]
      Test initialize-setup.bat Script
    3. [
      Jira
      serverASF JIRA
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverId5aa69414-a9e9-3523-82ec-879b028fb15b
      key
      FINCN-28
      ]
      Adjust Permittables To Make Permission Versioning Possible

...

Our current process of validating Pull Requests is quite cumbersome and our Continuous Integration/Continuous Delivery needs automation. To ensure that our CI/CD process more becomes more efficient and there's seamless merging of Pull Requests, it's important for us to onboard artifactory as well as enable automated testing and checks for adherence to our coding standards when new Pull Requests are submitted.

    • Jira
      showSummarytrue
      serverASF JIRA
      serverId5aa69414-a9e9-3523-82ec-879b028fb15b
      keyFINCN-148
       An

    Introduce An
    • Artifactory Into Build Process

    • Add checks for coding standards to unit tests

    • Add Java signature checking of API to unit tests

    • Jira
      showSummaryfalse
      serverASF JIRA
      serverId5aa69414-a9e9-3523-82ec-879b028fb15b
      keyFINCN-148
       Run build and unit tests automatically when a PR is submitted

    Change
    • Jira
      showSummaryfalse
      serverASF JIRA
      serverId5aa69414-a9e9-3523-82ec-879b028fb15b
      keyFINCN-148
       Change Other Builds ( libraries and services ) to refer to artifactory

D. Deployment Of Apache Fineract CN

Our community needs a publicly accessible demo server of Apache Fineract CN. For this to happen, we need to containerize the domain microservices of Fineract CN and The Apache Software Foundation needs to provide an Ubuntu VM with sufficient memory upon which to host deploy it. The following tasks (some of which are in progress) help us achieve that;

    1. [

      Jira
      serverASF JIRA
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverId5aa69414-a9e9-3523-82ec-879b028fb15b
      key
      INFRA-16203
      ]
      Ubuntu VM For Apache Fineract CN Project

    2. Docker Compose to replace demo server for local development

    3. [

      Jira
      serverASF JIRA
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverId5aa69414-a9e9-3523-82ec-879b028fb15b
      key
      FINCN-10
      ]
      Containerization And Deployment Of Apache Fineract CN Using Docker

    4. Need multiple VMs, some for Data Stores and others for Orchestration

E. Enable Developers Build Apps On Apache Fineract CN

It is necessary for the health of the Fineract CN project for developers to seamlessly leverage the APIs to develop apps. Documenting these APIs and making them publicly accessible is a key step in this direction. 

  1. [ FINCN-6 ] Rest API Documentation

F. Fix Test Suites In Domain Services

...

E. Building Mobile 2.0

  1. Jira
    serverASF JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId5aa69414-a9e9-3523-82ec-879b028fb15b
    keyFINCN-7
    Fineract CN Mobile 2.0


NICE TO HAVES

...

G. Adjust Portfolio Service

  1. [
    Jira
    serverASF JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId5aa69414-a9e9-3523-82ec-879b028fb15b
    key
    FINCN-11
    ]
    Implement New UI Within FIMS Which Consumes New API In Portfolio

H. Alternate Web User Interface

  1. [
    Jira
    serverASF JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId5aa69414-a9e9-3523-82ec-879b028fb15b
    key
    FINCN-8
    ]
    Web UI For Microfinances Practicing Group Lending

I. Building Mobile 2.0

  1. [ FINCN-7 ] Fineract CN Mobile 2.0Lending