Stock Sharks

From mn/ifi/inf5750
Revision as of 14:20, 6 December 2017 by (talk | contribs) (Architecture)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Group members

  • Malin Aandahl (mwaandah)
  • Mari Grønberg (margronb)
  • Christina H. Andresen (chrhan)

Product descriptions requirements

Product description

This assignment involves creating an app for DHIS2 that produces visualisations for logistics data, including the necessary calculations for producing these, including:

  • For a selection of organisation units, produce a visualisation of the estimated months of stock left. There is usually a policy to keep the stock between a minimum and maximum levels. These should be configurable in the app, and organisation units above/below these levels should be highlighted.
  • For one organisation unit, produce a visualisation of the time-trend in stock availability (e.g. for the last 12 months), with minimum and maximum thresholds for what is adequate levels of stock.

The estimated months of stock left is based on the average amount used in recent periods, compared with the stock available at the end of the period in question. For example, if 350 doses of BCG has been used on average Jan-March and 600 doses is available at the end of March, the current stock will last an estimated 1,7 months.

It should be possible for an administrator to set the default minimum and maximum thresholds (in months of stock availability) to be used, and for users to override this. Furthermore, because this app should be usable in different settings/ countries and thus different DHIS2 databases, there must be an interface for selecting what data elements/ indicators to use for analysis, i.e.. for each variable the stock used, ending/ starting balance etc (as needed).


  • Retive stock data from API
  • Retive organistaion data from API
  • Save threshold values to API
  • Create design draft
  • Implement design draft
  • Create react components
  • Manage data flow in between components
  • Create D3 graph


View one
View two - Administer available stock and organisation units and threshold values
View three - select one organizaion unit and several stocks, to see the available stock trends
View four - Estimated stock level at end of the month


Architecture 1.png


  • DHIS2 API gives access to the data the application uses


  • We have chosen React, because we are a little familiar with the framework from before.


  • Used Redux to handle data flow in the application, chose Redux because of some experience with it from before.


  • We chose this to help us with the styling of our project. Material-UI is easy to get started with and has a modern design, compared to other frameworks such as bootstrap. Created for React


  • D3, a JavaScript library for visualizing data, it seems like a good tool for visualization


  • Discuss the implications (if any) on the product you are development from the software licenses of the frameworks and libraries you are using.

Our licence

  • MIT license


  • BSD licence


  • MIT license


  • MIT Licence


  • MIT License


  • BSD 3-clause "New" or "Revised" License

Division of labour


Visualization using D3.js and first-design of page.


Integrate DHIS API and handle API data


Set up repository and project structure, front-end flow with redux (send the data to the different components), create all react components, save data to the DataStore in API

Time schedule

Week 43 Get data from the API

Design for front-end development

Communicate with D3

Wiki page

Week 44 Make visualisation of an organisational unit for one year.
Week 45 Main components done
Week 46 Bug fixing and final touches

Project repository