Laravel入門 ToDoアプリの企画と設計(第2回)

2021-01-01
2 min read

今回は、ToDo アプリの企画と設計になります。

企画(ToDoアプリ使用イメージ)

ブラウザを通して ToDo を登録します。 登録された時点の ToDo はスターテスが未着手となり、その後、着手、完成と変遷します。

ユーザーは、すべきことを思いついたとき、誰かから依頼されたときに、その都度、登録します。 毎朝、ToDo 一覧から、本日中に着手するものを選んでステータスを着手にします。 着手中の ToDo が完了した時点でステータスを完了とします。

他の ToDo との違いは、ステータス登録に着手があるところです。 事前に行動を計画してから、やるぞと決めたものを、やりきるようにしています。

以下の機能については初回の開発を見送ります。

  • スマホ UI 対応
  • ログイン
  • 毎日、毎週などの定型化タスクの登録
  • レポート機能(今月登録した数、完成した数など)

設計

今回、題材に選んだ ToDo の設計になります。 設計は、Laravel での Web アプリ開発を一通り体験するためシンプルなものにしています。 よって、カテゴリなどは導入してません。 設計として以下のことを取り決めておきます。

  • 機能
  • 画面
  • テーブル設計
  • URL 設計

機能一覧

  • ステータス毎の ToDo 一覧
  • ToDo 登録
  • ToDo 削除
  • ToDo 修正

一覧画面に ToDo が表示され、選択したものを修正、削除できること 新規に ToDo を追加できることです。

画面

  • 一覧画面

ToDo一覧画面

  • 詳細画面

ToDo詳細l画面

テーブル設計

ToDo を管理する Task テーブルです。

tasks

論理名 物理名 制約 補足
ID id bigserial not null pk
タスク名 title character varying(40) not null
ステータス ststus integer not null
概要 description character varying(200)
作成日 created_at timestamp
更新日 updated_at timestamp

Laravel の場合、テーブル名は複数形にします。 Laravel では id というフィールド名が、主キーになります。自動増分します。 ステータスとしては、未着手、着手中、完了、延期の 4 パターンになり、それぞれ 1 から 4 のコード値になります。 作成日と更新日は、created_atupdated_at という物理名にしておけば、レコードインサート時、アップデート時に自動で設定されます。

まとめ

この企画内容から、「非常に単純なアプリ作成で楽勝だな」と思われる事でしょう。開発環境が整えられた状態で、テストコードが不要なら楽勝です。 しかし、xampp など使用せず、本格的な開発環境として Docker で環境構築。さらに、テストコードを用意して、可能な限りテストファーストで作成するという内容です。 楽勝どころか非常に学びが多いものとなっています。