C

Codery - Zulip Bot

Codery gives you all info about Competivitive Coding contests, Hackathons, Programming courses, jobs and more directly on Zulip!

C

Codery - Zulip Bot

Codery gives you all info about Competivitive Coding contests, Hackathons, Programming courses, jobs and more directly on Zulip!

The problem Codery - Zulip Bot solves

Zulip’s topic-based threading model solves several problems.Contributors in any time zone can send messages and expect to get a reply and have an effective conversation with the rest of the community.
Zulip’s topic-based theading helps include part-time contributors in two major ways. First, they can easily browse what conversations happened while they were away from the community, and prioritize which conversations to read now, skip, or read later . Second, Zulip makes it easy for them to have public conversations with participation from maintainers and other contributors , allowing them to fully participate in the work of the community.
Maintainers can effectively participate in a Zulip community without being continuously online. Using Zulip’s keyboard shortcuts, it’s extremely efficient to inspect every potentially relevant thread and reply wherever one’s feedback is useful, and replying hours after a question was asked is still a good contributor experience. Maintainers can do multi-hour sessions of focus work while still being available to their community.
During the workflow, contribitors need to go through a lot of data for tasks. Codery is a bot focused on competitive programming. so if there is a channel for competitive programming or something similar, like gsoc, contributors have to go another site, search and then recommend courses. Sometimes they want to check the latest hackathons that are happening around the world and form a team to participate. Sometime they wanna check in their conversation. With Codery, they dont even need to leave Zulip. They can directly get the list of contests and hackathons on the chat. If someone wants to learn a new technology, they can get the course too, directly from zulip. They can check the latest news and find the meaning of technical terms on zulip itself.

Challenges we ran into

We worked with several APIs. Setting up the right envioronment and getting used to handling the Zulip API was the first challenge. It took us some time to figure it out and get the workflow setup for testing. We tested each and every action we developed.
The Udemy Affiliate API was a little tricky to handle, but we worked our way through it. Even the Github jobs API was used. We had to scrape data from several sites including Codechef, Hackerrank, Hackerearth, stopstalk and Leetcode.
Also, APIs were not available for all types of data we wanted. We spent a lot of time going through and trying out several public APIs. Lots of them were not working. Even if they were, they were returning the wrong result. We wanted to use a trusted API source for every data we give you, so we went through a lot of resources and verified their credibilty. We have results on our bot only from trusted sources like Udemy and Github Jobs APIs.
We faced problems while scraping the data as well. Stackoverflow was a saviour during this time. Our parser returned an empty table several times. We changed our approach and tried lxml instead. It worked out. Howerever the data format was not upto the mark. We also wanted to make sure that even if the formatting of the website changes, the bot continues to function properly. So we changes our approach and used selenium instead to get the data. Finally that worked and gave us the results that we wanted to achieve. The fornatting of the data was also upto the mark.

Discussion