kouの技術的メモ

学習した内容の定着やアウトプット用に開設しました

成果物の作成 2作品目 予定管理サービス ざっくり要件定義と構想

オリジナルアプリ2作目です。

独学だと自己管理が大変だったので、自作の予定管理サービスを作りたくなり、作ってみました。

現在の目標
  • ユーザー登録機能(ツイッターoauth認証)

  • ログイン、ログアウト機能

  • ログインしたユーザーは自分の一日のスケジュールを立てることができる。

DBに収納するデータはtime型が良さそう。stringでも行けるかな?

twitter認証機能追加

gemのdviseとomniauthを使えば実現できそうです。

DBモデル作成

twitter-oauthに合わせて中身を作ります。 Userモデル(登録ユーザ情報)

主キー 名前 プロバイダー名 UID ユーザー画像url
id user_name :provider uid image_url
integer型 string型 string型 string型 string型

DayScheduleモデル

外部キー 主キー 一日の予定
integer型 integer型 string型|integer
User_id day_schedule_id day_schedule


TimeScheduleモデル

外部キー 主キー 一つの予定単位 始まりの時間 終わりの時間
integer型 integer型 string型 time型or string型 time型or string型
DaySchedule_id time_schedule_id time_schedule start_time end_time


_ ○余裕があれば作りたい機能

  • 一週間分のスケジュールを作れる

    ざっくり調べたらデータベースのレコードの数を制限する方法はあるらしいので、バリデーションを一週間分(つまり7個だけ)だけに制限するデータは作れそう。モデルのuser_id - day of the week - time - content

  • スケジュールのグラフ表示

 これもざっくり調べたらgemのChartkickを使えば実現できそうです

Chartkick - Create beautiful JavaScript charts with one line of Ruby

時間のグラフを描画する場合、time_lineメソッドを使えば、タイムラインの表示できるようです。 この場合、時間の書式としてはtimeline[[内容,日時,日時],...となるようです

<%= timeline [
  ["Washington", "1789-04-29", "1797-03-03"],
  ["Adams", "1797-03-03", "1801-03-03"],
  ["Jefferson", "1801-03-03", "1809-03-03"]
] %>