How I made my first contribution @Frappe

Osaf Ali SayedOsaf Ali Sayed
2 min read

Contributing to open source has always been a goal of mine, but finding the right starting point was challenging. During my college years, despite learning development, I lacked the courage to make an open source contribution.

Recently, I joined Zenduty, a startup specializing in IT Service Management. At Zenduty, we heavily utilize Python for backend development, and JavaScript, React.JS, and Vite.JS for frontend work. This experience exposed me to various technologies like Docker, Docker Compose, and GitHub Actions, significantly boosting my confidence.

Motivated by this newfound confidence, I decided to make weekly open source contributions to various platforms.

Discovering Frappe

With a strong background in Django and DRF for backend, and React for frontend, I was ready for a new challenge. While searching for open source projects, a friend introduced me to Frappe. Their organization hosts a wealth of content, including ERPNext, a Learning Management System, and Bench, a terminal tool for interconnecting everything. The interconnected nature of these projects fascinated me.

Frappe primarily uses Python for backend development and their own Frappe framework, with Vue.JS for frontend. This meant I needed to familiarize myself with their framework before contributing. I began by exploring the "good first issues" in their repository and found a task to create a related courses component. A previous attempt at this task had been made but was incomplete.

Diving into Frappe and Vue.JS

I embarked on understanding how the Frappe backend operates and how Vue.JS differs from React.JS, particularly in component loading. Frappe's approach to database models and API requests is distinct from Django, with migrations managed through Bench.

With guidance from Jannat Patel, a product engineer at Frappe, I received valuable feedback on my pull request. My foundational knowledge of the Frappe framework and Vue.JS enabled me to implement the necessary changes smoothly.

Looking Ahead

I am now focused on submitting more pull requests to Frappe. My ultimate goal is to propose a feature for their Learning Management System. Achieving this would not only be a personal milestone but also contribute to a project that benefits others.

For those of you who are interested in the PR and the related issue you can find it here.

0
Subscribe to my newsletter

Read articles from Osaf Ali Sayed directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Osaf Ali Sayed
Osaf Ali Sayed

I'm a CSE Undergrad from IIIT Pune, pursuing full-stack development with focus on backend development. I work primarily with Django, FastAPI, and React, and enjoy building scalable systems that are well-tested and easy to maintain. I am currently interning at Zenduty, where I’ve improved API performance, built internal tools, and contributed to large codebases used by product and engineering teams. Outside of work, I actively contribute to open source most notably to Papra, Frappe LMS and Wagtail CMS. I’ve also built projects like AI Kaatib, an AI-powered blog generator, and GSorcerer, a GSoC issue finder.