GSoC’21 | Score Lab — A fable on the community bonding period
In this blog, I will share my GSoC’21 community bonding experience with the SCoRe Lab community. A community bonding period exists to know more about the project idea, finalising the project milestones, tech stack and timeline. So let us begin, shall we?
What is my project, and precisely what’s its use?
My project aims to create an open-source Gitter Chatbot that could guide the new contributors with the community’s open-source projects. COOL!
It is so awesome to have a “live machine” that could listen to your queries, do some CRUD in the DB and get back to you with a pretty satisfactory answer — all these in just a few seconds. Unbelievable!
It is just like creating a JARVIS (can’t speak but yeah, almost XD), always waiting for your instructions. Having said that, did I mention that the chatbot idea also includes a spam detection feature. Yes, it does. It will also take action if someone tries to use unfair language and violates the community guidelines.
What have I achieved in the project so far?
The Gitter Chatbot project needs to be built from scratch, so my mentor and I did a lot of research, studied similar projects and collected a few resources to start the project. In addition, I created a google doc to track and analyse the project’s progress. Finally, my mentor created a Gitter channel and a Github repository for the project.
In the second week, we aimed to create few functions so that the chatbot can listen and send messages in the Gitter channel. It’s like adding senses to the bot. Its implementation in JS was very straight and simple, but wait; python is the king (queen?) of DataScience. So we decided to go with python because it comes with great support for ML libraries. Although after my initial research, it seemed challenging to connect the python bot with the API. We did some more research, and fortunately, my mentor found some open-source pip packages to communicate with the Gitter Stream API.
The second week became more challenging as I wanted to deploy the chatbot on the Heroku Cloud Platform. Although the deployment was straight, I struggled a lot to keep the chatbot awake in the channel’s inactivity time. Finally, after putting in so many hours and reading many of Heroku’s dyno documentation, I successfully achieved that. YAY!
After deploying the basic version of the bot, many community members were excited to see the bot’s first look. They appreciated the efforts, but the bot was still without any BRAIN!
At the end of the second week, we were complete with our initial milestones and project discussion. Now, it was time to start the main work. Yes, you guessed it right, the BRAIN of the chatbot!
It starts the third and final week of the community bonding period. Again, my mentor and I decided to implement our primary use case, i.e. recognise a new contributor and extract information from the chat.
I had a basic algorithm (without any ML involved) to implement this use case, but It could achieve better ML and NLP algorithms. So I first tested my approach one, creating data sets and finding the keywords in the message. This did well but less reliable on the unseen test cases. So I started learning NLP and ML algorithms to make a real chatbot BRAIN. This was it!
The Bot in action!
We have an open Gitter channel where we discuss project ideas and weekly updates of the project.
Also, make sure to check out the Gitter channel for the deployed Gitter chatbot.
How was my community bonding experience?
I told you pretty much about my achievement’s in the project. Now I will focus more on my personal experience with the SCoRe community. It all started with a warm welcome in the early kick-start meeting with my mentor. He guided me with the project setup and gave me all the necessary details about the project idea.
He told me what to do, planned the project goals and answered all my doubts very patiently. I was very excited to start my work under his mentorship. We do a meeting every weekend where I update him with my weekly progress, and he appreciates my every effort and corrects me on my mistakes. He also sets goals for the upcoming week. He always shares his own experience and gives me examples from his work to clear my confusions.
Apart from my mentor, the other community members, including my fellow GSoC developers, are very enthusiastic. They always help me If I need any. For example, when I shared my project idea (Gitter chatbot) with them, they were very excited to see something like this. They also help me in testing the bot through the Gitter channel. NICE!
I am delighted to have such an enthusiastic, helpful and inspiring community: — ).
What’s next?
I will start with coding the new algorithms, testing them and create some pull requests. Then, “simply”, I will make the chatbot’s BRAIN! XD