Reposted from OpenLMIS
The OpenLMIS Community is pleased to announce the beta release of OpenLMIS 3.0!
The initial offering to come out of the re-architecture effort for OpenLMIS, 3.0 Beta contains one slice of functionality, Requisitions, based on an all-new micro-service architecture. This release is the first to utilize the new architecture and is a strong step in the direction of “shared investment, shared benefit” that is the primary mission of the OpenLMIS Community. 3.0 Beta is a proof-of-concept for this architecture and is not a feature-complete release. It does not contain every feature that the eventual 3.0 OpenLMIS stable release will, and further features will be added to the system as we work toward the full 3.0 release scheduled for the end of February, 2017.
Please reference the Living Product Roadmap for the high-level estimated release schedule through version 3.3, and read the 3.0 Beta Release Notes for further details. Visit the OpenLMIS GitHub page to view the 3.0 Beta code repository.
Early contributions to OpenLMIS by PATH, USAID, Rockefeller Foundation, the Bill & Melinda Gates Foundation, the UN Commission on Life-Saving Commodities, JSI, ThoughtWorks and others first helped shape the product and define its original code base (v.0.9) for deployments in Tanzania and Zambia in late 2013 under the name “eLMIS.” In 2015, eLMIS was also deployed in Cote D’Ivoire, and OpenLMIS software development continued with the v1.0 release, which was deployed by VillageReach to manage vaccine distribution in Mozambique and Benin.
As new installations of OpenLMIS were developed and deployed, a key challenge was the inability to easily extend the code base, which resulted in a “code fork” between the early implementations and the later v1.0 implementations. In an effort to address the fork the community agreed to begin working toward a common master branch, and at the September 2015 all-community meeting, the community also agreed that a single, “core” code line was required. This effort to re-work the OpenLMIS code is referred to as the “Re-Architecture” of OpenLMIS.
VillageReach and partners have worked to make the re-architecture process as transparent as possible through clear documentation available on the OpenLMIS Wiki. The OpenLMIS Re-Architecture Acceleration Brief outlines the plan and approach for this effort, the high level architecture is captured in the Architecture Overview (v3), and the Re-Architecture Concept Note provides a detailed, clear explanation of the re-architecture plan and approaches.
OpenLMIS 3.0 is built with an all-new architecture that better supports customizations and extensions. The goal is to enable multiple OpenLMIS implementations in different countries while still sharing one global, open source codebase. 3.0 Beta may look similar to version 2, but under the hood the architecture and technology are a leap forward.
Specifically, the key goals of the 3.0 Beta are to demonstrate:
New micro-services architecture
Ability to support extensions
Basic feature set within requisitioning
Key Features of OpenLMIS 3.0 Beta
• Micro-services OpenLMIS used to be one monolithic system, and it is now split into independent services that provide RESTful APIs for different functional areas. Learn more on the OpenLMIS Wiki
• Extensibility Two approaches to extensibility are supported along with examples and documentation: First, Extension Points are built into services in areas where we expect extension and customization will be needed. Second, individual micro-services could be added in or swapped out in order to provide a new or altered area of functionality. Learn more about the OpenLMIS 3.0 extension architecture and use cases. For an example extension point and documentation, visit the GitHub page
• CI/CD Pipelines Continuous Integration and Deployment have also seen significant investment in 3.0 Beta. Jenkins is used to automate builds and deployments trigged by code commits. See the status of all builds online, or learn more on the OpenLMIS Wiki
• UI The reference User Interface (UI) is one single-page application built with AngularJS, and it is structured to allow extension and customization
• Updated Product Model The new product model incorporates lessons learned from previous versions of OpenLMIS in the area of stock management and local fulfillment. It also uses the GS1 logical model and implements supply chain best practices (such as support for lots, packaging, GTINs, etc). Read more and see diagrams of the new Product Model
• And More We’ve also invested in other areas of the platform that are important for OpenLMIS to be a trusted, global platform: security, localization, and over 240 JIRA tickets in total. Follow along in JIRA