Skip to content

A simple room booking solution using a Slack bot and a small display running standalone software!

License

Notifications You must be signed in to change notification settings

BreakTools/RoomBooker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Room Booker

A simple room booking solution using a Slack bot and a small display! Here's a 3 second GIF that shows you everything you need to know:

(GIF will go here)

Why use Room Booker?

Does the following situation sound familiar to you?

  • Your company uses Slack for their internal communication.
  • You have one or more meeting rooms that are not well managed.
  • A system like Joan or Logitech Tap is far too expensive.
  • You like hosting things locally and being in control of your data.

Then Room Booker is the perfect free and open source solution for you!

Requirements for running Room Booker

To start using Room Booker you'll need the following things:

  • A Slack workspace.
  • A place on your local network to run a Docker container.
  • A small display that you can mount next to a room (those 7-inch 1024x600 ones work well).
  • A computer running Linux (preferred) or Windows that you can permanently hook up to the small display. It doesn't need much, so something like a small NUC works. I'm currently working on adding Raspberry Pi support so stay tuned for that!

Installation instructions

Running the backend

First you'll need to create a Slack bot and add it to your organization.

{
    "display_information": {
        "name": "Room Booker",
        "description": "Book a room using Room Booker!",
        "background_color": "#FFFFFF"
    },
    "features": {
        "app_home": {
            "home_tab_enabled": true,
            "messages_tab_enabled": false,
            "messages_tab_read_only_enabled": true
        },
        "bot_user": {
            "display_name": "Room Booker",
            "always_online": false
        }
    },
    "oauth_config": {
        "scopes": {
            "bot": [
                "users:read"
            ]
        }
    },
    "settings": {
        "event_subscriptions": {
            "bot_events": [
                "app_home_opened"
            ]
        },
        "interactivity": {
            "is_enabled": true
        },
        "org_deploy_enabled": false,
        "socket_mode_enabled": true,
        "token_rotation_enabled": false
    }
}
  • Go to the Install App tab and install the app to your organization. On this page you'll also find the Bot User OAuth Token which you'll need later.
  • Go to the Basic Information tab, find App Level Tokens and click on Create Token and Scopes. Give your token a name and add the connections:write scope. You'll now see the App Level token, which you'll need later.

Now you need to run the Docker image.

  • Pull the backend Docker image by running docker pull ghcr.io/breaktools/room-booker-backend:{version}, where {version} should be replaced by the version you're using (e.g. 1.0.1).
  • Run the backend by running docker run -e SLACK_BOT_TOKEN="{bot_token}" -e SLACK_APP_TOKEN="{app_token}" -e DISPLAY_API_PORT="{api_port}" -t ghcr.io/breaktools/room-booker-backend:{version}, where {bot_token}, {app_token} and {version} should be replaced by the values you've gotten from previous steps and {api_port} should be replaced by the port you wish to run the backend on.

Your backend is now running! You can try it by opening Slack, clicking on the Room Booker bot and adding a room.

Running the display software

Running the display software is simple!

  • Download the display software from the releases tab here on this GitHub page. Download the .AppImage file for Linux machines and the .exe file for Windows machines (the .exe file is an installer which will install the software for you).
  • Open the display software and click on the BreakTools logo, this will open the settings menu.
  • Fill in the API address of your backend, it should look something like http://145.90.27.19:5014, and click on the restart program button. That's it! There's a large amount of other settings available in that menu be sure to tweak them all to your liking and make them match your organization's branding!