More than 50,000 students around the world register for GSoC every year, and of those who submit a proposal, only 1200 are accepted!
I got selected by Rocket.Chat:
Rocket.Chat is the ultimate communication platform provider for teams — an open-sourced Slack with a different business model.
It offers web and phone-based communication platforms, integrated omnichannel features, and even has an app store of its own where you can publish and monetize apps that run on Rocket.Chat!
Around December, I started going through organizations selected into GSoC the past year and shortlisting them based on criteria - setting out criteria is important.
My plan was to select 3 organizations and then shortlist one or two out of them further as time progressed. Have a look at my criteria:
After about a week, I had shortlisted CircuitVerse, CloudCV, and of course, Rocket.Chat. Out of these three, Rocket.Chat matched my requirements the most.
Rocket.Chat has this amazing GSoC contribution leaderboard (started by a past GSoCer at Rocket.Chat) that counts how many contributions every student is making across all Rocket.Chat repositories. The top-10 contributors get a chance for a one-on-one meetup with Gabriel Engel, the Founder and CEO of Rocket.Chat.
I joined the #gsoc2021 channel and started making smaller contributions to the Rocket.Chat's main repository at first. Communicating with Rocketeers led me to start working on the GSoC contribution leaderboard repository in a team of four.
I worked on filtering contributors by time, building an inclusion/exclusion list where the admin would select which Rocket.Chat repositories to consider when counting contributions, dockerizing the application and fixing bugs.
My contributions to this repository can be found here.
After deploying the GSoC Contribution Leaderboard, we started working on a more ambitious project in January — RC4Community!
RC4Community, a project we built from scratch, was set to be a one-stop collaboration platform for teams using Git, in other words, Rocket.Chat’s own Gitter. Our power team (as we called ourselves :P) worked super-hard for the next 3 months to give life to RC4Community.
I worked specifically on the frontend and backend for creating channels and communities on a Rocket.Chat server from the RC4Community client, providing real-time user statistics — that is, real-time reporting of when users were online or away, repository information for every channel linked to a repository, CRUD operations for custom GitHub webhooks for repositories, embed badges for direct links to RC4Community rooms, dockerizing the application and a demo mode within RC4Community that set the path for what was to come.
My contributions to RC4Community can be found here.
Around the end of March, I started developing an interest in Rocket.Chat Apps. These were Typescript coded (which I was unfamiliar with back then) and worked within the ecosystem.
I had an idea that I thought was really cool. What if there was an app bot that could fetch memes from Reddit and post it directly within a Rocket.Chat room? The idea for MemeBuddy was born. It is Discord’s equivalent to DankMemer (installed on 5 million Discord servers) for Rocket.Chat.
I extended MemeBuddy to not only work within the Rocket.Chat team collaboration platform but also within their LiveChat Widget used by millions of users on a daily basis. Find MemeBuddy on the Rocket.Chat Apps Marketplace!
The repository for MemeBuddy can be found here.
Every year Rocket.Chat publishes its ideas list for GSoC. I was particularly interested in the Poll App Mega Extensions project (since I was fascinated with apps) and the Community Collaboration Platform: Improvements project (this is RC4Community, in case you’re wondering :P).
I got in touch with mentors of both projects through Rocket.Chat rooms are made specifically for discussion about each project idea. The mentors at Rocket.Chat were truly welcoming and made every effort to resolve doubts and confusion regarding ideas.
I made sure to reciprocate mentors’ efforts by building an MVP for a few features within the project ideas and get feedback over it. I followed a similar approach while writing my proposal. I read through the proposals of past GSoCers at Rocket.Chat and gleaned the important stuff I could use in mine. I made sure to get feedback after my first and final drafts from my mentors.
Getting feedback from mentors is of utmost importance. Make sure you leave enough time for them to review your proposal.
I included Figma designs and code snippets for implementation details. I tried making my proposal as detailed and substance-driven as possible. In the timeline section I made sure to give a week-by-week estimate of what I would do.
By the end of the application period, I submitted two proposals — one for the Poll App (31 pages!) and the other for the RC4Community project (18 pages). I’ll share links to both of my proposals along with Figma files later in this blog series.
My Poll App Mega Extensions proposal got accepted! (good observation if you already saw that coming in the acceptance mail).
The Poll App is the numero uno among the most popular Rocket.Chat Apps. My mission during GSoC is to revamp the App to match it with its competitors (Polly.ai, Mentimeter, Kahoot!) by providing a truck-load of features.
During the GSoC period, I’ll work with my mentor to extend the Poll App through improved visualizations and additional functionalities.
Like what I do? Help me pull my next all-nighter. Consider buying me a coffee.🥤
Previously published here.