Git Product home page Git Product logo

pluspl.us's Introduction

PlusPl.us Server

PlusPl.us is a resurrection of the former plusplus.chat. It was implemented in Python and is (somewhat) based on the Javascript version by @tdmalone, but has been expanded to work as a fully hosted Slack app for multiple teams like the original plusplus.chat.

If you didn't use plusplus.chat before it went offline, it was an app that let you reward members of your Slack team with imaginary points. All you had to do was type something like @jake++ to reward someone a point, or @jake-- to take away a point. A few additional features have been built in (see below), and more features are planned.

Features

  • @jake++: give a point to a user or a thing
  • @jake--: take a point away from a user or a thing
  • @jake==: get the current number of points a user or thing has
  • @pluspl.us leaderboard: get (up to) 10 of the top users and things
  • @pluspl.us loserboard: get (up to) 10 of the bottom users and things
  • @pluspl.us leaderboard global: get (up to) 10 of the top things across all teams
  • @pluspl.us loserboard global: get (up to) 10 of the bottom things across all teams
  • @pluspl.us reset: permanently removes all points from a Slack team
  • @pluspl.us help: get a list of the available commands from within Slack

Install Instructions

(Instructions adapted from here)

  1. Create a new app in your Slack team.

    You can do this from the Slack API Apps page. You'll need permission to add new apps, which depending on your team settings might require an admin to do it for you.

  2. Add a bot user for your app.

    This can be done under Bot Users in the menu on the left. You can name it whatever you like, and for best results, select it to always show as online.

    This allows the app to speak back to your team when they ++ and -- things.

  3. Add chat permissions, and install the app.

    Under OAuth & Permissions, scroll down to Scopes and add the chat:write:bot permission. Click Save Changes.

    You can now install the app. Scroll back up, click Install App to Workspace, and follow the prompts.

  4. Add a redirect URL

    Under the OAuth & Permissions section, scroll down to Redirect URLs and add the following URL: <your_domain_name.com>/slack/callback

  5. Copy your tokens.

    From the same Basic Information page, store the following tokens (you'll need them to setup the app on Heroku):

    • The Client ID
    • The Client Secret
    • The Signing Secret

    From the Manage Distribution page, stor the Shareable URL.

  6. Register for Sentry.io

    Register your new application at Sentry.io to provide error logging. It will generate a url that will be needed to install this app.

  7. Deploy the app to Heroku.

    Deploy to Heroku

    This app was designed for Heroku, and shouldn't cost much to operate there. You may have to put in a credit card to increase the number of free hours alloted per month, though. Input the tokens and URL you collected in the previous step to the Heroku configuration to properly set up the app.

  8. Back at Slack apps, switch on Event Subscriptions for your app.

    Via Event Subscriptions in the left menu. After switching on, enter your new Heroku app address - eg. https://your-domain.herokuapp.com/slack/event - as the request URL.

    Scroll down and, under Subscribe to Bot Events, select the relevant events for the features you want the app to support:

    • Select message.channels to support all general features in public channels it is invited to.
    • Select message.groups to support all general features in private channels it is invited to.
    • Select message.im to support receiving commands by private message.

    Finally, click Save Changes. If you wish, you can come back to this screen later and add or change the events the app handles.

  9. Invite your new bot to any channel in your Slack team and use it.

    /invite @yourplusplus2bot

    @jake++

Contributions

Contributions are welcome to this repository! Please read our Code of Conduct before contributing, and consider opening an issue before writing code.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.