Frameworks & Libraries
Work in Progress
Orange is under consideration
Blank cells are unknown
N/A cells are known to not be addressed
OpenLMIS | OpenMRS | MoTech | DHIS2 | OpenERP / Odoo | iHRIS | |
---|---|---|---|---|---|---|
Link | ||||||
Authentication/SSO | Spring Security: B. Auth & OAuth2 | Auth & OpenID | ||||
Community - License | GNU Affero General Public License Version 3 | MPL v2 | GPL V3 | |||
Community - Organization/Support | Committees | |||||
Community - Sustainability | ||||||
Deployment Packaging | Services built as WARs in JARs (Spring Boot) Services published as Images to DockerHub Service Images composed and deployed with Docker Compose | WAR + Custom module (Maven) | WAR | WAR | Python Django | |
Continuous Delivery approach | Jenkins builds&publishes to DockerHub, Jenkins deployment script to cloud | Bamboo builds and deploys to UAT servers | ||||
Continuous Integration approach | Jenkins builds PR, GitHub integration shows test status Sonar analysis on dev branch | Bamboo builds committed code, | Jenkins builds PR, GitHub integration shows test status | |||
SCM Tool (branching strategy) | Git, GitFlow, Feature branches and Pull Requests off of develop branch | Git, Feature branches and Pull Requests | Git, Feature branches and Pull Requests | Bzr | Git | |
Database - Access | ||||||
Database - Data Migration | Flyway | Liquibase | Flyway | |||
Database - ORM | JPA w/ Hibernate | Hibernate | Hibernate, JDBC | |||
Database - Spatial Support | PostgreSQL + PostGIS | PostGIS | ||||
Documentation - API | Swagger | Swagger UI, Javadoc | ||||
Documentation - Framework(s) | Sphinx | |||||
Documentation - Publishing | ReadTheDocs.org | REST Module | ReadTheDocs.org | |||
Extra Data -- extending entities | JSON column, maybe NoSQL w/ UUID | Thin Tables | MoTech Data Services | Thin Tables | ||
Localization and il8n | Java Resource Bundle, Transifex | Java Resource Bundle, Transifex | ||||
Logging | SLF4J to Syslogd w/ Docker Engine | SLF4J | ||||
Notifications | Spring Integration Channels: SMTP, Kannel | |||||
Reporting | Jasper Engine, BI Integration (Tableau) | Custom Reporting module against transactional DB | ||||
Scheduling/Tasks | Quartz | JDK Timer | ||||
Test Coverage | Cobertura | Sonar (not used much) | ||||
Static Analysis | STYLE-GUIDE, CheckStyle, Sonar | Sonar (not used much) | ||||
Testing | JUnit, Mockito, PowerMock, WireMock | JUnit, Mockito, PowerMock | JUnit | |||
UI - Framework | AngularJS 1 | Legacy: JSP, current: GSP + Angular 1 | ||||
UI - Modularity | ocLazyLoader? Angular2? RequireJS? | independent "apps" from home screen | ||||
UI - Separation | RESTful API | |||||
UI - Testing | Jasmine, Karma | Jasmine, WebDriver | ||||
UI - Test Coverage | Karma Coverage | |||||
UI - Static Analysis | JsHint, LESSLint | |||||
Web Security |
OpenLMIS: the global initiative for powerful LMIS software