A Slack bot that handles voting for Hack Club's mock parliament.
- Clone the repository:
$ git clone https://github.com/hcgov/parliament-vote.git- Rename
.env.exampleto.envand fill in the necessary details:
# NODE_ENV can be either development or production. Make sure to change this before you ship your bot!
NODE_ENV=development
# What port do you want the app to listen on?
PORT=3000
# Your app token usually starts with "xoxb-...."
APP_TOKEN=""
# Your Slack App signing secret.
SIGNING_SECRET=""
### vvv Only really matter when NODE_ENV is "development"! vvv ###
# Your ngrok API token, or "NONE" if you want to disable ngrok functionality
NGROK_TOKEN=""
# A configured ngrok domain to proxy via, this is optional!
NGROK_DOMAIN=""
### Parliament Vote specific variables ###
CHAMBER_CHANNEL_ID="C0000000000"
LIST_ID="F0000000000"
FETCH_WORKFLOW="https://hooks.slack.com/triggers/T0266FRGM/..."
EDIT_WORKFLOW="https://hooks.slack.com/triggers/T0266FRGM/..."- Install dependencies:
$ pnpm i- Create a Postgres database and edit
postgres.tswith information about said database. Create 2 tables calledvotesandproposition_end_dates(which can easily be done by copy-pasting this into a Postgres REPL likepsql):
CREATE TABLE votes (
list_row_id TEXT NOT NULL,
user_id TEXT NOT NULL,
seats INTEGER NOT NULL,
in_favour BOOLEAN NOT NULL,
UNIQUE (list_row_id, user_id)
);
CREATE TABLE proposition_end_dates (
list_row_id TEXT NOT NULL,
end_date DATE NOT NULL,
message_ts TEXT NOT NULL
);- The bot should now be set up!
This repository and the underlying template is licensed under the MIT License. A copy of the license can be viewed at LICENSE.