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

Jump to: navigation, search

Master Facility List for DHIS 2

Group project in INF5750 - Open Source Development.

Group members

  • Tor Jan Derek Berstad (
  • Odd-Tørres Lunde (
  • Celina U. Moldestad (
  • Åsmund J. Rosendahl (

Project description



  • FU1: When searching the user shall be able to see a list of all the facilities, they can choose one of them or type in the specific facilities. The application have the autocomplete-ability, so it is easy for the user to use the search functionality.
  • FU2: When the user finds a specific facility they shall be able to click on that and get more information about that facility, such as the hierarchy structure. If available they shall also see a map of where that facility is located.
  • FU3: On the map the user can move around and click on groups of facilities, or click on a specific facility and get the information about that facility.
  • FU4: The user are able to do advanced search with specific queries (using filtering) to get information about the facilities. Like searching within a chosen country or city. The advanced search functionality enables the user to do searching based on the facilities in one city, or searching/browsing based on organisation unit groups.
  • FU5: When the user is on the information page to a specific facility they shall be able to propose changes to the information being displayed. They click on the edit-symbol to go to the edit-wive. The changes shall then be approved by an administrator in order to be changed. The changes could, for example, be either improvement or filling in the blanks (patch/put and post requests).


  • FA1: Admin is a user with appropriate user authorities, and therefore should be able to perform more operations than a regular user.
  • FA2: The admins should therefore be able to approve or ignore the proposed changes request from the users on the configuration-page. On the page the admin sees a list of all the proposed changes (if created/available).
  • FA3: The list on the configuration-page should be filtered to show only proposals relevant for the particular administrator (i.e. an administrator for District A should only see proposals for related to organisation units in District A, not those in District B). The admin can approve the changes or just choose to ignore that request.
  • FA4: The administrator shall also be able to configure the app to show data element and/or indicator values for the particular organisation unit for the current/last year, such as population estimates, staff count etc. On the "configuration" page the administrator can also configure the app, by select what data to display.


  • The application are also split into two wives, the user-wive and the admin-wive. (You have to have the admin-authorities to use the admin-page.)
  • The design of the application are split into four window-parts: The search box, the filter box, the information box and the map.
    • The search box: Are where the user can search for different facilities and in combination with the filter box they can specify their search.
    • The filter box: The user can choose between different filters, such as country, city and organization unit groups .
    • The information box: The information about the facility
    • Map: Shows where the particular facility is localized.

app structure. Print of the web application


After a discussion in the group. We decided to go for React as the framework for this group project. We considered several different architecture/frameworks. Django was considered, but we don't currently require a backend. So Django felt like "overkill" for this assignment. So we decided to go for react.js.

Endpoints from DHIS2 API documentation:

  • 1.7. Metadata object filter
  • 1.8. Metadata field filter
  • 1.17. Data values - /api/25/dataValueSets
  • 1.19. Data values - /api/26/dataValueSets
  • 1.19.7. Data values - /api/26/dataValues
  • 1.56. Data sets - /api/26/dataSets


  • Github's projects (Trello):

Collaboration tool for projects.

  • Slack:


  • Github:

Development platform for host and review code, manage our project and version control.


  • React.js
  • Node.js
  • Google maps
  • Material UI


React.js is licensed under MIT.

Division of labour

Tor Jan: Developer - map, UI
Odd-Tørres: Developer - all
Celina: Developer - information page
Åsmund: Developer - all



Week 43 and 44 - The setup-stage

  • Project planning (description plan)
  • Write wiki-page
    • Discussed framework, design and architecture
    • Create features
  • Get to know react.js
  • Get to know DHIS api’s documentation.

Week 45

  • List data (Master Facilities)
  • Search-function (Attribute search)
  • Simple use of map-structure

Week 46

  • Advanced search-function with filtration
  • List specific data
  • Show map and use of “advanced” map.

Week 47

  • Bug-fix and handling issues
  • Propose changes
  • The admin configuration-page
  • Combo search-function with different filters.

Week 48

  • The admin configuration-page
  • Propose changes
  • Show more data