queuebee

command module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 21, 2024 License: MIT Imports: 24 Imported by: 0

README

QueueBee

An open source Slack App for managing user queues in slack channels.

Motivation

Slack's great at letting us organize ourselves, yet sometimes a bit more than ad-hoc organization is helpful.

If multiple people want to deploy an application, each on their own so they can take the time to verify their changes before passing it on to the next, QueueBee can be helpful to keep track of who's turn it is.

Usage

Slash commands

QueueBee comes with the following slash commands:

  • /qbee join: Join the queue
  • /qbee leave: Leave the queue
  • /qbee skip: Skip your turn. Unlike leaving the queue, it will just put you in second place when you were in first.
  • /qbee list: List the current queue.
  • /qbee ack: Acknowledge your turn. When it's your turn you have a set (configurable) time to accept your turn. If you don't, then your turn is skipped and the next person can go first. That way if you were in the queue but are now in a meeting and unable to use your turn, nobody's blocked.
  • /qbee config: Configure the queue. Currently you can configure:
    • the initial time given to accept your turn
    • how long a participant can hold its turn for
  • /qbee help: Shows a help message listing the commands
Interactivity

TODO: wait for this to be on GH so I can upload the images.

Installation

Docker

The app can be run in a docker container (a sample Dockerfile is provided) or built as a single executable and run on any server.

Note: The sample container does not currently include litestream for DB backups and replication.

Config

The app takes in the following 4 env variables as config:

SLACK_SECRET=
SLACK_SIGNING_SECRET=
LITEQ_DB="liteq.db" # path to a database file that stores delayed jobs (warn a user that time is about to expire)
QUEUEBEE_DB="queuebee.db" # main DB file
DB Backups

QueueBee uses SQLite as its database. You can setup DB backups easily via litestream. A sample litestream.yml config is provided that will create a DB snapshot every hour and store 72h worth of snapshots.

Slack

To setup the app with slack, you will need to:

  • go to https://api.slack.com/apps and create an app
  • When prompted, select From an app manifest
  • Use the provided sample slack-manifest.json. You need to replace $domain with the base url of where queuebee is running.
  • You will then be able to get the app's secret and signing secret. Those are required as env variables to run queuebee.
  • Upload the app's logo. queuebee.png is provided in this repository.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL