Hobby project

ProtoBuild Bot

BRIEF: A friend asked me if I could make something to notify him that a new Windows build is available. It's all started here.

Design choices

And here we are, a Telegram bot... yes, you heard it perfectly, it's a chatbot. But why this choice? Well, consider this: he wanted to be notified for a new build, nothing less, nothing more. Is anything better than a chatbot for this particular problem? Build a website and you have notifications issues (e.g. browser compatibility), build a program and you have platform dependency problem. Also, both are overkill anyway and they require a lot of time, so Telegram was the only feasible option here.


Chatbot style

Initially, it was a command-based bot, that is, you send commands starting with a trailing slash, and the bot replies. But we aren't robots, aren't we? Anyway, it may have saved developing time but, surely it would be a waste of time for the end-user. And that means poor user experience. After a discussion with the target user and some thought I figured that the best design was to use Inline Keyboards. It's a Telegram feature that lets you attach buttons to a message bubble. So, it's easy to use (no commands mistake!) and fast (you don't have to type almost anything). The bot proposes you a slightly different button array depending on what kind of user are (If you are 'normal' you may want to receive notifications and to check old ones, if you are a mod you may also want to force for searches in a particular time). And that's the user-role.


Main features

  • Search: Although the bot has the time scheduled for automatic search, the user can do a manual search anytime

  • Updates: The user can review current updates build for each device family

  • Notifications: The user can select or deselect the device family he/she's interested for receiving notifications


Screenshots (Administrator role)

ProtoBuildBot start page, updates database page, notifications page, search page

Demo & Download

The bot is private at the moment but you can take a look at the source code here.