GSoC’22: Insights from a Contributor’s Journey

GSoC’22: Insights from a Contributor’s Journey

by Sumit Kashyap (article written on Hashnode.dev)

Are you curious about the Google Summer of Code program? Wondering what it’s like to be a contributor to an open-source organization? In this blog post, I’ll be sharing my personal GSoC’22 journey with OpenFoodFacts and answering some basic questions to help you better understand my experience.

What is GSoC?

The Google Summer of Code is an annual program organized by Google to encourage students to contribute to open-source software. The program invites contributors from all over the world to apply for the program, and if selected, they are paired with mentors who guide them in contributing to the development of the project. The official GSoC website has well-written documentation with all the necessary information regarding the program.

Pre-GsoC

Selecting an organization to work with is the first step toward GSoC. With so many organizations participating every year, it can be confusing, but with a little research, you can find one that suits you.

I chose OpenFoodFacts as my preferred organization because its motive is to provide a better understanding of nutrition and its effects on the environment to food consumers, producers, and other entities. As a person interested in food and cooking, this drove me to choose OpenFoodFacts.

What Is OpenFoodFacts?

Open Food Facts is a global open database for food products. The database includes information about the ingredients, nutritional value, allergens, and other characteristics of food products. It is a collaborative project that aims to collect and share information about food products around the world. It is a platform for promoting transparency and awareness in the food industry.

GSoC Period

During my participation in the Google Summer of Code (GSoC), I worked on my initial project idea, the “Community Portal,” with my mentors Alex Garel and Pierre Slamich. However, after a few weeks of the coding phase, we realized that the project was too ambitious, as it aimed to develop a full-scale social media platform for contributors. Therefore, we decided to pivot and shift the scope of the project to my new idea, the “Facet Knowledge Panel.”

What is Facet Knowledge Panel?

It is an application that provides a set of informative and actionable items which are contextual to a specific facet. You might be thinking what does that means, let me explain to you if we break the word “Facet” and “Knowledge Panel”.

Facet

In the Open Food facts, you can think of facet as a filter where you can filter food products for “category”, “label”, “Eco-Score” etc.

All these items in “Explore products by” are facets that you can filter data.

Knowledge Panels

It is a feature that provides users with information about food products, these panels display information presented in an easy-to-read format that allows users to access important data about food products quickly.

An example of a Facet Knowledge Panel is the Snacks category, which includes various features such as Hunger Games, Last Edits, Data Quality, and Wikidata. Hunger Games is a series of mini-apps that allows users to contribute data to Open Food Facts. Last Edits displays the last edits made to a particular facet. Data Quality highlights issues that need to be resolved to calculate Nutri scores. Finally, Wikidata provides a link to Wikipedia and OpenStreetMap.

Goal and Achievement

  • Built an API using FastAPI to provide insightful data on OpenFoodFacts products, including “Lastedits” and “data quality”.
  • Implemented internationalization features using Gettext, enabling users to receive data in their native language.
  • Developed test suites to ensure the quality and functionality of the API.
  • Assisted in containerizing the project using Docker.

You can check the project on GitHub

Learning and Growth

  • Working with experienced developers to build the project from scratch, allowed me to learn valuable development skills and techniques.
  • Developing a deeper understanding of asynchronous APIs and concurrency, as the API was dependent on external and internal OpenFoodFacts APIs.
  • Learning new tools and concepts such as monkeypatching and Gettext, was essential to the success of the project and added to my development knowledge and skill set.

Conclusion

My Google Summer of Code journey with OpenFoodFacts was an incredible experience that helped me grow both personally and professionally. Although my initial project idea had to be scaled back, I was able to successfully complete my new project. Throughout this process, I had the opportunity to work with experienced developers and learn new tools and techniques.

Overall, this experience has enriched my programming skills and opened doors for future opportunities in open-source projects. I am grateful for the amazing people I met during this journey and the support of my mentors. If you are interested in participating in the Google Summer of Code program, I highly encourage you to do so. It is a fantastic opportunity to learn, grow, and make a positive impact in the open-source community. Thank you for reading my blog post, and please feel free to reach out to me with any questions or suggestions.