Developer "Guide"

Technical concepts

  • Microservices (vs. monolithic application)
  • Containerization (Docker)
  • Continuous Integration (CI) / Continuous Delivery and Deployment (CD)
  • Automated testing (unit tests, integration tests, functional tests)
  • REST API design
  • Semantic versioning

Software Tools / Tech Stack

Back-end services

  • Java 8+
  • Spring / Spring Boot
  • SQL
  • Postgres 9.6+

UI

  • JavaScript, ECMAScript 5 / 6
  • AngularJS 1.x
  • HTML / CSS (SASS)

Reporting stack

  • Python
  • Nifi
  • Superset

Dev and build environments

  • Git
  • Docker
  • Gradle
  • Jenkins

Good to know

  • Grunt for UI build
  • Karma / Jasmine for UI unit testing
  • Sonar for static code analysis
  • Flyway for database migrations
  • Taurus / JMeter for performance
  • Transifex for translations

OpenLMIS: the global initiative for powerful LMIS software