Skip to main content

4 posts tagged with "outreachy"

View All Tags

· 3 min read
Harsh Mishra

Moja global is excited to announce the selection of two Outreachy interns working to support our mission in developing open-source Monitoring, Reporting and Verifying (MRV) software for forestry, agriculture and other land use (AFOLU) sectors.

Outreachy provides open-source internships to underrepresented groups in the technology industry. Through Outreachy, we can provide a platform for our interns to learn about our open-source software and gain experience in the industry while making viable contributions to the open-source community.

Project

Moja global participated in the May 2022 Outreachy internships with the project Research data sources for carbon sequestration in forests. The project aims to develop a pilot project to monitor the effect of forest management practices around the world while supporting forest owners, stakeholders, and policymakers. The interns will use various forest management indicators and a representative sample of the ecosystem and climatic conditions to develop an open-source workflow for assessing ecological conditions in forests around the world.

They will also be developing a semi-automated, FLINT-based workflow to run a unique FLINT simulation of forest dynamics for each location. The interns will also be responsible for publishing their findings openly on our repositories, with editorial support from the moja global Technical Steering Committee.

Based on the work developed and the other contributions, we selected two interns: Kateryna Derhaus and Ankita Sharma.

Outreachy Intern #1: Kateryna Derhaus

Picture of Kateryna. Kateryna is the Outreachy 2021 Intern from moja global

Kateryna is a Computer Engineering major at Ankara University, Turkey. Her interest lies in data analytics, and she enjoys exploring new technologies and automating some of her daily routines. Her desire to contribute and impact the world she lives in led her to apply to Outreachy. She found the moja global project a perfect match for her interests, and by the end of the contribution period, she was sure about her decision. Her mission is to make a positive change, work on a great variety of existing projects and be a part of the welcoming community at moja global.

Outreachy Intern #2: Ankita Sharma

Picture of Ankita. Ankita is the Outreachy 2021 Intern from moja global

Ankita is currently pursuing a Bachelor of Technology in Electronics and Communication from the International Institute of Information Technology, Naya Raipur, India. She found an early-career interest in Computer Science and always wanted to see how real-life development works in an organization which led her to open-source development. She learned about Outreachy while searching for open source opportunities and discovered the moja global organization and found the project very interesting. After contributing during the contribution period, she is excited to work for the common goal with the moja global community!

We want to thank the Software Freedom Conservancy for running the Outreachy internships. Welcome, Kateryna and Ankita to the Outreachy Internships! Thanks for your interest, and we hope it will be a great learning experience for all of you!

How to get involved?

Moja global hosts mentorship programs for students and professionals to learn more about open-source software and get involved in the open-source community. We are looking for students and professionals to join us in our mentorship programs. If you are interested in learning more about open-source software, or if you are interested in getting involved in the open-source community, please join our Slack community.

To know more about the mentorship programs we participate in, have a look at our mentorship page.

· 7 min read
Asmi Jafar

I started my open source journey as an Outreachy intern with moja global. I was a beginner in the ways of open source development before I started contributing to the moja global community. I was selected as an Outreachy intern with the moja global community and received an opportunity to learn and implement new technologies. I had never participated in any open-source program before, but Outreachy provided me with a platform to showcase my expertise and gain new skills.

I started contributing by fixing good first issues at moja global while learning more about various projects and ecosystems. Later, I contributed to the Community Website by adding multiple new features and bug fixes. One of my significant contributions was developing the teams' page, which displays all the moja global contributors on the Community Website. Lastly, I have finished all the tasks given to participants to showcase their skills during my Outreachy contribution period.

Over the past three months, I have worked with Harsh Mishra on implementing Continuous Integration and Delivery (CI/CD) pipelines across the moja global repositories and centralizing the Moja Global docker images on the GitHub Container Registry. Along with it, I worked with Anthony Kwaje on the FLINT Reporting Tool while improving and delivering Java-based microservices! This blog would be documenting my experience and my project along with the key goals and metrics achieved.

About the project

Moja Global is a non-profit, collaborative project that brings together a community of experts to develop open-source software to help users accurately and affordably estimate greenhouse gas emissions and removals from forestry, agriculture, and other land uses (AFOLU). The flagship software is FLINT, a second-generation tool aimed to facilitate the implementation and operation of land sector emissions estimation systems worldwide. FLINT provides a framework to progressively develop MRV-related systems, data, and capacities.

Moja global's FLINT Reporting tool provides business intelligence for analyzing and transforming FLINT output databases into helpful information and outputs. The goal of my project was to implement the CI/CD pipelines at Moja global and implement the framework for reproducible research.

The project focuses on the FLINT reporting tool, its maintenance, and assisting in making it more user-friendly. I was also involved in implementing the CI/CD pipelines for the reporting tool using GitHub Actions and making it deployment ready. A significant part of the project also targets centralizing and migrating the docker images across the community GitHub Container Repository.

FLINT Reporting Tool System and Purpose
FLINT Reporting Tool System and Purpose

Project outcomes

