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 |
...