190517 日記アプリの要件を再考

今日やること

  • 要件をもう一度考えて文章にする

    闇雲にUserモデル作り始めたけれど、モデルとモデルの関係を整理していなくて、どうすればよいか分からなくなってしまったため。

日記アプリの要件

  • ユーザ登録機能
  • ログイン/ログアウト機能
    • ユーザは自分のリソースのみを閲覧できる
  • 日記一覧機能
    • 年月を選択して閲覧できる
  • 日記投稿機能
    • 日付・本文・気分・症状・活動量・起床時間・就寝時間
    • 必ずしも全てを埋める必要はない。
  • 日記編集機能
  • よかったこと投稿機能
    • よかったことの投稿機能
  • よかったこと一覧機能
  • 症状登録機能
    • よく現れる症状を登録し、ダイアリーに記録する
  • 症状一覧機能
  • 生活記録機能
    • Togglと連携し、1日の時間の使い方を1週間単位で可視化
    • 起床時間・就寝時間・気分・食欲・症状・活動量・歩行距離
  • 体調グラフ機能
    • 月単位の気分・症状・活動量の推移をグラフにし、可視化
    • 歩行距離をiphoneから取得して、反映させる。healthcare apiを使用してなんとかする。

Model

Model Column Data type リソース内容
User name :string ユーザ名
email :string メールアドレス
password_digest :string パスワード
Model Column Data type リソース内容
Diary created_at :datetime 投稿日時
updated_at :datetime 編集日時
content :string 日記本文
woke_up_at :datetime 起床時間(24時間)
slept_at :datetime 就寝時間(24時間)
activity :integer 活動量(5段階)
mood :integer 気分(5段階)
appetite :integer 食欲(5段階)
walking_distance :integer 歩行距離(km)
user_id :integer ユーザID(外部キー)
Model Column Data type リソース内容
Symptom name :string 症状名
user_id :integer ユーザID(外部キー)
Model Column Data type リソース内容
Memory content :string よかったこと
user_id :integer ユーザID(外部キー)
created_at :datetime 投稿日時

リソースの分割

  • ユーザーリソース
    • ユーザ1人に対応するリソース。ユーザが書いた日記や症状、よかったことが入っている。
  • ダイアリーリソース
    • ユーザが作成した日記。投稿日時・更新日時・起床/就寝時間、日記などが入っている。1ユーザが複数のダイアリーをもつ。
  • 症状リソース
    • ユーザが抱える症状。ユーザに紐づいている。
  • 生活記録リソース
    • ユーザの生活リズムを週単位で表現するリソース。ダイアリーリソースの情報も一部転用されている。
  • 体調グラフリソース
    • ユーザの体調の推移を月単位で表現するリソース。ダイアリーで入力された情報を元にグラフを作成して表示する。

参考:『Webを支える技術』

Routing

これをすべて考えたら、コーディングに移れるはず。