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.