Health systems has to ensure stocks of life saving commodities at all time, and many countries using DHIS2 are now requesting for an implementation of Logistics Management Information System(LMIS).
We will create a web app that can be used for sending supply orders to higher authorities through DHIS2. The user can fill in commodity name and the quantity they need for the specific commodity and click “Send”. The order will then be placed, and the higher authorities will get a notification of the request.
Araz Abishov (firstname.lastname@example.org)
Marit Kilde Mjelva (email@example.com)
Mathias Rove Olaussen (firstname.lastname@example.org)
Summary of requirements
- Application should allow users to fill out commodity request forms and then send them to managers (privileged User Group). Managers at the same time, should be able to receive notifications through DHIS2 messages.
- Automatic notifications for defined period. (Request for commodities should be sent automatically after certain period of time defined by user).
Strategy for work with meta-data and data:
- Instead of creating custom forms in DHIS2, we can utilize DataSet model with custom attributes. By following this approach, we can also benefit from aggregation functionality of DHIS2.
- In order to send notifications, we can utilize messaging functionality of Web API.
- IDE: WebStorm.
- HTML/CSS: Material UI library which is targeted for use with React.js (www.material-ui.com)
Milestone 1: 8th November
- Document features and architecture on Wiki
- Show understanding of DHIS2 web apps
Milestone 2: 22th November
- First bare-bone version - static HTML
- Uploadable as DHIS2 web app
Milestone 3: 4th December
- Finished implementing web app
Milestone 4: 11th December
- Final delivery
Dividing of tasks
- Sketch an overall design of application [Marit, Mathias].
- Decide the location of main application controls [Marit, Mathias].
- Commit design mock-up to GitHub [Marit, Mathias].
- Set up DHIS2 instance for development purposes [Araz].
- Set up the skeleton project with pre-installed tools (NPM, React, Babel, Webpack, Material-UI) [Araz, Marit, Mathias].
- Build basic React components for application [Araz].
- Define application manifest and deploy application to DHIS2 instance [Araz].
- Integrate D2 library. [Araz, Marit, Mathias].
Screenshots and screen flows
The screenshot of bare-bone HTML application.
Documented learning during project
- Gained a better understanding of how to utilize Git
- Learning about Webpack (web application build tool).
- Material design guidelines.
- Using Babel to transpile ES6 sources to ES5 in order to support older versions of browsers.
Suggested improvements to API
- User oriented API responses: It could be really nice if API was aware of user access rights. For example, if I am trying to access /api/organisationUnits, the response should contain only those organisation units to which current user is assigned.
The whole project will be hosted on GitHub:
Link to sample web app
As application under the hood uses CORS to communicate to server, it can be executed from anywhere.
You can try it even by running from GitHub: