kairatomurbek2 / comedian

Daily stand up bot for Slack

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Comedian

This is a stand up bot for slack. The main goal of the project is a daily remote stand up meetings automation. There is a problem with stand up meetings offline way. People talk to each other and often they talk not about their plans, but about task specific things.

Coverage Status

Go Report Card MIT Licence

How can comedian help you to spend less time on the stand up meetings

First things first you need to start do daily meetings in slack. Create a channel for it. Then add this bot and ask your team to write messages with this template

  1. What I did yesterday(with tasks description)
  2. What I'm going to do today
  3. What problems I've faced.

The comedian will store it for you and give a convinient reports for you about stand ups.

Getting started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

mkdir -p $GOPATH/src/github.com/maddevsio/
cd $GOPATH/src/github.com/maddevsio/
git clone https://github.com/maddevsio/comedian

Create "app" in slack workspace: https://api.slack.com/apps In the drop-down list at the top select the created "app" In the menu, select "Slash Commands".

Create the following commands (Request URL for all "http: // <comedian_address> / commands"):

Name Hint Description
/comedianadd @user Adds a new standuper
/comedianaddadmin @user Adds a new admin
/comedianremove @user Removes a standuper
/comedianlist - Lists all standupers
/standuptimeset hh:mm Set standup time
/standuptime - Show standup time in current channel
/standuptimeremove - Delete standup time in current channel
/report_by_project channelID 2017-01-01 2017-01-31 gets all standups for specified project for time period
/report_by_user slackUserID 2017-01-01 2017-01-31 gets all standups for specified user for time period
/report_by_project_and_user project user 2017-01-01 2017-01-31 gets all standups for specified user in project for time period

Select "Bot users" in the menu. Create a new bot user.

Go to "OAuth & Permissions" Copy Bot User OAuth Access Token "xoxb-___________________"

Create .env file in your workspace and add the env variables from .env.example file. Change according to your needs.

Run:

make docker
docker-compose up

The roadmap

Bot

  • Store accepted messages to bot in the database
  • Add user for daily standup reminders with slash command
  • Remove user from daily standup reminder with slash command
  • Add standup time with slash command
  • Remove standup time with slash command
  • Remind user to write standup via private message
  • add a check when adding a user, if the stand-up time is not specified, write that you need to specify it
  • add a check when adding a stand-up time, that no one has yet been added
  • when deleting stand-up time, notify that in this chat there are users who write standups
  • Remind all users in channel to write standup with user's tag
  • duplicate the message about the standup in 30 minutes with tagging users who did not write standup
  • send a message to the manager at 5 pm that someone did not write the standup
  • Standup reports
    • all standups key username
    • all standups key project
    • all standups key username+project
  • Configure superusers with config file or env variables
  • Get all users in slack's organization and sync it with users in database
  • Make research: is it possible to show the certain commands to the certain user
  • Create a docker-compose.yml
  • Setup reminders when bot starts
  • Setup reminders when we add new reminder on a channel
  • Get standup messages without mentioning bot user
  • Set up multilang option for Comedian (En + Ru)
  • Get task worklogs from JIRA
  • Get data from Gitlab

Issues

Feel free to send pull requests. Also feel free to create issues.

License

MIT License

Copyright (c) 2017 Mad Devs

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

Daily stand up bot for Slack

License:MIT License


Languages

Language:Go 98.6%Language:Dockerfile 0.8%Language:Makefile 0.5%Language:Shell 0.1%