Zenysis / Harmony

The Harmony Analytics Platform (Harmony), developed by Zenysis Technologies, helps make sense of messy data by transforming, cleaning and enriching data from multiple sources. https://www.zenysis.com/#harmony
GNU Affero General Public License v3.0
31 stars 14 forks source link

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

Open Ideonvn opened 7 months ago

Ideonvn commented 7 months ago

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:

Mid-Point Milestone:

Enhance Documentation

Activities:

Mid-Point Milestone:

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

Enhance Documentation

General Criteria

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

Teak-Rosewood commented 6 months ago

Hello, I am interested to contribute her as a part of DMP2024, is this issue open? and would you like me to fork the repo and start implementing my changes?

rohitkori commented 6 months ago

Hi @Ideonvn, I am interested in this project. I have experience working on various projects and have worked with various tech stacks like Node.js, Django, and ReactJs, as well as DevOps tools such as Docker and Kubernetes. Additionally, I am one of the coordinators of the open-source community at my college and have worked on open-source projects.

I noticed that there are several docker-compose files in the repository. Would you like to use Docker to streamline this process?

Sybrand commented 6 months ago

Hello, I am interested to contribute her as a part of DMP2024, is this issue open? and would you like me to fork the repo and start implementing my changes?

Hi @Teak-Rosewood .

The issue is indeed open, and you’re welcome to fork the repo and start making improvements. If you get stuck on anything, please reach out to me.

Keep in mind, the issue is pretty open ended; anything that addresses the objective (improve ease of setup) is a welcome addition.

I’d like to ensure we don’t have multiple people working on the exact same thing, so if you could please communicate which particular aspect you’d like to address 1st, that would be much appreciated. Try your best to create small, easy digestible pull requests.

Sybrand commented 6 months ago

Hi @Ideonvn, I am interested in this project. I have experience working on various projects and have worked with various tech stacks like Node.js, Django, and ReactJs, as well as DevOps tools such as Docker and Kubernetes. Additionally, I am one of the coordinators of the open-source community at my college and have worked on open-source projects.

I noticed that there are several docker-compose files in the repository. Would you like to use Docker to streamline this process?

Hi @rohitkori

Docker would certainly be involved; the solution currently relies on various dockerized components, builds to a docker image, and there are already some instructions around running the system localized using docker.

I would envision part of this task relating to both improving the documentation around how we use docker, and improving the use of docker itself.

NEGRAH-S commented 6 months ago

Hello @Sybrand @Ideonvn , i was a selected Contributor last year for C4GT and this year your project has fascinated me, I am well versed with Python, java, Docker, AWS. Am looking forward to connect and work on approach to draft a meaningful proposal for same.

Sybrand commented 6 months ago

Hello @Sybrand @Ideonvn , i was a selected Contributor last year for C4GT and this year your project has fascinated me, I am well versed with Python, java, Docker, AWS. Am looking forward to connect and work on approach to draft a meaningful proposal for same.

@NEGRAH-S that's great. Feel free to reach out to me, so that we can plan out some next steps.

DhruvLamba commented 6 months ago

Hey @Sybrand @Ideonvn , I am eager to express my interest in contributing to the Harmony project and believe I possess the skills and dedication necessary to excel in streamlining the setup process and enhancing documentation.

My background in database management, DevOps, and Docker aligns closely with the technical requirements of the project. I have extensive experience in automating deployment processes and creating scalable, containerized environments using Docker, which I believe will be invaluable in developing the streamlined installation scripts for Harmony. Additionally, my proficiency in debugging and troubleshooting will ensure that the setup process is robust, reliable, and user-friendly.

Furthermore, I have a strong track record of documentation improvement in previous projects. I understand the importance of clear, comprehensive documentation in facilitating user adoption and maintenance. Through my attention to detail and collaborative approach, I am confident in my ability to audit existing documentation, gather feedback from stakeholders, and create a detailed Wiki that addresses user needs and enhances the overall user experience.

NEGRAH-S commented 6 months ago

@Sybrand , how shall i reach out to you, have already dropped a connect req on LinkedIn. It would be great if you could give me your email for communication.

Sybrand commented 6 months ago

@Sybrand , how shall i reach out to you, have already dropped a connect req on LinkedIn. It would be great if you could give me your email for communication.

For DMP 2024 I can be reached on Discord - my user is sybrand.strauss

Sybrand commented 6 months ago

Hey @Sybrand @Ideonvn , I am eager to express my interest in contributing to the Harmony project and believe I possess the skills and dedication necessary to excel in streamlining the setup process and enhancing documentation.

My background in database management, DevOps, and Docker aligns closely with the technical requirements of the project. I have extensive experience in automating deployment processes and creating scalable, containerized environments using Docker, which I believe will be invaluable in developing the streamlined installation scripts for Harmony. Additionally, my proficiency in debugging and troubleshooting will ensure that the setup process is robust, reliable, and user-friendly.

Furthermore, I have a strong track record of documentation improvement in previous projects. I understand the importance of clear, comprehensive documentation in facilitating user adoption and maintenance. Through my attention to detail and collaborative approach, I am confident in my ability to audit existing documentation, gather feedback from stakeholders, and create a detailed Wiki that addresses user needs and enhances the overall user experience.

@DhruvLamba I look forward to seeing your proposal. Let me know if I you have any specific questions I can help with.

AbhimanyuSamagra commented 5 months ago

Do not ask process related questions about how to apply and who to contact in the above ticket. The only questions allowed are about technical aspects of the project itself. If you want help with the process, you can refer instructions listed on Unstop and any further queries can be taken up on our Discord channel titled DMP queries. Here's a Video Tutorial on how to submit a proposal for a project.

rohitkori commented 3 months ago

Weekly Learnings & Updates (To be filled by contributor)

Week 1

Sybrand commented 3 months ago

Weekly Goals (To be filled by mentor)

Week 1

Week 2

Week 3

Week 4

Week 5

Week 6

Week 7

. . . .

Week 12

Week 13

Week 14

Week 15