カテゴリー
サインイン 新規登録

間違いや改善の指摘

内容の技術的な誤り・誤字脱字やミスのご報告・解説やトピックの追記/改善のご要望は教材をさらに良くしていく上でとても貴重なご意見になります。

少しでも気になった点があれば、ご遠慮なく投稿いただけると幸いです🙏

実際には誤りではなく勘違いであっても、ご報告いただけることで教材のブラッシュアップにつながります。

質問ポリシー①

教材受講者みなさんのスムーズな問題解決のために、心がけていただきたいことがあります。

教材の内容に関する質問を投稿しましょう

教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。

その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。

0-6

設計

設計

本章では、カリキュラムを始める前に、作成するアプリケーションの仕様と大まかな設計を提示します。テスト駆動開発は、テストを書きながら詳細設計を行っていくので、細かい部分は教材を進めながら決めていきます。

画面設計

本教材で作成するアプリケーションは「ヨガ教室の予約サイト」ですが、すべてテストを通して動作確認をするため、作成する画面はありません。しかし、より完成形をイメージしやすいように、画面イメージを事前に共有しておきます。

レッスン一覧画面

image-20200407105346240

レッスン詳細画面

image-20200407105328311

テーブル設計

必要な情報は以下のとおりです。

  • ユーザー
  • レッスン
  • 予約

ER図

ER図

reservations.lesson_id が lessons.id に、reservations.user_id が users.id にひもづきます。

ユーザー

論理名 物理名 データ型とサイズ 制約と付帯情報
ID id UNSIGNED BIGINT PK, auto increment
名前 name VARCHAR(255) not null
メールアドレス email VARCHAR(255) not null, unique
メールアドレス確認日時 email_verified_at TIMESTAMP
パスワード password VARCHAR(255) not null
ログイン維持用トークン remember_token VARCHAR(100)
プラン plan VARCHAR(20) not null, regular または gold
作成日時 created_at TIMESTAMP
更新日時 updated_at TIMESTAMP

レッスン

論理名 物理名 データ型とサイズ 制約と付帯情報
ID id UNSIGNED BIGINT PK, auto increment
名称 name VARCHAR(255) not null
講師名 coach_name VARCHAR(255) not null
募集人数 capacity UNSIGNED INT not null
開始日時 start_at TIMESTAMP not null
終了日時 end_at TIMESTAMP not null
作成日時 created_at TIMESTAMP
更新日時 updated_at TIMESTAMP

予約

論理名 物理名 データ型とサイズ 制約と付帯情報
ID id UNSIGNED BIGINT PK, auto increment
ユーザーID user_id UNSIGNED BIGINT FK (users.id)
レッスンID lesson_id UNSIGNED BIGINT FK (lessons.id)
作成日時 created_at TIMESTAMP
更新日時 updated_at TIMESTAMP

ルール

  • レッスンの開始日時と終了日時はそれぞれ TIMESTAMP 型で持つが、表示上は日付と開始時刻、終了時刻に分割して表示すること(開始日時と終了日時の日付が異なるケースは想定しなくてよい)
  • 空き状況を示す記号はそれぞれ以下のルールで出し分けること
    • 5枠以上: ◎
    • 5枠未満: △
    • 0: ×

ルールは、カリキュラムの過程で、追加・変更されることがあります。