Our Inspiration

In high school, we used Telegram as our main method of mass communication for several classes and clubs (and . Whenever we wanted to organize a study group or outreach event, we found that when trying to coordinate the event, the details would become lost among general chat messages. It would also become tedious to try to keep track of which members to move into a second chat that was dedicated to that specific event.

When HackKnights rolled around, we decided that enough was enough. We knew that Telegram's Bot API is very conducive to development, and being somewhat inexperienced with javascript, we were excited to work with this. We hope that one day, this bot will be used by the next generation of students.

What Does SmartGroupBot Do?

In addition to sending invitation links to a main group chat from an event group, SmartGroupBot provides reminders leading up to the event at user generated intervals, notifies members when the event takes place, and tracks attendance at the event via member check-in.

How We Made It

We first defined our main goal: to make a more effective group planning experience by creating a separate group for each event. We then defined secondary goals: these included the ability to have reminders before the event and to check in at the event. We had half of the team work on basic commands and the other half work on deep linking. By Sunday morning, we had mostly finished these tasks. The majority of the remaining time was dedicated to debugging and adding a few minor commands.

The Challenges We Faced

The biggest challenge we ran into was the generation of share links while establishing the parsing of deep links. We make sure that the links were valid and be able to cut the resultant text into snippets of usable data. These data would be the basis of the invitation message. After failing to establish an invite link for the first several tries, we realized that the function we were using to get the link was broken, so we were forced to make a raw HTTP get request.

Accomplishments that we're proud of

We were really excited to complete such a powerful tool on a limited timeline. Normally, issues like the ones we saw with Telegram are virtually impossible to overcome, as very few resources are provided to general users accomplish such tasks. However, because of careful planning and resource management, we were able to complete this project. We're probably the most excited at the prospect of this bot helping students who are in the same place we were just a few years ago. More specifically, we are very proud of SmartGroupBot's ability to use deep linking, allowing us to pass data between the instances of the bot running on each chat. This is important because that data contains information such as the chat ID, which is paramount to moving members between chats and is the cornerstone of the entire project. At the same time, we are very proud of our new members for stepping up to the challenge of learning the syntax of both JavaScript and the Telegram/TeleBot API.

What We've Learned

Being inexperienced with Javascript, this event provided us with a great opportunity to develop our skills in both this language and in working with the Telegram API. While the more experienced programmers on our team have used GitHub before for other projects, our programming novices had very little experience with the platform. This provided a great opportunity to learn about an excellent collaborative programming tool. This mix of skill levels also taught us about establishing group dynamics in such a diverse group.

What's next for SmartGroupBot: A Telegram Bot

We would like to continue to develop SmartGroupBot's features to make group event coordination even easier. It is currently an official Telegram Bot, so it is available to users already, although are considering moving the hosting of this from Heroku to a larger scale server.

Built With

Share this project:

Updates