Skip to content

Features

Ramaraja edited this page May 7, 2023 · 2 revisions

Award Points

The award points feature allows employees to recognize each other for their contributions. The manager could award the points to their direct report, or it could also be peer-to-peer. The user issues a Slack slash command by typing /reward, which opens up a modal in which you can type the recipient's details, award type, and a message detailing why they received the award. Once you click on submit, the dedicated public bot channel will receive a message containing the details of the award.

Use Case

Manually Awarding Points to Peers

Preconditions

  • The employee must have the necessary authorization to use the RewardBot.
  • The employee should not have used the RewardBot to award points more than three times.

Main Flow

The employee will input the award details, such as the recipient's name, the type of award, and the reason for giving the award, using the appropriate slash command [S1]. The RewardBot will verify the response and save the points in the database [S2]. The RewardBot will send a private message to the awarder confirming the award details[S3].

Subflows

[S1] The employee triggers the RewardBot using the /reward slash command, and the bot will prompt them to input the recipient's name, the type of award, and the reason for the award. [S2] The RewardBot will validate the response and update the recipient's points if the validation is successful. [S3] The RewardBot will send a message with the award details to the public dedicated bot channel.

Postconditions

  • The recipient's record is updated with the awarded points.
  • The awarder-to-awardee quarterly award count increases by one. (Only three awards can be given by a specific awarder to a specific awardee in a quarter)

User Diagram

Award Points User Diagram

External Integration - GitHub

The GitHub integration REST endpoint of RewardBot must be added to the GitHub repository's webhooks. And then, when a user merges a pull request (PR) in a GitHub repository, it will trigger the webhook that will call RewardBot, and RewardBot will automatically award 10 points to the author of the PR. The dedicated public bot channel will receive a message announcing the details of the award.

Use Case

Integrating our RewardBot with GitHub

Preconditions

  • The employee should be present in the database.
  • The employee should have raised a PR.

Main Flow

The bot will award the points to the employee who raised the PR once it is merged[S1]. The bot will also post a message on the common channel and inform everyone about the awarded points[S2].

Subflows

[S1] Once the PR is merged, it automatically awards points to the employee and will update the database [S2] It will post a message on the Slack channel saying Employee ABC has been awarded 10 points for their contribution.

User Diagram

GitHub Integration User Diagram

Leaderboard

The leaderboard feature allows users to see the top ten performers. The user issues a Slack slash command by typing /leaderboard, which prompts the RewardBot to retrieve the top ten performers and send the leaderboard as a direct message.

Use Case

Display the leaderboard showing the name of the top ten performers and their accumulated points.

Preconditions

  • The employee should have the necessary permissions to interact with the bot.
  • There should be valid entries in the database of the respective employees and their details.

Main Flow

The employee will invoke a slash command, triggering the Reward Bot [S1]. The Reward Bot will then show the leaderboard to the employee on a private channel [S2].

Sub Flow

[S1] Employee invokes the bot using the /leaderboard slash command. [S2] The bot then sends a direct message containing the leaderboard of the top ten performers to the employee who invoked the command.

User Diagram

Leaderboard User Diagram