Skip to content

[DMP 2024]: Streamline Harmony’s setup and improve documentation #119

@Ideonvn

Description

@Ideonvn

Ticket Contents

Description

Background

Harmony is an innovative open source data integration and analytics platform developed by Zenysis Technologies that stands at the forefront of combating global health challenges. It is designed to seamlessly integrate siloed data systems, thereby fostering a unified health data ecosystem. Currently, Harmony serves a critical role for 10 national governments, empowering them to make informed decisions by providing a comprehensive view of their health data landscapes. With over 1000 users, including health professionals and policymakers at all levels of the health system, Harmony is instrumental in addressing some of the world's most pressing health crises. Its capabilities have been leveraged to eliminate malaria, eradicate polio, quash cholera outbreaks, and resolve commodity stock outs among other critical health needs. The platform's versatility and impact underscore its value in the global health domain.

Need

Users encounter difficulties setting up and using Harmony due to the intricate setup process and distributed design, requiring advanced technical knowledge, which limits its accessibility and wider use.

Objective

To simplify Harmony's setup and enhance its documentation, thereby making the platform more user-friendly and accessible for new implementers.

Impact

By meeting these goals, we aim to not only lower barriers to entry for potential users but also improve the maintenance experience for existing users, thereby strengthening Harmony's role in global health initiatives.

Goals & Mid-Point Milestone

Goals

Simplify Setup Process

Activities:

  • Analyze the current setup process to identify complexity and common issues.
  • Collect inputs and feedback on the above from the core Zenysis development team.
  • Develop a streamlined installation script or set of scripts that automate critical parts of the setup process.
  • Provide implementers a sample data source to be able to quickly set up a demo pipeline.
  • Test the installation scripts in various environments to ensure compatibility and ease of use.

Mid-Point Milestone:

  • Have a working prototype of the installation script ready for internal testing.

Enhance Documentation

Activities:

  • Audit existing README and documentation for gaps or outdated information.
  • Collect inputs and feedback on the above from the core Zenysis development team.
  • Create a detailed Wiki with multi language support that includes setup instructions, configuration options, use cases, and troubleshooting tips.

Mid-Point Milestone:

  • Complete the initial draft of the Wiki covering setup instructions and configuration options.

Setup/Installation

Refer to https://github.com/Zenysis/Harmony?tab=readme-ov-file#project-initialization

Expected Outcome

The project to streamline Harmony’s setup and improve documentation is broken down into specific goals, each with its mid-point milestone to ensure progress within 1.5 months into the coding period.

Acceptance Criteria

Simplify Setup Process

  • Installation Script Effectiveness: The new installation scripts must reduce the setup time by at least 50% compared to the manual process.
  • Ease of Use: Users with minimal technical expertise should be able to execute the setup process without external assistance.
  • Environment Compatibility: The installation scripts must be compatible with and executable in at least three major operating systems (e.g., Windows, macOS, Linux) on both x86 and ARM cpu architectures.
  • Demo Pipeline Functionality: The provided sample data source should enable users to set up a demo pipeline successfully on the first attempt.
  • Error Handling: The setup process should include clear error messages and troubleshooting steps for common issues.

Enhance Documentation

  • Completeness: The new Wiki must cover all aspects of the setup process, configuration options, use cases, and troubleshooting tips, leaving no critical information gaps.
  • Clarity and Accessibility: Documentation should be easily understandable by users with varying levels of technical expertise, with technical terms and processes clearly explained.
  • Feedback Incorporation: The documentation must reflect inputs and feedback from the core Zenysis development team, ensuring it meets the needs of both new and existing users.
  • Maintenance Guidance: Documentation includes a section on maintaining and updating the Harmony platform, with clear instructions and best practices.

General Criteria

  • User Feedback: Positive feedback from a sample group of end-users and the Zenysis development team, indicating that the setup process and documentation meet their needs and expectations.
  • Documentation Updates: All documentation updates must be completed and reviewed by the project team to ensure accuracy and comprehensiveness.
  • Project Timeline: All mid-point milestones are achieved within 1.5 months of the coding period, and the final project deliverables are completed within the agreed-upon timeline.

Implementation Details

The Harmony project employs modern technologies such as Docker for containerization, ensuring ease of setup and environment consistency for both development and production. It integrates PostgreSQL for relational data storage and Apache Druid for handling high-performance analytics workloads, alongside MinIO for S3-compatible object storage, providing flexibility across various storage backends. Automation and simplification of development tasks are facilitated through Makefiles, streamlining the project setup and maintenance. The core solution is written in Python, using Flask as the backend web framework and React on the frontend. This technical foundation offers potential contributors a sophisticated environment for developing scalable and robust data integration solutions.

Mockups/Wireframes

No response

Product Name

Harmony

Organisation Name

Zenysis Technologies

Domain

⁠Healthcare

Tech Skills Needed

Database, Debugging, DevOps, Docker, Flask, Python

Mentor(s)

@Ideonvn @Sybrand

Category

Configuration, Documentation, Delpoyment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions