Text-based Assistant for Software Developers and Remote Teams

Robin Assistant cover image
Robin is a text-based assistant for Discord and Slack that helps developers interact with repositories and issue tracking systems.

Our Team

Kai-Chin Huang

Research Assistant

Kai is a fourth-year computer science major. His project responsibilities included the Slack portion of Robin and configuring OAuth flow.

Benjamin Liu

Research Assistant

Benjamin is a second-year computer science major. His project responsibilities included the Discord portion of Robin, API call optimization, and secure token storage.

Acknowledgements

We would like to thank the Northrop Grumman Foundation for sponsoring this project. Thank you to Professor Bruno C. da Silva for leading and mentoring us through this research project.

Robin-Slack Demo

Our Project's Digital Poster

Discord

If syntax is confusing or hard to remember, a text-based assistant may be inconvenient to use, which defeats its purpose. This was an issue present in the senior project I built upon. The first iteration of Robin would interpret plaintext as a command if it began with the specified prefix. The way plaintext was parsed also caused problems with parameters with multiple words. Now Robin uses Discord’s new Slash Command Interactions to allow ease of use by specifying parameters’ names, descriptions, and whether they are required or optional.

Command Menu

Project Abstract

Software development teams are highly dependent on source code platforms like GitHub, Bitbucket, and GitLab. These platforms have issue tracking systems that manage tasks during development and keep track of life cycles of applications. Using these systems creates lots of useful data and statistics, but some are easier to access than others. Operations for checking or changing information regarding these systems are not always convenient to perform as they are scattered in different locations. The goal of Robin, our text-based assistant, is to collect these tools in one place.

This project is building on a senior project and last year’s SURP voice-based assistant which was extended as a Master’s thesis. For many operations, using text is much more convenient than speaking and listening. For example, inputting usernames and outputting a list of issues. Robin is designed to be used on popular text platforms Discord and Slack.

OAuth Workflow

Robin uses OAuth to allow the bot to act on behalf of the user. OAuth has the benefit of being more secure because the application never needs a user’s actual credentials. When the user signs into Robin on GitHub, this means they trust it and a token is issued for Robin to use. Tokens can control the scope of access and can be revoked by the user

Slack

Slack uses Modals to guide the user through commands with multiple parameters. Modals can be used to present dynamic data like different choices in a dropdown menu. Type “/robin help” to see all available commands. Each message can be considered a block, and Robin can reply with markdown. After retrieving an issue, Robin’s reply message can contain buttons to make further actions. These behaviors can be observed in the video on our SURP webpage.

Command Menu

Share

Share on facebook
Share on twitter
Share on linkedin

Coronavirus Update and Resources