2008年1月17日木曜日

日程調整アプリ - ざっくり仕様

というわけで、手探りで日程調整アプリの作成にとりかかる

まずはざっくりと外部仕様を決める
  1. 誰でも新たな日程調整が始められる
  2. 他人の日程調整は簡単に覗けないようにする
  3. パスワード認証はないほうがいい
  4. 性善説に則る(他人の入力は変更できる)か?
  5. 性悪説に則る(自分の入力のみ変更できる)か?
  6. 日程の候補は、日付のみと、日付+時間と、それ以外(自由)
  7. 日付は、カレンダーから選択したい
  8. 参加者の重み付けができる(偉い人の日程を優先とか)といい
  9. 参加者は追加できる
  10. 入力候補は◎○△×から選ぶ
  11. 未入力者に催促できる
  12. 集計結果は一覧できる(主催者用はランキングも表示できたらいい)
  13. 最終結果をアナウンスできる
操作フローはこんな感じで
  1. 主催者はイベントの概要を入力する
  2. アプリは主催者にメールで主催者用URLを通知する
  3. 主催者は参加者のメアドを登録する
  4. 主催者は日程の候補を入力する
  5. アプリは参加者にメールで参加者用URLを通知する
  6. 参加者は出欠を入力する
  7. 主催者は集計結果を見る
  8. 主催者は未入力者に催促メールを送る
  9. 主催者は最終結果をメールで送る
といった感じだろうか

これらの仕様から、まずデータベースを考えてみると、以下の4つのテーブルが必要そうだ
  • イベント(event)
    • イベント名(name)
    • イベント詳細(desc)
    • 固有ID(event_uuid)
    • 主催者名(owner_name)
    • 主催者メアド(owner_email)
  • 日程候補(option)
    • イベントID(event_id)
    • 日程内容(desc)
  • 参加者(member)
    • 参加者名(name)
    • 参加者メアド(email)
    • イベントID(event_id)
  • 入力結果(attendance)
    • 参加者ID(member_id)
    • 日程候補ID(option_id)
    • 出欠(attend)
間違ってても後で簡単に変更できるようなので、とりあえずこんな感じにしておく

次回はイベント入力画面を作成してみたい

0 件のコメント: