At its very core, the MFL is a comprehensive database of all the Health Facilities in the country (Malawi). From Private Hospitals to Village Clinics, the system keeps track of resources, utilities and services available in each one of these facilities just to mention a few.
This project is the first deliverable under the Kuunika Data For Action Initiative and aims at serving the general users, District Health Officers and any other stakeholders in the Malawi Healthcare Sector. Additionally, the facilities and their information will be available via a REST API for other services and systems to consume, such as Baoabab Health Trust Electronic Management Record Systems (EMRs) or the District Health Information System (DHIS).
The project is generated by LoopBack, a rapid API development framework. For more information, see the Loopback documentation. There is a client
directory that has a create-react-app setup from which the User Interface will be built. The idea is to build static files from create-react-app
into the client
folder so that the API and front-end can run on the same node server.
Checkout Docker Installation
Once you have followed the installation step, you are ready to contribute to the source code. When working on the API, you will mostly use the Loopback Model Generator, as well as make changes to files in common/models
. When working on the Front-end, you will be modifying files in client
. Make sure to add tests for every generated model, covering the major enpoints and relationships that will be hit via the API. From the root, running npm start
will start the API on port 3000. Tests are not mandatory for the React Project, but highly encouraged.
If you have noticed a bug, you can open an issue in github web and attempt to fix (see below), otherwise we will do our best to look at it.
From the issue list, you can select an issue, and create a branch in your local directory describing the issue you are fixing. Once the issue is fixed and all the tests are running, you can publish your local branch to the repository. From there, you may open a pull request describing how you have solved the issue. Remember to explicity say which issue number it solves, i.e. "solves issue #41" so that the issue is automatically closed upon merge
If you have any features to add, please follow the instructions in the previous step to create a new feature branch and publish it to the remote repository upon completion of the feature. Every additional feature on the backend must have tests to go along with it.
Enjoy, and feel free to contact [email protected]