ポンコツエンジニアのごじゃっぺ開発日記。

いろいろポンコツだけど、気にするな。プログラム&ロボット大好きなポンコツが日々の記録を残していきます。 自動で収入を得られるサービスやシステムを作ることが目標!!

GithubとLINEを組み合わせたTODO管理ツールが快適過ぎた。

しばらくの悩み。TODO管理のツールは何を使えばいいんだろう。

有名なTrelloを使ってみたりしたんですが、やはり使っているツールが増えるということは、例えばその分のブラウザのタブが増えたり、普段の作業を邪魔するものが増えてしまい、個人的にあまり好きではありません。

そこで考えたのがこちら

f:id:ponkotsu0605:20190609145500p:plain

LINEとGithubを組み合わせよう!というもの。

GithubのProjectsという機能の見た目がtrelloのようになるんです。こちらが実際に自分が使っている画面になります。

f:id:ponkotsu0605:20190609145522p:plain

画像だけ見てもこれの良さがわからないかもしれないですが、これの特徴は、

  • LINEからサクッとTODOを追加できる
  • TODOとissueを結びつけている
  • ラベルをつけることができる
  • リマインダを作れる
  • Githubに草が生える

という感じで、ほぼほぼtrelloと変わらないような気がします。

ちなみにカラムは以下の5つの状態に分けています。

  • Conversation:メモややった方がいいことを書く
  • To do:Conversationやissue化したものを置く
  • In progress:担当者をアサインして実行中のissueを置く
  • Review:レビュー中のissueを置く
  • Done:closedのissueを置く

さて、特徴について詳しく説明したいと思います。

LINEからサクッとTODOを追加できる

LINEのMessaging APIを利用して、TODO用のLINEグループにポストするだけで、TODOの項目を追加することができます。そのバックエンドとして、Google Apps Script(GAS)を利用しているのでサーバ代は無料で運用することができます。

f:id:ponkotsu0605:20190609145544p:plain

ポストした時の詳しいプログラム処理について説明します。

  1. LINEのwebhookをgasで受け取る
  2. 投稿した内容のissueを作成する
    1. POST /repos/:owner/:repo/issues
    2. この時、ラベルをつける。ラベルについては後で詳細を説明する。
  3. 作成したissueのidを利用してissueのカードを作成する
    1. POST /projects/columns/:column_id/cards
    2. デフォルトではConversationsのカラムに追加するようにしているが、上のLINEのスクショのように、タップするだけでstatus(カラム)をTodoに変更することができる。ラベルも同様。
  4. LINEに結果を投稿する
    1. φ(..)メモメモ
    2. すぐにissueを確認できるようにissueのURLを一緒に貼っておく。
    3. 上でも軽く説明したが、ラベルとカラムの変更をワンタップでできるように、postbackをつけたLINEのButtonを投稿する。

このようにして、LINEを立ち上げてすぐにTodoを追加することを実現した。また、この「To do」というLINEのグループのショートカットをスマホのホーム画面に置くことで、すぐに起動させることができるので、よりToDoを追加するコストが低くなる。

 

TODOとissueを結びつけている

上の処理でも説明したが、各TODO項目とissueが結びついています。

なので、各ToDo項目にコメントを残したりすることができます。そこが個人的に便利だなって思った。

 

ラベルをつけることができる

上の処理でも軽く触れたが、workやprivateというラベルをつけています。

workは仕事用、privateはプライベート用のToDoをつけています。

また、LINEから投稿するときのデフォルトのラベルを、平日の場合はworkに、休日の場合はprivateに設定することで、より入力のコストを削減しています。休日に仕事のToDo項目を追加することはほぼないと思うので。上のLINEのスクショから、デフォルトがprivateになっていることから、これは休日に投稿した内容なんだなってことがわかっちゃいます。

もちろんラベルをつけているので、GithubのProjectsの画面でworkだけ、privateだけというフィルタをかけることができるので、仕事でも使いやすいと思います。

 

リマインダを作れる

定期的にリマインダを送るようにしています。

自分の場合は

  • 月曜日の朝9時にin_progress状態のworkラベルの一覧を投稿
    • 週の最初の日の朝に投稿することで、今週やるべきことを確認することができます。
  • 火曜日の朝9時にtodo状態のworkラベルの一覧を投稿
    • 火曜日くらいにやらなきゃいけないことでまだ手をつけていないことを思い出させます。
  • 金曜日の夕方18時にconversations状態のworkラベルの一覧を投稿
    • 週の終わりにやったほうがいいよっていうリストを送ることで、来週これもやろうかなと考える時間を作ることができます。
  • 土曜日のお昼12時にtodo状態のprivateラベルの一覧を投稿
    • privateでやらなきゃいけないことを起きたくらいに知ることができます
  • 日曜日の夜19時にin_progress状態のprivateラベルの一覧を投稿

このようにして、自分はリマインダを設定しています。もちろんGASの定期実行で実現しています。

Githubに草が生える

issueを作成する度にgithubに草が生えます。

 

最後に

このようにして、自分は個人のタスクを管理しています。このようにしてからやらなきゃいけないことを忘れることがなくなったし、いい感じに運用ができています。

また、もろもろ自分で作っているので、ちょっとでも使いにくいところがあれば自分で直すことができるので、これからのブラッシュアップされてよりよいツールに仕上がっていくはずです。

みなさんも、Githubでタスク管理をしてみてはいかがでしょう。