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_at と updated_at という物理名にしておけば、レコードインサート時、アップデート時に自動で設定されます。

まとめ

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