日程調整アプリをつくろう-仕込み1-

セッションの進行を行うにあたって、当日完全に即興で行おうかとも思いました。しかし、方向性が全くないのもどうかと考え、簡単なモデリング?を行ってみました。

現状の流れを確認

  1. 誰かがMLに次の開催予定日(土日祝日)と自分の予定を投稿。
  2. 各自が自分の予定を追加したものを投稿。
  3. ある程度予定が登録されたら、その中から一番参加者が多く、良さそうな日にちを私(katahira)が選択。
  4. 決定した開催日をMLに投稿、通知。
図解するとこんな感じ

1.

片平
10/13
10/14
10/20
10/21
10/27
10/28


2.

片平 藤岡
10/13
10/14
10/20
10/21
10/27
10/28


3.

片平 藤岡 大久保 宗形 咲間 小林
10/13 × × ×
10/14
10/20 ×
10/21 ×
10/27
10/28


4.
ML

片平です。
27日がよさそうですね。第5回は27日で行きましょう。

要求モデル

勉強会当日にやってみようという事で省略。

データモデルを洗い出してみる

要求モデルを洗い出していないし、画面のイメージ等も作成していないが、最初に明示した図がほぼ画面イメージと言って差し支えないと思います。
図と現状の流れから、とりあえずML参加者を表すUser,各Userのスケジュールを表すと共にEventの候補日を表すSchedule、各勉強会を表すEventがモデルとして考えてみました。
図の表示でいうとUser部分が青,Schedule部分が赤,Event部分が黄色の所です。
Rails勉強会@東北第5回日程調整

片平 藤岡 大久保 宗形 咲間 小林
10/13 × × ×
10/14
10/20 ×
10/21 ×
10/27
10/28

各モデルに必要な要素を洗い出す

User

  • name 名前を表示させるために必要。
  • email メールアドレス。結果を通知するために。

Schedule

  • schedule_date 開催予定日の為に必要。
  • attend ○,△,×などの状態の為に必要。

Event

  • name イベントのタイトル
  • note 弁当持参して下さいねー。とか会場どこそこ等のメモ用
  • date 勉強会の開催日。

要求モデルを詰めてないと本当はすべきではないのかと思いましたが、とりあえずこれくらい考えてみました。

各モデルの関係を考える

これも本当は要求モデルと詰めてないと関係かわるんだけど・・・叩き台ということで。
図を見たとき、片平というUserに対して、10月13日、14日といったように複数のScheduleが存在している為、UserとScheduleの関係は1対多の関係と考えました。また、Rails東北勉強会@第5回というEventからスケジュールを見たときもやはり、1対多の関係であるように見えます。
したがって下記のようにリレーションシップを設定してみました。
User 1 ----- n Schedule n ----- 1 Event

一応準備出来たけど?

さて、必要最低限叩き台になるようなデータモデルが出来ました。しかし、スケジュールの日付部分の扱いがどうもしっくり行かない気がします。
また、認証や権限、メール配信などをどういう基準で実装するかによっても、データモデルが大きく変わる可能性があります。
しかし、あくまでも仕込みなので、とりあえずここまでにしました。

目次