コピーアプリ 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
残作業
メール通知系の機能
メンバーに会議・議題の状況が更新されたことをメールで通知したい
あんまり頻繁にメールが飛んでもうっとおしいので、通知のタイミングは要検討!
通知タイミング(検討中)
メンバーとして
- 会議・議題が回答を受け付ける状態になった時
- 回答締め切り日を過ぎても、自分が未回答な時
会議・議題の主催者として
- メンバーの回答があった時
- メンバーからコメントがついた時
- 回答締め切り日が来た時
反省点
データモデル設計に失敗した
「会議」「議題」で、ほとんど同じ項目を同じような流れで使うつもりだったので、1モデルにしてみたけど 結局 topic_type で分岐して表示分けしたりしてて、別モデルのほうが扱い易かったかも・・と思った。
しかも途中で何回も分けようかどうしようか迷ってたりして、考えがブレて良くなかった。。
この辺の設計力、まだまだ弱いな〜と反省;;
いちいちオリジナルアプリに挑戦するからこうなるんだけど・・・ 今の段階ではもっとコピーアプリにフォーカスした方が良いんだろうな。。(反省)
Heroku & MySql 忘れてた・・
数カ月前に散々やってたはずなのに、綺麗サッパリ忘れてた・・
やっぱり継続して同じフレームワーク、デプロイ環境で慣れないとダメだな。。
日中の頭がまともに回転してる時間に、ガッツリ取り組みたい;;(愚痴・・)
見積もりが甘すぎた
5時間くらいでできるかな〜と思ったけど、実際作業時間を計測したら11時間くらいかかった・・・
見積もりの倍以上・・あかんがな;;
この規模のアプリで、かかりすぎだと思う;;
多分、理想的にはこのくらいだったら2時間くらいを目標にしないとな感じだと思う。。
5時間は結構現実的に見積もったつもりだったんだけど・・・全然まだまだということがわかった。。 orz
まとめ
脱線終了で、もとのレールに戻ろうと思いますw
コピーアプリやるぞ〜!