背景
毎週金曜日に週報なるものをお客様へメールで送る 不毛 な義務がある。どうやら最近、お客様側のチェックが厳しくなってきているようで、送り忘れると「きてないぜこのやろう( ^ω^ )」というメールが私の上司宛にやってきて、上司は週報を送り忘れた部下へ週報を送るように催促をするという 不毛 なやりとりをさせてしまっている。
以下、不毛なやりとり。
ん?これは、、、本当につくるか?
こんなどうしようもない部下のくだらない話を聞いてくれる上司は他にはいません。ありがたい限りです。これに答えてもお給料がアップするわけではないのは重々わかっていますが、やったりましょう。業務Hack。
で、週末の時間を少し拝借してできるところまでやってみた。
理想の完成系
- 自動送信は逆に怖いからそこまでやらない。
- 場所を選ばずに、帰りの電車内でも送信したいので、スマホアプリがいい
- 週報の存在をわすれても大丈夫なように、毎週金曜の指定時刻にスマホにプッシュ通知されるようにする
- 文面は稼働時間も含めて自動で完成されている
- アプリ名、、、即報告。インスタントレポート。Instareport。略してインスタ。・・・いいね。(公開していないから商標権の侵害にはならない、はず!)
どうすればできる?
- 会社PCのローカル環境にのタスクスケジューラーを登録。このタスクの内容は毎週金曜に勤怠管理システム(WEB)から稼働時間をスクレイピングしクラウドストレージに保存する。クラウドストレージはgoogle doc?aws?
- スマホアプリは金曜20:00になるとプッシュ通知する。
- スマホアプリを起動すると、カレンダーとメール作成ボタンが表示される。
- メール文面にはやっかいなことに稼働時間を記載する必要があるので、1で保存したクラウドストレージから取得する。取得期間は、カレンダーで選択する。
- メール作成を押すとスマホのメーラーが起動する。(ここは文面をあえて表示。こわいから内容確認しなきゃね)
- カレンダーで選択した日を含む過去5日間の稼働時間をクラウドストレージから取得する
- カレンダーで選択した日をタイトルに設定する。
- メール文面は↓なイメージで作成する
- あきらめの精神。これに時間をかけすぎることはもっと不毛なので、12:00 - 18:00でできるところまでの時間切りで作業する。
で、どこまでできたか?
やりたいことはほぼ完成。
できたら、デザイン綺麗にするのとプッシュ通知できるようにする。
使いながらよくしていく。
②カレンダーから起点日選択し[Send Fuckin’ Weekly Report]アイコンをタップ
③稼働時間以外はテンプレのまま。で送信。モザイクだらけですみません。これでもギリギリです。本当は省略部分にモリモリ書いてあります。
なにでつくったか
- スマホアプリ
- iOS 10.2.1
- swift 3.0.2
- カレンダー部分 - JBDatePicker 1.2.0
- 勤怠サービスのスクレイピングツール
- CentOS 6.5 (on Vagrant 1.6)
- Ruby 2.3.1
- スクレイピング部分 - mechanize 2.7.5
ソースはネタバレ情報てんこ盛りなのであげられません!
最後に
私以外の方はきちんと週報を送れているのだろうきっと。さすがだ。。。