pip一発でインストール!
ターミナルで使えるTODO管理アプリ「DoDo」のご紹介です。
DoDoとは
pythonで作られたターミナル上で使えるTODO管理アプリです。
pip installで簡単に導入でき、CUIで操作できるためプログラマ向けと言えます。
タスク管理はしたいけどターミナルから移動したくない、マウスは使いたくない、コマンド一発で使いたい…。
そんな方にオススメです!
DoDoはatmb4uさんによって開発されており、以下に公式の説明があります。
使い方
インストールと初期化
DoDoはpipで一発インストールができます。
ここでパッケージ名はDoDoではなくdodopieであることに注意してください。
$ pip install dodopie
以下のようにして初期化をすることですぐに使用することができます。
DoDoは一箇所のディレクトリでしか使用できないため、ホームディレクトリに移動してから初期化するといいでしょう。
# ホームディレクトリに移動する $ cd $ dodo init Successfully initialized DoDo
準備はこれで完了です。
タスクの追加と削除
タスクを一つ追加してみましょう。
dodo addによって新たにタスクを追加できます。
$ dodo add 'タスクを追加してみる' ID Status Date(-t) Owner(-u) Description (-d) 1 [+] 50 seconds ago (username) タスクを追加してみる Available Operations: c accept propose reject workon finish remove d flush Available Options: -id -d(description) -u(user) -t(time) -f(file) Status: + proposed - rejected * accepted # working . complete
新たにID[1]でタスクが追加されました。
もう一つ追加してみましょう。
$ dodo add 'タスクを削除する' ID Status Date(-t) Owner(-u) Description (-d) 1 [+] 1 minute ago (username) タスクを追加してみる 2 [+] 46 seconds ago (username) タスクを削除する Available Operations: c accept propose reject workon finish remove d flush Available Options: -id -d(description) -u(user) -t(time) -f(file) Status: + proposed - rejected * accepted # working . complete
次に、タスクを削除します。
削除にはdodo remove IDによって、IDを指定してコマンドを実行します。
$ dodo remove 1 ID Status Date(-t) Owner(-u) Description (-d) 2 [+] 2.2 minutes ago (username) タスクを削除する Available Operations: c accept propose reject workon finish remove d flush Available Options: -id -d(description) -u(user) -t(time) -f(file) Status: + proposed - rejected * accepted # working . complete
removeを用いてID1のタスクを削除しました。
workonとfinish
タスクに着手したらworkonでハイライトしましょう。
例えばID2「タスクを削除する」に着手した場合は、以下のようにします。
$ dodo workon 2 ID Status Date(-t) Owner(-u) Description (-d) 2 [#] 5.45 minutes ago (username) タスクを削除する Available Operations: c accept propose reject workon finish remove d flush Available Options: -id -d(description) -u(user) -t(time) -f(file) Status: + proposed - rejected * accepted # working . complete
タスクのステータスが[#]に変わりました。
記事のコードインサートだとわかりませんが、実際には色が変わって黄色にハイライトされます。
さらにこのタスクが完了したら、finishコマンドを使って終了がわかるようにします。
$ dodo finish 2 ID Status Date(-t) Owner(-u) Description (-d) 2 [.] 6.916666666666667 minutes ago (username) タスクを削除する Available Operations: c accept propose reject workon finish remove d flush Available Options: -id -d(description) -u(user) -t(time) -f(file) Status: + proposed - rejected * accepted # working . complete
ステータスがさらに[.]変化しました。
実際にはID2が緑色にハイライトされ、わかりやすくなっています。
タスクの提案
複数人でまわすプロジェクトだと、人にタスクを割り当てることもありますよね。
そのためにdodo proposeというコマンドがあります。
以下のようにして、hogehogeさんにタスクを割り当てることができます。
$ dodo propose -u hogehoge -d 'タスク提案' ID Status Date(-t) Owner(-u) Description (-d) 2 [.] 11.05 minutes ago (username) タスクを削除する 3 [+] 3 seconds ago (hogehoge) タスク提案 Available Operations: c accept propose reject workon finish remove d flush Available Options: -id -d(description) -u(user) -t(time) -f(file) Status: + proposed - rejected * accepted # working . complete
さらにこのタスクを、提案したusernameさんがやっぱり引き受けるよ、となった場合はacceptによってIDを指定します。
dodo accept 3 ID Status Date(-t) Owner(-u) Description (-d) 2 [.] 13.0 minutes ago (username) タスクを削除する 3 [*] 2.0 minutes ago (username) タスク提案 Available Operations: c accept propose reject workon finish remove d flush Available Options: -id -d(description) -u(user) -t(time) -f(file) Status: + proposed - rejected * accepted # working . complete
これによって、ID[3]のステータスが[*]になりました。
常にステータスについては下部に書いてありましたが、改めてまとめると以下のようになります。
- [+]: proposed(提案中)
- [-]: rejected(却下)
- [*]: accepted(引き受け)
- [#]: working(着手)
一人で使う場合はわざわざacceptする必要がありませんが、複数人の場合はありがたい機能です。
また、提案を却下する場合にはrejectを用います。
改めてタスクをhogehogeさんに割り当ててから、自分でrejectしてみましょう。
$ dodo propose -u hogehoge -d '頑張る' ID Status Date(-t) Owner(-u) Description (-d) 2 [.] 18.366666666666667 minutes ago (username) タスクを削除する 3 [*] 7.366666666666666 minutes ago (username) タスク提案 4 [+] 22 seconds ago (hogehoge) 頑張る Available Operations: c accept propose reject workon finish remove d flush Available Options: -id -d(description) -u(user) -t(time) -f(file) Status: + proposed - rejected * accepted # working . complete $ dodo reject 4 ID Status Date(-t) Owner(-u) Description (-d) 2 [.] 18.45 minutes ago (username) タスクを削除する 3 [+] 9.45 minutes ago (username) タスク提案 4 [-] 27 seconds ago (username) 頑張る Available Operations: c accept propose reject workon finish remove d flush Available Options: -id -d(description) -u(user) -t(time) -f(file) Status: + proposed - rejected * accepted # working . complete
ステータスが[-]になり、赤色でタスクがハイライトされます。
さらに、hogehogeさんが割り当てられていたタスクを自分(username)でリジェクトしたため、タスクのオーナーがusernameになっていますね。
良い点
DoDoはCUIで完結しているため、ターミナルで作業するエンジニアには非常にありがたいツールです。
また、ディレクトリごとにタスクを分けることができるため、複数人で複数プロジェクトを回す際にはディレクトリの移動だけでタスクリストを切り替えられるというメリットがあります。
さらにタスクの提案やリジェクトなど、実用的なコマンドが揃っている上、タスクのインポートやエクスポートも可能なので実務で便利に使うことができます。
惜しい点
一方でタスクの並びが追加した順でしか表示されないため、タスクが増えてくると少し見づらくなってしまいます。
こまめにremoveしてやらないと、せっかくCUIなのにターミナルをスクロールしないといけないのが微妙ポイントです。
タスクを完了・未完了で並び替えできるとこの問題は解決できるのですが、現在のバージョンではできないようです。
余裕があったら私のほうでプルリクを送ってみようと思います。