Understanding FLINT ecosystem

The FLINT is considered as the framework itself - it doesn't do much unless we attach modules to it and make it an implementation. FLINT implementations extend the FLINT framework, and their respective images extend the FLINT base image. In our case for the FLINT implementation image, we have used the SLEEK (Standard Land emissions and extractions of Kenya) implementation. The outputs are used as the FLINT application image for the Reporting Tool.

Describing how the FLINT Images Work
Describing how the FLINT Images Work

Centralizing the Docker images

Previously, the moja global images were published on the DockerHub, but it wasn’t maintained for a long time. No continuous integration workflows were implemented; Hence the images were not updated for the past couple of years. If a user wanted to use the images, they would need to build it locally, and the chances of a code change breaking something were relatively high.

This was noticed in the FLINT Cloud and the FLINT Reporting tool, where the images were not being updated with incremental code changes. To tackle this, workflows were developed to build and publish all the images using GitHub Actions to the GitHub Container Registry. Now, Moja Global has over 30 packages published on the GitHub Container Registry. It has increased the uniformity and accessibility of our images across the community.

Moja global GitHub Container Registry Packages
Moja global GitHub Container Registry Packages

Maintenance of the FLINT Reporting tool

I further worked on maintaining the FLINT Reporting tool and containerizing the client and various microservices. I also worked on implementing the CI/CD pipelines and workflows for over 31 microservices including the client interface, while publishing the images on the GitHub Container Registry. The build process for the microservices workflow took more than 4 minutes initially and was later optimized to be 18x faster by using Docker caching.

Reporting tool CI/CD workflow
Reporting tool CI/CD workflow

Automate FLINT Reporting tool setup

The functionality of the Reporting Tool is based on a Microservice-based architecture. It was inspired by the many benefits that the architecture provides; the primary motivation was the need to scale different parts of the system independent of each other. It comprises over 31 microservices, with Spring Webflux as the chosen framework to implement the microservices. The Reporting Tool’s user interface is implemented using Angular, which blends beautifully with the rest of the microservices.

The functionality of the Reporting Tool is based on a Microservice-based architecture. It was inspired by the many benefits that the architecture provides; the primary motivation was the need to scale different parts of the system independent of each other. It comprises over 31 microservices, with Spring Webflux as the chosen framework to implement the microservices. The Reporting Tool’s user interface is implemented using Angular, which blends beautifully with the rest of the microservices.

The Reporting Tool system hosts various setup scripts that have been designed for ease of environment setup. We have streamlined and automated the process by creating one superscript for all the scripts, making the process very feasible and developer-friendly.

The Reporting Tool’s Database hosts all the data tables needed by the Reporting Tool that are not already a part of the FLINT’s Flux Output Database. PostgreSQL has been used for the Database. We have also streamlined deploying each service on the Kubernetes cluster by updating and rectifying the Helm Charts. Let's check out a demonstration of the Reporting Tool!

Reporting Tool Microservices up and running!
Reporting Tool Microservices up and running!
Reporting Tool Client Interface!
Reporting Tool Client Interface

Project learnings

The Outreachy internship and my participation with the moja global were very fruitful, and I have learned many things during the process. It also increased my learning ability and efficiency and helped me understand how I can use my expertise to execute issues during the production stage of an application. I have also learned a great deal about communication, navigating open-source organizations, and finding areas to plug in your contributions.

The skills that I have gained while working on the project include:

  • Continuous integration and Continuous Delivery
  • GitHub Actions
  • Docker
  • Kubernetes, Helm Charts
  • Spring Boot
  • Angular

Acknowledgement

My experience as a beginner open-source developer and then as an intern with the moja global community was terrific. I learned a lot of things about the open-source ecosystem and developed my abilities to become a sound software engineer shortly.

I want to thank all the maintainers and mentors of the moja global community for helping me out during my internship. Special thanks to my mentors Harsh Mishra and Anthony Kwaje for helping me out throughout the process. Interacting with Harsh in 1:1 meetings has helped upscale my skills. And under his superintendence, I have learned about a significant deal of things as he has provided me with many good resources for learning and implementation.

It was a great experience working with Anthony and getting to know about the structure of the Project. He explained things so well with their execution. I would also like to thank my co-intern Simple Shell for his contributions and help.

Lastly, I want to extend my gratitude to the moja global community and will be mentoring for the upcoming Google Summer of Code 2022. I want to thank Andrew O'Reilly-Nugent and Harsh Mishra for believing in me and suggesting my profile being a mentor. I will cherish my experience as an intern with moja global life-long as I continue to learn and grow in the community.

· 3 min read
Harsh Mishra

Moja global is excited to announce that it is participating in Google Summer of Code 2022 as a mentoring organization. It will be the second time that Moja global would be participating in Google Summer of Code, and it will be the first time that Moja global is participating in Google Summer of Code as an individual organization. For the past two years, moja global hosted mentorship for over 17 students across various programs, towards a common idea: Supporting ambitious climate action by developing open-source software to help users accurately and affordably estimate greenhouse gas emissions and removals from forestry, agriculture and other land uses (AFOLU).

