...
Page Properties | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
|
...
- 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.
Item | OpenSRP Orderables | Upgrade SIGLUS |
---|---|---|
Stock On Hand Interface (Stock Cards in OpenSRP) | Requires redesign of the interface to accept dynamic list of orderables | Does not require major redesign |
Stock Card Interface Design | Already Available | Recommending usability redesign |
Stock Card Immutable Ledger | Already Available | Already Available |
Stock Event Business Logic | Already Available | Needs to be modified |
Stock Management Business Logic | Needs to be rewritten for Orderables data model | Needs to be rewritten for orderables data model |
Orderable Data Model | Needs to be created from scratch | Needs to be created from scratch |
Mobile to server authentication | Already available | Needs to be rewritten to accept V3 oauth2 process |
Mobile to server syncing | Already available | Needs to be added to OpenLMIS as a microservice |
OpenSRP to OpenLMIS server syncing | Needs to be created from scratch in Nifi | N/A |
Bulk inventory business logic | Needs to be created from scratch | Already Available, needs to be modified for orderables data model |
Bulk inventory user interface | Needs to be created from scratch | Already Available |
Intents and activities to link OpenSRP app to SIGLUS | N/A | Needs to be created from scratch |
Ability to add trade items in Android app | Will 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 app | Will 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