WIP
Orange is under consideration
Blank cells are unknown
N/A cells are known to not be addressed
OpenLMIS | OpenMRS | MoTech | DHIS2 | OpenERP / Odoo | |
---|---|---|---|---|---|
Authentication/SSO | Spring Security: B. Auth & OAuth2 | Auth & OpenID | |||
Community - License | ? | MPL v2 | |||
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 |