Moja global's participation in Google Summer of Code 2022

About Google Summer of Code

Google Summer of Code is an annual program by Google, which provides an opportunity to students and professionals who are looking to get started with open-source development. Quoting Google Open Source's blog on Expanding Google Summer of Code in 2022:

At its heart, GSoC is a mentorship program where people interested in learning more about open source are welcomed into our open source communities by excited mentors ready to help them learn and grow as developers. The goal is to have these new contributors stay involved in open source communities long after their Google Summer of Code program is over.

Moja global participated in Google Summer of Code 2020 under the Digital Impact Alliance where three students were mentored by moja global's mentors and contributors and completed the Google Summer of Code program. This year we are planning to make this a bigger participation by having more projects, more mentors and more students!

Projects in Google Summer of Code

This year we are proposing to have the following projects in Google Summer of Code:

As the projects have been announced, we expect potential GSoC participants to join the respective working groups, engage with the mentors and fellow contributors over Slack channels, and submit their project proposals once the application window opens.

How do I apply?

We recommend checking out the Google Summer of Code Contributor guide to getting started. We encourage the potential GSoC participants to join our Slack workspace and join our upcoming working group meetings.

The application window opens on April 4, 2022. However, we want to work with potential student developers before GSoC starts. All the project ideas have a small task associated with them which you can find under the First steps section. The tasks are as simple as setting the project, running a user story and sharing your findings. Implementing these steps are a requirement to apply, hence please provide a short summary of your findings in your GSoC project proposal.

For more updates, please sign-up for the Google Summer of Code mailing lists.

· 4 min read
Harsh Mishra

Moja global is excited to announce the selection of three Outreachy interns working to support our mission in developing open-source Monitoring, Reporting and Verifying (MRV) software for forestry, agriculture and other land use (AFOLU) sectors.

Outreachy provides open-source internships to under-represented groups in the technology industry. Through Outreachy, we can provide a platform for our interns to learn about our open-source software and gain experience in the industry while making viable contributions to the open-source community.

Moja global participated in the December 2021 Outreachy internships with the project Climate change mitigation: entending models of forest carbon pools to new countries. The project aims for the following:

  • Development of FLINT module to account for the dynamics of carbon from forest living biomass into dead organic matter pools (DOM).
  • Implement continuous integration and deployment pipelines for FLINT Reporting and the other projects in the moja global ecosystem.
  • Developing and documenting a framework to ensure long-term reproducibility of Python-based data analysis on moja global datasets.

We received 9 community applications during the contribution phase, out of which 8 submitted their final applications. Most of them were able to complete their good first issues successfully and completed their first task. The task involved analyzing moja global datasets from our Land Sector datasets repo and using data analysis tools to prepare an exploratory report. We would like to thank all the contributors who worked on this project and we hope that they will be able to contribute to the future of moja global.

Based on the work developed and the other contributions, we selected three interns: David Guevara-Apaza, Simple Shell and Asmi Jafar.

Outreachy Intern #1: David Guevara-Apaza

Picture of David. David is the Outreachy 2021 Intern from moja global

David Guevara-Apaza is from Cusco, Peru and has recently graduated in Biology. He holds a passion for computational biology and AI in topics related to conservation, biodiversity and bioinformatics. His interest gave him the motivation to apply for Outreachy Internships. He hopes to use this opportunity to keep working on environmental initiatives using data analysis, modelling and technology as a potential tool to enrich projects and get interdisciplinary works to another level.

Outreachy Intern #2: Simple Shell

Picture of Simple Shell. Simple Shell is the Outreachy 2021 Intern from moja global

Simple Shell hails from Cameroon and is based in the city of Dschang. He loves every aspect of tech especially coding and data analysis. He has a profound interest in developing the world by contributing to projects to curb environmental and societal ills.

Outreachy Intern #3: Asmi Jafar

Picture of Asmi Jafar. Asmi is the Outreachy 2021 Intern from moja global

Asmi Jafar is a Computer Science graduate from Aligarh Muslim University, India. She is profoundly influenced by technology and the various ways she can use it to express art. She is quite interested in web development and research and is curious to learn and contribute to projects. Her interest in moja global came through knowing about its projects and future goals. She also loves reading and painting, and she quotes one of her favourite lines from a book titled: The Last Lecture:

The Brick walls are there for a reason, they are not there to keep us out. The brick walls are there to give us a chance to show how badly we want something.

We want to thank the Software Freedom Conservancy for running the Outreachy internships. Welcome, David, Asmi and Simple Shell to the Outreachy Internships! Thanks for your interest, and we hope it will be a great learning experience for all of you!

How to get involved?

Moja global hosts mentorship programs for students and professionals to learn more about open-source software and get involved in the open-source community. We are looking for students and professionals to join us in our mentorship programs. If you are interested in learning more about open-source software, or if you are interested in getting involved in the open-source community, please join our Slack community.

To know more about the mentorship programs we participate in, have a look at our mentorship page.