Nordur
Contents
Master Facility List for DHIS 2
Group project in INF5750 - Open Source Development.
Group members
- Tor Jan Derek Berstad (tjbersta@mail.uio.no)
- Odd-Tørres Lunde (oddtorrl@mail.uio.no)
- Celina U. Moldestad (celinaum@mail.uio.no)
- Åsmund J. Rosendahl (aasmunjr@mail.uio.no)
Project description
Features
User
- 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).
Administrator
- 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.
Design
- 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.
Architecture
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
Tools
- Github's projects (Trello):
Collaboration tool for projects.
- Slack:
Collaboration.
- Github:
Development platform for host and review code, manage our project and version control.
Frameworks
- React.js
- Node.js
- Google maps
- Material UI
Licensing
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
Repository
https://github.uio.no/inf5750-nordur/nordur
Timeline
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