- Bartosz Gembala (bartoszg)
- Erik Aaron Hansen (erihanse)
- Erik Snartland (eriksna)
Project description requirements
We chose the Sharing Editor assignment. The assignment involves making a DHIS2 app for updating sharing configuration for multiple/a set of metadata objects.
ProductOur initial product:
Requirements and features
Should be able to update sharing configurations for multiple/a set of metadata objects. Metadata should be updated based on these methods:
- Through search on name (or other properties), with the possibility of applying settings to all or a selection of the search result
- Through selection of a group, with the possibility of applying settings to all or a selection of the search result
- Through data sets, programmes and dashboards with dependencies. The metadata dependency export functionality will give an idea of which metadata objects need to be updated for data sets, programmes and dashboards.
Currently sharing settings can be applied to all or a selection of the search results, we have not supported search, but we do have a drop-down list which lists all the different metadata we need to access. It is possible to apply sharing settings through data sets, dashboards and programmes.
Ideally, there should be support to work with all shareable objects, but a minimum is:
- Analysis tool favourites
- Data sets
- Data elements (and groups)
- Indicators (and groups)
- Category/ category combos/ category option
We are able to work with all shareable objects which are specified as sharable in DHIS2 documentation except analysis tool favourites.
The sharing editor assignment requires changes to the DHIS2 internal features. Ideally we will create a local DHIS2 server running on a virtual machine. Currently under development. This will allow us to edit the server without affecting other groups. An alternative is to create a local DHIS2 server running on each of our computer. We are currently fetching data from https://play.dhis2.org/demo/api/dataElements.
Other libraries might be added later on.
- Create wiki
- Chose assignment
- Overview of the product to be developed, including features
- Proposed architecture of the app (including key frameworks to be used)
- Broad timeline for development (in form of milestones)
- Link to project repository
- DHIS2 data management
- Features finalized
- Bugfixes and documentation
Although our initial timeline milestones seemed neat and looked like a good plan, we have not been able to follow them completely as we otherwise would have wished to. There have been weeks were we were stuck on a problem and had to work through it before we could continue, and other weeks where suddenly everything made sense. But all in all we managed to work with our project as much as we had time to, we also had other exams that made it impossible to do everything we had planned to.
DHIS2 is a free and open source software. They have a permissive BSD license, allowing others to contribute to the code if some requirements are met. We only used the API and is therefore not affected by this limitation.
For out project, we chose the MIT license. BEE is an open source application with source code published allowing for third parties to copy, edit and publish their own versions.
Division of labour
In the initial part og the project we will work together. Everyone needs to have a good understanding of the structure we are implementing. We then decided to take an extreme programming approach where the working load was divided. We had a KanBan-list where we were free to create different issues, and once a person did not have an assignment at hand, he could drag the issue to the work-in-progress board and start implementing the given feature. Once he was done, the issue could be marked as finished and a new one could be chosen.