Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Added last section

...

Page Properties
label


Status

Status
colourYellow
titleIn Progress

Stakeholders
Outcome

(Work in progress)

  • Do not do ReactNative in OpenSRP. It's too risky and doesn't have a clear value
  • Do not do the API gateway approach. That has long term technical debt that we don't want to take on.
Due date
Owner


...

  •  OpenSRP Orderables - Android Native: Build out orderables in OpenSRP and integrate with Nifi
  •  OpenSRP Stock Management - ReactNative: Convert OpenSRP's stock control module to ReactNative and build out orderables
  •  Embed SIGLUS Stock Management in OpenSRP: Extract the SIGLUS Stock Management and Inventory features and make them available as a component within OpenSRP. OpenSRP would 
  •  SIGLUS Stock Management to OpenLMIS v3: Adapt SIGLUS Stock Management and Inventory features to be compatible with OpenLMIS v3 and integrate it with OpenSRP
    If we adopt SIGLUS, we have two approaches:
    •  Native v3 support in Android Client: Develop native support for OpenLMIS v3 in the Android Client so that it directly interacts with the OpenLMIS v3 server
    •  v3 Support through middle layer or microservice: Do not change the Android Client. Instead, develop a middle layer or microservice that handles the transactions between the OpenLMIS v3 architecture and the SIGLUS Android Client.

Detailed Options

OpenSRP Orderables - Android Native

...

  • Schedule Risk:
    • The team assumes a tool like Nifi can be used to perform this interaction, which requires much less programming than doing this in Java. Nifi is already a dependency of the OpenLMIS v3 reporting architecture so we would not be adding an architectural component.

Comparison of Upgrading SIGLUS v. Developing Orderables in OpenSRP

This section focuses on a point-by-point comparison of the requirements for delivering the integration of stock management and inventory. Both options require a lot of work. The orderables data model shift from OpenLMIS v2 to v3 effectively requires that the data model of products be rewritten which impacts all business logic (presenters) and the majority of views on the Android client.

Note on OpenSRP core strategy: We will use the same interface, but make the card view dynamic to allow for a server side configuration of the orderable (commodityType and tradeItem) list. All metadata will be synced from OpenLMIS to the OpenSRP server using Nifi. We will also need to introduce a new bulk inventory process that will need to be designed.

ItemOpenSRP OrderablesUpgrade SIGLUS
Stock On Hand Interface (Stock Cards in OpenSRP)Requires redesign of the interface to accept dynamic list of orderablesDoes not require major redesign
Stock Card Interface DesignAlready AvailableRecommending usability redesign
Stock Card Immutable LedgerAlready AvailableAlready Available
Stock Event Business LogicAlready AvailableNeeds to be modified 
Stock Management Business LogicNeeds to be rewritten for Orderables data modelNeeds to be rewritten for orderables data model
Orderable Data ModelNeeds to be created from scratchNeeds to be created from scratch
Mobile to server authenticationAlready availableNeeds to be rewritten to accept V3 oauth2 process
Mobile to server syncingAlready availableNeeds to be added to OpenLMIS as a microservice
OpenSRP to OpenLMIS server syncingNeeds to be created from scratch in NifiN/A
Bulk inventory business logicNeeds to be created from scratchAlready Available, needs to be modified for orderables data model
Bulk inventory user interfaceNeeds to be created from scratchAlready Available
Intents and activities to link OpenSRP app to SIGLUSN/ANeeds to be created from scratch
Ability to add trade items in Android appWill not develop. All trade items will be defined server side and synced to the app.Current feature of SIGLUS. We could block this activity if we state that it's out of scope.
Ability to add lots in Android appWill not develop. All lots will be defined server side and synced to the app.Current feature of SIGLUS. We could block this activity if we state that it's out of scope



Major areas of risk for the Ona team:

  • Generally, there's a schedule and cost risk of having to develop OpenLMIS microservices for this project:
    • Authentication upgrade to work with OpenLMIS v3 may require Auth microservice development
    • We will need to create a microservice from scratch to manage the mobile deployment syncing, which is a huge undertaking
  • Schedule Risks:
    • Ramping up on SIGLUS to be proficient in development will take 2-3 weeks for the full time Android developers who are already proficient with OpenSRP, Nifi and the OpenLMIS APIs