Code Monkey home page Code Monkey logo

devhub's Introduction

DevHub

プログラマの為の開発支援コミュニケーションツール。作業中メモをリアルタイム共有する。

2015-08-19 23 56 39

やりたいこと

  • 開発中に開発メンバとの情報共有を促進したい
  • URLとかをさくっと共有したい
  • ソースの断片とかも気軽に共有したい
  • チャットを書きこんでも緩めに通知したい
  • Jenkins や SVN へのコミットの通知も一元化したい
  • なんか使っていて楽しい感じにしたい
  • みんな一緒に開発していて繋がっている感じを実感したい

いまのところできること

  • リアルタイムチャット(複数部屋)
  • 共有リアルタイムメモ帳(複数枚)
  • メモの履歴差分表示(最新のいくつか)
  • 外部サービスからの通知API
  • DBへチャット履歴の保存
  • ファイルのドロップによるアップロード(画像は表示される)
  • 共有メモをブログとして保存
  • モバイル対応(フリックによるチャット⇔メモ切り替え)

デモ

http://dev-hub.herokuapp.com/

Deploy

インストール

必要なもの

  • node
  • mongoDB
$ git clone [email protected]:volpe28v/DevHub.git
$ cd DevHub
$ npm install 

起動

$ node app.js -p 3000 -d devhub_db -t title
  • -p ポート番号(default 3000)
  • -d データベース名(default devhub_db)
  • -t タイトル(default '')

Basic認証をかける

$ BASIC_AUTH_USER=user BASIC_AUTH_PASS=pass node app.js -p 3000 -d devhub_db -t title
  • BASIC_AUTH_USER ユーザ名
  • BASIC_AUTH_PASS パスワード

ビルド

jsやcssを変更した場合は grunt の実行が必要

$ grunt build

操作ヒント

チャット

  • ユーザ名をクリックで宛先指定
  • 画像、その他ファイルをドロップでアップロード
  • 話題・チームによって部屋を使い分ける(設定から部屋数変更可能)

共有メモ

  • メモ欄の任意の場所をダブルクリックで指定箇所の編集開始
  • 編集中に Ctrl-Enter またはダブルクリックで編集終了
  • MarkDown に一部対応
"#, ##, ###, ####" -> h1, h2, h3, h4
"- [ ]" -> チェックボックス
行末に #red -> 一行色付け
  • 画像、その他ファイルをドロップでアップロード

その他記法の詳細はWiki参照

通知

  • チャットメッセージをポップアップでデスクトップ表示
  • Settings にて通知を有効にする

アバター

  • ユーザ名の代わりにお好きなアイコンを表示
  • Settings にてアバターアイコンを設定する

外部連携

Hubot

https://github.com/hashrock/hubot-devhub

Redmine, GitHub, Gitlab, GitBucket

https://github.com/hashrock/DevhubHook

ChromeExtension

DevHubNotifier

  • ログインなしに複数のDevHubからチャット通知を受けられる ChromeExtension.
  • GitHub

汎用通知API

チャットへの通知

  • クエリーとして以下が必須
  • name : サービス名
  • msg : メッセージ
  • avatar : アバター画像URL(省略可能)
  • room_id : 部屋番号(1〜. 省略した場合は1)

Jenkins

  • Post build task プラグインをインストール
  • 以下のスクリプトを実行するようにする
RESULT=`curl ${BUILD_URL}api/xml | perl -le '$_=<>;print [/(.+?)[0]'`
wget http://XXXXX:3000/notify?name=Jenkins&msg="($JOB_NAME): $RESULT"

Subversion

  • hooks/post-commit に以下を記述する
NAME=`svnlook author $REPOS -r $REV | nkf -w`
CHANGE=`svnlook changed $REPOS -r $REV | nkf -w`
LOG=`svnlook log $REPOS -r $REV | nkf -w`
wget http://XXXXX:3000/notify?name=SVN&msg="($NAME): $LOG"

メモへの通知

  • name : サービス名
  • text : 通知テキスト
  • no : メモNo(省略した場合は No.1)
  • line : 行数(省略した場合は先頭)

その他Tips

メニューバーにリンクを追加する

  • よく行くサイトのリンクをDevhubの上部メニューに表示しておくことができる。
  • /lib/menu_links.json を追加する。
[
  {"name": "Google", "url": "https://www.google.co.jp/"},
  {"name": "FaceBook", "url": "https://www.facebook.com/"}
]

部屋名を変更する

チャットから、room_name:部屋名 を打ち込むと部屋名を変更できる。 部屋数は設定から変更可能。

組み込み bot を追加する

/lib/bots 配下に js ファイルを追加する。実装例は david.js を参照。

var util = require('../util');
module.exports.action = function(data, callback){
  if (data.msg.match(/David/i)){ //自分の名前が呼ばれたら
    // 返答を生成
    var reply = {
      name: "David",
      date: util.getFullDate(new Date()),
      msg: "@" + data.name + "さん ん、なんか用かい? 俺は今ホームパーティーで忙しいんだ。出来れば後にしてくれないか。"
    };

    // 1秒後に返答する
    setTimeout(function(){
      callback(reply);
    },1000);
  }
};

License

(The MIT License)

Copyright (c) 2012 Naoki KODAMA [email protected]

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

devhub's People

Contributors

dobachi avatar hashrock avatar kuniwak avatar volpe28v avatar

Watchers

 avatar  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.