Giter VIP home page Giter VIP logo

heyemoji's Introduction

heyemoji ๐Ÿ† ๐Ÿ‘ โญ

Docker Cloud Build Status Go Report Card Doc License

The heyemoji bot is a self-hosted slack reward system that allows team members to recognize eachother for anything awesome they may have done. This is accomplished by mentioning a user's slack @username in a channel along with a pre-configured reward emoji and an optional description of what they did. The emoji points bestowed to users can be tracked via leaderboards.

Table of Contents

Basic Usage

Give a single user emoji points

Great job filling out those TPS reports @michael.bolton! โญ

Give multiple users emoji points

Thanks @michael.bolton and @samir for coming in this weekend! โญ

Give multiple emojis to a user

Score! @petergibbons found my red stapler! โญ ๐Ÿ† ๐Ÿ‘ ๐Ÿ‘

Bot Commands

Name Description
leaderboard <day|week|month|year> see the top 10 people on your leaderboard
points see how many emoji points you have left to give
help get help with how to send recognition emoji

Setup

  1. Browse to https://api.slack.com/apps?new_classic_app=1
  2. Assign a name and workspace to your new Slack Bot Application
  3. Basic Information > Set display name and icon
  4. App Home > Add Legacy Bot User
  5. OAuth & Permissions > Install App to Workspace
  6. Copy your Bot User OAuth Access Token for your HEY_SLACK_API_TOKEN
  7. Run heyemoji specifying the above token! ๐ŸŽ‰

Configuration

ENV Var Default Required Note
HEY_BOT_NAME heyemoji No The display name of the heyemoji bot
HEY_DATABASE_PATH ./data/ No The directory that the database files should be written to
HEY_SLACK_TOKEN Yes The API tokens for the Slack API
HEY_SLACK_EMOJI star:1 No Comma delimited set of emoji "name:value" pairs
HEY_SLACK_DAILY_CAP 5 No The max number of emoji points that can be given out in a day
HEY_WEBSOCKET_PORT 3334 No Port that the Slack RTM client will listen on

Specifying Custom Reward Emoji

The HEY_SLACK_EMOJI setting lets you specify multiple different reward emoji as well as different point values for each. So, if you wanted the following emoji and reward values:

Emoji Value
โญ 1
๐Ÿ‘ 2
๐Ÿ† 3

You would specify the HEY_SLACK_EMOJI as: star:1,clap:2,trophy:3

heyemoji's People

Contributors

mickmcgrath13 avatar mmcdole avatar pradeepnnv avatar yeshwanthkpentakota avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

heyemoji's Issues

Interactive Leaderboard Command

It would be nice if the leaderboard command asked for a dropdown, which then had selections for different time periods (day, week, month, year).

Right now you have to provide the timespam as part of the command.

image

Interactive Slack App Home

Slack Apps can have a "Home" tab.

image

It would be nice if HeyEmoji showed a home screen with an interactive leaderboard (defaulted to month).

Create Interactive Slack Bot "Home"

Slack Apps can have a "Home" tab.

image

It would be nice if HeyEmoji showed a home screen with an interactive leaderboard (defaulted to month).

Feature: leaderboard startDate and endDate

Allow users to specify which period they want to filter leaderboard by passing startDate and endDate parameters.

Suggestion: leaderboard startDate=2022-07-01 endDate=2022-07-31

Case insensitive commands

Currently all the commands are case-sensitive. We should lowercase the strings and then check for a match, so people can type "Leaderboard" and "leaderboard".

Incorrect Leaderboard Info

At the bottom of the leaderboard command you can see the following:

This is incorrect, it needs to show: <day | week | month >, not <day | week | year>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.