2019/02/03
ユーザー毎のいいねした日時をGithub風カレンダーヒートマップで可視化するページを作りました。
[2019/06/24]
リニューアルしました。
【個人開発】「Qiitaでいいねしたら草生えるページ」をリニューアルして表示時間を数十秒→1秒に改善した - Qiita
Qiiner
Qiitaでいいねしたら草生えるページ - Qiiner
データはユーザーの いいねした記事 のページから取得しています。
ただし、いいねした日はこのページからはわからないので、いいねした記事の投稿日から推測します。(詳細は後述)
データ取得には数秒から数分程度かかりQiitaへの負荷も高いので、取得結果は数時間キャッシュして再取得は行わないようにしています。
Qiitaいいな〜ランキングでも書きましたが、Qiitaでは記事を書くだけでなく他の人が書いた良い記事にいいねしていく事もとても大切だと思っています。
可視化される事でいいねすることへのモチベーションが上がるのではないかと思い作ってみました。
Firebaseは色々と制約はあるものの簡単に作れていいですね。
この2つの前提を元に以下のロジックでいいねした日を推定しています。
例えば、いいねした記事の投稿日が以下のようになっていたとします。
いいねした日は以下のように推測していきます。
No. | 投稿日 | いいねした日の推測日 |
---|---|---|
⑤ | 2019/01/17 | 2019/01/17 |
④ | 2019/01/11 | 2019/01/16 |
③ | 2019/01/10 | 2019/01/16 |
② | 2019/01/16 | 2019/01/16 |
① | 2019/01/15 | 2019/01/15 |
今回作ったものはいいねした日は正確ではないのでβ版という扱いにしています。
Qiitaいいな〜分析 で書いたように Qiita API で記事のいいねを取得すれば正確な日時がわかるので、正式版ではこちらから取得する予定です。
参考までに、過去にQiitaに書かれていた類似サービスの紹介です。
これらは記事を書くと草が生えるサービスです。