Skip to main content

GSoC 2023: Completion Report

Image of the author

Eshaan Aggarwal@EshaanAgg

Hey! I am Eshaan Aggarwal and I was fortunate enough to be selected into the prestigious GSoC (Google Summer of Code) 2023 under the Palisadoes Foundation. I have worked on the Improving Event Management in Talawa Admin for the last 5 months, and am very glad to annouce it’s culmination and successful completion! Here is a brief overview of the work I had done during this period.

TLDR. Give me a bulleted summary please…

As my project had the primary scope of adding various event management capabilities to the Talawa ecosystem, I had worked on the both the backend and frontend for providing the support for the following functionalities:

In addition to achieving these goals, I had also worked with two other short term deliverables that are worth mentioning:

All of these changes were accompanied by 100% test coverage as per the contribution policy of the Talawa projects!

In all, this project has greatly expanded the event management capabilities of the Talawa Admin as well as the Talawa API, enabling the Palisadoes Foundation to be a step closer to devloping a MVP that can be used by communities globally.

Enough talk. Show me the code!

The following is an exhaustive list of the pull requests that I had made as a part of the GSoC project, and they show the changes that I have made to the project over time:

Backend changes (Talawa API)

Frontend changes (Talawa Admin)

All of the changes that were made can be tracked with the help of the progress videos that were made during the project timeline on the official YouTube channel of the Palisadoes Foundation:

It wasn’t a smooth ride, but I learn’t a lot

The project was nothing short of an adventourous ride, with some unexpected problems running in my way along the way. One of the biggest one was writing comprehensive frontend tests using React Testing Library. Since we were using components from multiple libraries, they often didn’t go together well out of the box, and required a deal of mocking and stubbing to ensure that their compliance. This project has made me realize that I am not as great as a React wizard as I thought myself to be, but I certainly have made great progress by the virtue of this project on that path! Callbacks, hooks, reducers, store, providers, contexts? Bring them on.

I also struggled with managing such a huge database at the begining, and augmenting it in a way that is sustainable and leaves scope for additional features was something that was definitely non-trvial. After a couple of wrong attempts and re-writes, I was introduced to normalization theory and related database design patterns, which helped me to design the backend in a professional and scalable manner. Instead of embedding frequently accessed relational objects into other documents, I migrated almost all of the codebase to use realational tables and joins to fetch data. You can refer to this discussion if you want to read about this approach and its inspiration in greater detail.

So what more can be done?

The project has some parts that can be worked upon in the upcoming terms to ensure that the added fucnctionality reaches it full potential:

I look forward to work on the same even after my GSOC is complete!

A quick conclusion and vote of thanks

I am proud of the work I have accomplished during the GSoC 2023 program, and I would like to express my gratitude to Dominic Mills and Peter Harrison sir for their guidance and support throughout this journey. They were always available for me, and provided me a supportive and understanding enviornment which allowed me to finish my project, while managing all my other commitments.

This experience has not only enhanced my technical skills but also taught me valuable lessons about project management and collaboration in an open-source community. I am excited to continue contributing to the Palisadoes Foundation and the open-source community in the future.

Thank you for this incredible opportunity. Cheers!