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 | OpenERP / Odoo | ||
|---|---|---|---|---|---|---|
|
|
|
|
|
| |
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 |
|
|
| ||
Extra Data -- extending entities | JSON column, maybe NoSQL w/ UUID | Thin Tables | MoTech Data Services | Thin Tables |
|
|
Localization and il8n | 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 |
|
|
|
|
|
|