In the vast symphony of technology, there are moments when a new language finds its way into our hearts, resonating with the rhythm of innovation. My expedition into Glific through the Code 4 GovTech (C4GT) program not only bestowed upon me the opportunity to contribute to a remarkable open-source project but also introduced me to the enchanting world of Elixir.
First, let me start with a quick introduction about myself. My name is Aashi and I am currently an undergraduate student at National Institute of Technology, Jalandhar. My summer break is going on which ultimately led me to discover different programs to invest my time in.
It was in the midst of May when I discovered the Code 4 GovTech program. Always fascinated by the open-source community, I yearned to make a mark within it. However, I often faced the challenge of finding worthy projects to contribute to. That’s when I decided to participate in the Code 4 GovTech program, which presented a diverse range of different DPG projects and organizations. This program provided me with the opportunity to sharpen my skills and become an integral part of the ever-flourishing open-source community.
During my quest to find an organization to contribute to, I stumbled upon Glific—an open-source, WhatsApp-based, two-way communication platform designed to enable impactful programs to reach communities. I joined the Glific Discord server, and thus began my captivating journey with Glific and Elixir.
My initial task upon joining was to set up the backend and frontend repositories. As a Windows user at the time, this task proved even more challenging for me since the documentation primarily catered to Linux and Mac users. Nevertheless, with the assistance of my trusty companion ChatGPT, I overcame the obstacles and successfully set up the repositories after encountering a few errors. Throughout this process, the mentors in the Discord server were incredibly helpful and supportive, assisting me even with minor queries. With their guidance, I managed to set up the project on my machine. It was during this time that I made a decision which I had been procrastinating for a while—I migrated to Ubuntu as my operating system, which has proven invaluable ever since. I also contributed to the project by creating two pull requests in the readme file. These pull requests aimed to guide fellow contributors and prevent them from facing the same errors I encountered. One of my pull requests included documentation tailored to Windows users. You can find the links to my pull requests below:
Following that, I embarked on the next step of dockerizing the project to facilitate easy deployment. This task presented its fair share of challenges and errors. Although I had previously worked with Docker in tutorials, this was my first experience applying it to a real-world project. I encountered numerous errors during the process, and despite my best efforts, I struggled to resolve them. However, the learning experience gained from working on this task was invaluable. Despite the setbacks, I developed a deeper understanding of containerization and the complexities involved in deploying real-world applications using Docker.
Through collaborative efforts and with the guidance of mentors, we ultimately achieved successful Dockerization for the project. This collective endeavor not only resolved the errors I faced earlier but also provided me with a deeper comprehension of Docker and its applications in real-world scenarios, particularly when dealing with Elixir and Phoenix-based systems.
The subsequent task, which proved to be the most challenging of all, involved embracing a new language. Since the entire backend was built on Elixir, I took it upon myself to learn the language. I began solving exercises on Exercism, a platform recommended by mentors to familiarize myself with Elixir. I dedicated myself to solving 7-8 exercises per day, gradually developing a solid understanding of functional programming. I grew more comfortable with the syntax and delved deeper into fundamental concepts such as maps and enumerables. Additionally, we had daily standups at 10 pm IST, where we engaged in brainstorming sessions to tackle Elixir problems, further solidifying my understanding. Although this journey with Elixir is only at its inception, I am eager to explore numerous modules and concepts throughout my tenure of contributing to Glific.
Motivated by my progress and newfound expertise, I decided to propose a project idea: integrating a subscription-based billing system into the Glific project. I meticulously researched solutions based on Razorpay to seamlessly integrate it into the Elixir and Phoenix system. With the proposal in hand, I sought feedback from mentors before submitting it on Unstop. Subsequently, I continued my Elixir journey, patiently awaiting the results. During this time, I had a friendly interview that assessed my progress in Elixir and how well I adapted to the Glific codebase. And then, the moment I had eagerly awaited arrived—I was selected as one of the contributors to Glific under C4GT. I must admit, I was overjoyed and thrilled to see my name on the list. This opportunity has provided me with an auspicious start to my learning journey, and I am certain that the two months I spend contributing to Glific will yield abundant knowledge and significantly enhance my open-source profile. I eagerly anticipate this remarkable experience.
In closing, I would like to express my heartfelt gratitude to the mentors who have guided and supported me throughout this incredible journey. Their invaluable assistance and unwavering encouragement have played an instrumental role in shaping my growth and learning. I am truly grateful for their dedication and commitment to fostering a vibrant open-source community.
Looking ahead, I am filled with enthusiasm and a deep sense of purpose as I continue my contributions to Glific. The opportunity to work on this remarkable project, powered by the beauty of Elixir, fills me with excitement and a desire to make a meaningful impact. I am committed to pushing boundaries, exploring new possibilities, and collaborating with the brilliant minds within the Glific community.