今回は、ToDo アプリの企画と設計になります。
企画(ToDoアプリ使用イメージ)
ブラウザを通して ToDo を登録します。 登録された時点の ToDo はスターテスが未着手となり、その後、着手、完成と変遷します。
ユーザーは、すべきことを思いついたとき、誰かから依頼されたときに、その都度、登録します。 毎朝、ToDo 一覧から、本日中に着手するものを選んでステータスを着手にします。 着手中の ToDo が完了した時点でステータスを完了とします。
他の ToDo との違いは、ステータス登録に着手があるところです。 事前に行動を計画してから、やるぞと決めたものを、やりきるようにしています。
以下の機能については初回の開発を見送ります。
- スマホ UI 対応
- ログイン
- 毎日、毎週などの定型化タスクの登録
- レポート機能(今月登録した数、完成した数など)
設計
今回、題材に選んだ ToDo の設計になります。 設計は、Laravel での Web アプリ開発を一通り体験するためシンプルなものにしています。 よって、カテゴリなどは導入してません。 設計として以下のことを取り決めておきます。
- 機能
- 画面
- テーブル設計
- URL 設計
機能一覧
- ステータス毎の ToDo 一覧
- ToDo 登録
- ToDo 削除
- ToDo 修正
一覧画面に ToDo が表示され、選択したものを修正、削除できること 新規に ToDo を追加できることです。
画面
- 一覧画面
- 詳細画面
テーブル設計
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 で環境構築。さらに、テストコードを用意して、可能な限りテストファーストで作成するという内容です。 楽勝どころか非常に学びが多いものとなっています。