KudoChest is a team engagement tool for Slack and Discord. It allows users within a workspace to give each points that accrue over time. A point represents a token of appreciation or recognition for a job well done. Users can view their profile, browse their history, and access leaderboards on the web or within the chat client. App settings and moderation tools are provided via web UI.
This is a Ruby on Rails application backed by Postgres and Redis. It integrates tightly with chat platforms, keeping teams and users synced server-side. This enables web-based user profiles and other UX enhancements not possible in standard bots.
See the Wiki for a deeper dive.
To install KudoChest into your organization's Slack or Discord workspace, you must host the Rails components on a web server you control and configure the Slack or Discord App at the appropriate platform's site.
See the Installation Instructions for more detail.
For local development, start by reading the Installation Instructions, paying special attention to the Environment Variables section. Note that you will only need certain portions of what is described there, depending on your specific area of development.
For Slack and OAuth callbacks, a tunneling service such as ngrok is recommended to expose your local server publicly.
You'll want to setup a dedicated workspace and App in Slack/Discord specifically for KudoChest development. Do not use your organization's production workspace or App to develop against.
If you're working on response images and running Sidekiq in Docker, you'll need to configure a local storage location in
docker-compose.yml to map to
/storage in the
Run the App Components
You may run all components in Docker with logging exposed using the command
make up and then connect to the
kudochest_app container and create the database.
Alternatively you can run services (PG and Redis) in Docker while running the Rails processes natively. This often eases debugging and development.
For running the Rails stack you'll need the following:
To run specs in Docker:
To run specs natively:
make services bundle exec rspec
To generate seed data for manual testing, first install your local instance of KudoChest into a development workspace and then run
bundle exec rails seeds:all
All contributions are welcome via Issues and Pull Requests. If you notice something wrong in the Wiki, please feel free to fix it!
- Code by Justin Craig-Kuhn
- Logo and background mural by Evan Mahnke (Discord
gallanthomeslice at yahoo)
- Animated GIFs and icons by Milton Monroe (Discord
milton dot p dot monroe at gmail)
This software is released under an MIT-LICENSE.