Giter Club home page Giter Club logo

baton's Introduction

๐ŸŽ‹ baton

Easily share, capture and tag links with your team in Slack


/baton pass https://talks.golang.org/2012/waza.slide#1 ["golang", "concurrency", "parallelism"]

Rationale

When we have to wrangle all the links that enable us to do our jobs better, it's common to:

  • Unintentionally hoard the information in a local bookmark repo (Ctrl + D)
  • Place the links in Wikis that aren't version controlled (which in a few ways is good) and have limited functionality
  • Rely on crufty search history and hope that those useful links will just be there forever and easy to find
  • Combine one or more of the above approaches, making the problem even worse

The goal of baton is to make it easier for teams to share and manage links that help accelerate productivity

๐Ÿ”ง Setup

Public

baton currently has a public instance deployed at http://baton.apps.madhax.io

Team registration can be performed via a POST to http://baton.apps.madhax.io/v1/teams:

$ curl -H "Content-Type: application/json" -X POST -d '{"token": "YOUR_SLACK_TOKEN", "team_id": "YOUR_TEAM_ID", "team_domain": "YOUR_TEAM_SUB_DOMAIN"}' http://baton.apps.madhax.io/v1/teams

and yes, I will eventually get to a registration page ๐Ÿ™ˆ


Custom

If you would like to set up your own instance of baton, I recommend using DigitalOcean and the RethinkDB Plugin for Dokku.

A guide on setting up a Dokku image with RethinkDB can be found here: https://rethinkdb.com/blog/dokku-deployment/


Regardless of your setup method, you must also create and configure at least one of the following slack integrations:

If deploying your own baton instance, be sure to replace the above URLs with your own.

You can specify your channel's webhook API URL via:

export BATON_HOOK_URL='http://your.url'

This URL can be found in Slack's Incoming Webhooks Integration page.

๐Ÿ’‚โ€โ™‚๏ธ Command

The most straight foward way to create a baton is via command:

Pass (create) a baton:

/baton pass https://github.com/angular/angular.js/wiki/Understanding-Scopes ["angular", "js", "scope", "framework"]

Discover other batons (by tag) passed by your team:

/baton find js

Explore your team's tag cloud:

/baton tags

๐Ÿ”‰ Hooks

baton also supports Slack's Outgoing Webhook API, allowing it to react to trigger words mentioned in your channel. This allows you to communicate resources with your team while having them implicitly captured in the background:

"pass hey @bob check out this feature list I found for ["js", "es6"]: https://github.com/lukehoban/es6features"

The above message, when made in a public Slack channel, is synonymous with the following command:

/baton pass https://github.com/lukehoban/es6features ["js", "es6"]

๐Ÿ”ญ TODO

  • Prevent bad links (4XX) from being passed
  • Decouple baton API from slack API
  • Parse labels from slack text messages (labels temporarily disabled for now for consistency)
  • Incoming hook notifications for new batons
  • Allow users to browse batons by more than one tag
  • Allow users to browse batons by label/tag with a regex pattern
  • Allow users to browse related resources across all registered teams (find global flag)
  • Import/export banks of link collections
  • Hypermedia

baton's People

Contributors

slurmulon avatar

Stargazers

 avatar  avatar

Watchers

 avatar

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.