Voice Assistant for Software Developers and Team Meetings

smart home assistant
Robin is an intelligent voice assistant that lets software developers access repository statistics and execute workflows on GitHub.

Our Team

Chloe Hebert

Reserach Assistant

Chloe is a third year software engineering major. Her project responsibilities include designing and implementing Robin for Alexa platforms, improving implemented commands based on user feedback, and writing an automated test suite for Robin’s codebase.

Abhishu Rawka

RESERACH ASSISTANT

Abhishu is a senior majoring in software engineering. He is an international student from India. In his free time, Abhi likes to surf, hike, and listen to music. He is incredibly grateful for professor Bruno Da. Silva and their project sponsor Sprague for this opportunity. Abhishu was responsible for the Google Assistant side of Robin Teammate.

Acknowledgements

We would like to thank the Sprague Family Foundation for sponsoring this project. We would also like to thank our faculty advisor Dr. Bruno da Silva for the opportunity to contribute to an innovative project and for his support and guidance throughout the project.

Robin Demo

Our Project's Digital Poster

Project Abstract

Software developers often use GitHub to manage code version control, collaborate with other developers, and keep track of tasks for a project. Having access to project data is critical for software development teams to make informed and quick decisions, but finding this data can be difficult through GitHub’s web-based user interface. Our solution is to implement an intelligent voice assistant skill for software developers to run on well-known smart voice assistant platforms such as Amazon Alexa and Google Assistant.

Motivation

Software developers often use GitHub to manage code version control, collaborate with other developers, and keep track of tasks for a project.

Having access to project data is critical for software development teams to make informed and quick decisions, but finding this data can be difficult through GitHub’s web-based user interface. Furthermore, software repository data is only partially explored by GitHub and calculating project-development statistics based on this data by hand is time-consuming.

Our solution is to create a voice assistant that will let users access the same project information by speaking questions and commands aloud instead. While there are similar voice assistants in the market already, these applications either do not provide this service for GitHub specifically or the supported commands are curated for individual developers. A voice assistant geared towards both software developer teams and individuals using GitHub does not yet exist.

Software Architecture

The developer’s spoken phrase is processed by Alexa’s or Google’s Natural Language Understanding (NLU) and Automatic Speech Recognition (ASR) models. Google’s Diagflow and Alexa’s interaction model respectively then takes the spoken phrase and formats it into a JSON object with other phrase metadata. This object is then sent to our webhook hosted on the cloud. The user’s request maps to a specific command specified in the backend logic code, and this command will perform the requested GitHub API call. A response is formatted by the backend logic code, and this response is sent back to the developer to be spoken through the physical voice assistant device.

Completed Work

Robin has 18 fully implemented commands within an Alexa skill with customizable options catered towards either individual developers or developers working in teams. An automated test suite covering these commands will ensure these commands still work as the Alexa Node.js SDK changes. Developers can also gain access to a beta version of Robin on their Alexa device.

Future Robin commands will be developed on Voiceflow, a platform that allows cross-compilation to Google Assistant and Alexa from one codebase.

Use Case

Robin can assist a software development team at all stages of development. Consider a dialog between a developer and Robin as the developer reviews the previous sprint and decides which backlog features should be implemented next:

Developer: What are the issues with the label “backlog”?

Robin: The issues with the label “backlog” are issue numbers 92 and 93

When the developer realizes one of those issues was resolved, they close the issue.

Developer: Close issue number 92

The developer also decides to assign a backlog task to another teammate.

Developer: Assign bcdasilv to issue number 93

Robin: The issue was successfully updated

The team can also get statistics like the average time to complete a code review for the last sprint.

Developer: What is the median pull request review time over the last two weeks?

Robin: The median pull request review time is 3.9 days, or 93.6 hours

Since the backlog is not far behind schedule and the median PR review time is still high, the developer decided to do a code review session on an open PR.

Coronavirus Update and Resources