まりぴよこのブログ

日々の日記。技術ネタでまとまりきってないものの記録、伝わる文章の書き方を練習とか。

コピーアプリ 0 : Answers

前置き

Railsに慣れるため、更にコピーアプリ作成!

・・の前に、コピーアプリで目指すものよりもちょっと小さい規模で、自分で使いたい用にアプリを作ってみることにした。

最初は土日の自由時間、合計4~5時間でできるかな〜と思ってたんだけど・・

アプリ概要

簡単な回答を集めるアプリ

解決したい問題

  • メールベースで30名程度のグループの会議の出欠席を集めるのが結構大変
  • 出欠まとめ係の負担を減らしたい(できたらまとめ係不要になると良い)

ターゲット利用者

  • 小規模グループ(30名程度)
  • メンバーは地理的にちょっと離れたところにいる

アプリに求めること

  • 小規模グループで、会議を開催する時にメンバーからの「出席・欠席」を集めたい
  • 議題を挙げて、メンバーから「賛成・反対」投票を集めたい

目標

  • 作業目標時間:5時間程度
  • Herokuで公開

実装する機能

ユーザー

  • 小規模グループ向けのため、すべての機能はログインユーザーに限定
  • Devise ユーザー

トピックス

「会議」「議題」を表すモデル

保持したいデータの内容は以下

  • タイトル
  • 開催日時
  • 開催場所
  • 内容
  • 回答締め切り日

「議題」には開催場所、開催日時が不要なんだけど、似たようなデータ構造なので、一緒にまとめてみた。

※ ここの決断が良かったのか悪かったのか・・途中何回もデータモデルを分けたほうが良かったのか悩んだので、あまり良くなかったかも。。

トピックスへの回答

  • メンバーから2択で回答を収集
  • 回答は 「yes | no」
  • 1トピックに対して、1人のユーザーは1回答に限定
  • 会議の場合 yes -> 出席, no -> 欠席
  • 議題の場合 yes -> 賛成, no -> 反対

※ これもトピックスの設計迷いに関連して・・迷いが発生したところ。 親モデルのtopic_typeで回答のラベルを変えたかった(yes -> 出席 | 賛成)けど、どうしたら良いかわからず中途半端な状態に・・

ラベルが指定出来なくて、yes, noのまま表示してる(←今ココ)

トピックスへのコメント

  • メンバーは自由にトピックスにコメントが付けられる
  • コメント数の上限はなし

出来上がったアプリ

テスト版のデプロイ先: Answers

リポジトリ

github.com

残作業

メール通知系の機能

メンバーに会議・議題の状況が更新されたことをメールで通知したい

あんまり頻繁にメールが飛んでもうっとおしいので、通知のタイミングは要検討!

通知タイミング(検討中)

メンバーとして
  • 会議・議題が回答を受け付ける状態になった時
  • 回答締め切り日を過ぎても、自分が未回答な時
会議・議題の主催者として
  • メンバーの回答があった時
  • メンバーからコメントがついた時
  • 回答締め切り日が来た時

反省点

データモデル設計に失敗した

「会議」「議題」で、ほとんど同じ項目を同じような流れで使うつもりだったので、1モデルにしてみたけど 結局 topic_type で分岐して表示分けしたりしてて、別モデルのほうが扱い易かったかも・・と思った。

しかも途中で何回も分けようかどうしようか迷ってたりして、考えがブレて良くなかった。。

この辺の設計力、まだまだ弱いな〜と反省;;

いちいちオリジナルアプリに挑戦するからこうなるんだけど・・・ 今の段階ではもっとコピーアプリにフォーカスした方が良いんだろうな。。(反省)

Heroku & MySql 忘れてた・・

数カ月前に散々やってたはずなのに、綺麗サッパリ忘れてた・・

やっぱり継続して同じフレームワーク、デプロイ環境で慣れないとダメだな。。

日中の頭がまともに回転してる時間に、ガッツリ取り組みたい;;(愚痴・・)

見積もりが甘すぎた

5時間くらいでできるかな〜と思ったけど、実際作業時間を計測したら11時間くらいかかった・・・

見積もりの倍以上・・あかんがな;;

この規模のアプリで、かかりすぎだと思う;;

多分、理想的にはこのくらいだったら2時間くらいを目標にしないとな感じだと思う。。

5時間は結構現実的に見積もったつもりだったんだけど・・・全然まだまだということがわかった。。 orz

まとめ

脱線終了で、もとのレールに戻ろうと思いますw

コピーアプリやるぞ〜!