Skip to content
PropsApp: say thank you in a geeky way!
Ruby JavaScript HTML CSS Other
Branch: master
Clone or download
Latest commit dd835f1 May 29, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.capistrano add capistrano metrics file to avoid CI timeouts… Dec 16, 2014
.circleci Upgrade ruby version 2.3.1 -> 2.5.1 May 6, 2019
app people added new metrics May 29, 2019
bin Copy .env file on setup May 26, 2017
config props added new metrics May 29, 2019
db Add avatar column to users table Jun 5, 2017
deployment Simplify deployment process even more - don't use external swarm.rakes, May 26, 2017
docker Use docker image with ruby 2.5.1 on production May 9, 2019
forever update react-webpack-rails Oct 26, 2016
lib Call archiver using keyword argument Jul 25, 2017
public add apple touch icon Feb 28, 2017
spec Upgrade ruby version 2.3.1 -> 2.5.1 May 6, 2019
vendor/assets rails_apps_composer: initial commit Apr 19, 2014
webpack Run karma only once Mar 20, 2016
.babelrc Update react_webpack_rails Feb 23, 2016
.dockerignore * install node6 May 24, 2017
.env.example Clean up app credentials and config May 26, 2017
.gitignore Clean up app credentials and config May 26, 2017
.hound.yml update hound config Jul 29, 2016
.rspec update rspec and add random test order Apr 10, 2015
.rubocop.yml Turn off magic comment rule Jul 25, 2017
.ruby-version Upgrade ruby version 2.3.1 -> 2.5.1 May 6, 2019
.scrutinizer.yml Testing Scrutinizer test coverage (#57) Apr 10, 2016 add skylight Oct 9, 2015
Capfile Test production packages installation May 24, 2017
Guardfile add rubocop config Jan 17, 2015
LICENSE Update LICENSE, it's 2015 now :P Jan 4, 2015
Procfile Remove :pidfile and :logfile to not mess with Heroku May 27, 2016
Rakefile remove bundler audit from circle.yml Jul 27, 2016
app.json Update app.json envs May 26, 2017 Use Yabeda gem to expose application metrics for Prometheus and Grafana May 2, 2019
docker-compose-staging.yml Log to file and tail in subprocess instead May 18, 2017
karma-production.conf.js extract karma common, add karma-production.conf Sep 9, 2015
karma.conf.js Add karma notifier Mar 20, 2016
package.json don't use async package, use Promise.all Apr 27, 2017
webpack.config.js handle node modules css import Feb 9, 2017
yarn.lock don't use async package, use Promise.all Apr 27, 2017



General info

This app is called PROPS. The idea behind it is to express saying 'thank you!' in a geeky way.




Install Node.js dependencies:

$ npm install

Generate react-bundle for the first time:

$ npm build

Slack application setup

  1. Create slack application by going to Your Apps.
  2. Under "OAuth & Permissions" tab ( add new redirect URL, looking like this: https://YOUR_DOMAIN/auth/slack/callback.
  3. Under "OAuth & Permissions" tab ( add following permission scopes:
  • chat:write:bot
  • team:read
  • users.profile:read
  • users:read
  1. Under "Slash Commands" tab ( add slash command of your liking, remembering to set following settings:
  • "Request URL": https://YOUR_DOMAIN/api/v1/slack_commands/kudos.
  • "Escape channels, users, and links sent to your app" - YES (checkbox).
  1. Under "Basic Information" tab - install app to your workspace.
  2. Under "Basic Information" tab - read Client ID, Client Secret values available under App Credentials section and set them as SLACK_CLIENT_ID, SLACK_CLIENT_SECRET environment variables available to your Props application.
  3. Under "Basic Information" tab - read Verification Token available under App Credentials section and add it to Props application database by running Rails command line (rails c) and executing following command:
EasyTokens::Token.create(value: 'VERIFICATION_TOKEN', description: 'Slack command verification token')
  1. In order to post Slack notifications about new Kudos and handle Slack reactions added to them, you need to set Slack channel for your organisation in Settings after signing into your Props application. If not set, default Slack channel is general.


  • run rails server.
  • run webpack in watch mode:
$ npm start


We use RSpec 3 for testing backend and Mocha + Karma to test React components. We are using Chrome launcher.

Running components test:

  • run npm run test-dev to run tests.
  • run npm run test-live to run tests in watch mode.


Please follow Ruby style guide available here.


If you make improvements to this application, please share with others.

  • Fork the project on GitHub.
  • Make your feature addition or bug fix.
  • Commit with Git.
  • Send the author a pull request.

If you add functionality to this application, create an alternative implementation, or build an application that is similar, please contact me and I’ll add a note to the README so that others can find your work.



You can’t perform that action at this time.