Skip to content

silvermullet/oh-bot

Repository files navigation

Oh-bot - Your team's Office Hours Bot

silvermullet

The Oh-bot will help manage your team's office hours.

  • Set location and time for office hours on a per-team or individual basis.
  • Organizes and records who is intending on joining the team's office hours and what topics will be discussed
  • Provide insight into past office hours to help make improvements to services team provides

Present abilities

Oh-bot is able to...

Set your team's office hours

Sample Utterances
  • "SampleUtterances"
  • "Set office hours today"
  • "I would like to set office hours"
  • "Set office hours now"
  • "I need to set office hours"
  • "Help me set office hours"
  • "Damn it I forgot to set office hours"
  • "Let's set office hours"
  • "How about some office hours"
  • "Set office hours"

Retrieve office hours for a known team (Controlled by the Lex slot SetTeam)

Sample Utterances
  • "When is office hours"
  • "Look up office hours"
  • "When is office hours for data platform"
  • "When is office hours for a team"
  • "Are there office hours today"
  • "Where is office hours"
  • "Get office hours"
  • "Tell me about office hours"
  • "What are office hours"
  • "Lookup office hours"

Add discussion topic for a team's office hours for a given day

Sample Utterances
  • "Set topic for office hours"
  • "I have a something I want help with"
  • "I have an issue I want to work on"
  • "I would like to come to office hours"
  • "I have something to discuss at office hours"
  • "There is something I would like help on"
  • "Coming to office hours"
  • "I need help at office hours"
  • "Set topic"
  • "Topic to set"
  • "Add a discussion topic"

Lookup office hour discussion topics for a given day

Sample Utterances
  • "Tell me the topics"
  • "Look up discussion topics for"
  • "Look up discussion topics"
  • "What are the discussion topics"
  • "What are we talking about"
  • "Topics at office hours"
  • "What are we talking about at office hours"
  • "Who is coming"
  • "Lookup topic"

Video walkthrough

Oh-bot

Technology stack

AWS Lex Bot + Slack

Serverless.com framework driven setup

Python 3.6 AWS Lambda Functions

Dynamodb backend

Setup requirements

  • Install serverless npm install serverless
  • Install serverless-package-python-functions npm install --save serverless-package-python-functions
  • copy local_sample.yml to local.yml and update local.yml to use your Slack bot's auth token
  • Run serverless deploy
  • Review lex/full-configuration/oh-bot.json and import into your AWS with adjusted values for the SetTeam slot values

Lex configuration overview

Intents

  • AddDiscusionTopicOfficeHours
  • GetTeamsOfficeHours
  • LookupDiscussionTopics
  • SetTodaysOfficeHours

Slots

  • GetDiscussionTopic
  • SetTeam
  • OfficeHoursLocation

Dynamodb tables

  • oh-bot-{environment}
  • oh-bot-{environment}-topics

Local Development

Initial setup script will download latest DynamoDB local service

bash localdev_setup.sh

To run local DynamoDB on port 8000

java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb -inMemory