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:
- Allowing events to have projects and tasks, which are used for the organization of the event
- Allow assigning of volunteers to tasks and their tracking
- Adding registrations and check-in functionality for events
- Automatic tag generation for event attendees
- Anonymous feedback system
- Event statistics and visualizations for the event data
In addition to achieving these goals, I had also worked with two other short term deliverables that are worth mentioning:
- Updating the UI of the Talawa Admin portal to the designs developed as a part of the simultaneously running
Admin UI Redesign
project. - Upgration of the backend repository from
Apollo Server 2
toApollo Server 4
to prevent blocking updates to the backend. (I had great help in this due to my fellow contributor, Kanishka Bansode!)
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)
- Improved Event Management: Introduce event projects, tasks, registrations and check-ins
- Apollo V4 Migration
- Feedback Management
- Add Field Level Resolvers for Tasks
- Resolver Compostion
- Change Maximum Feedback Score from 10 to 5
Frontend changes (Talawa Admin)
- Code Quality: Better Naming of Hook Data
- UI Screens for Event Projects, Tasks and Volunteer Management
- Feedback Management
- Add Side Navigation to Event Dashboard
- Change Maximum Feedback Score from 10 to 5
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:
- Standardization and improvement of the UI screens in the Event Dashboard
- Incorporation of more statistics related to volunteers, completions and attendees
- Creation of a pipeline to allow users to fill feedback from the mobile app
- Incorporating the notification service with Talawa Admin and Talawa API repositories
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!