1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【個人開発 #3】初学者がrailsでTODOアプリを作ってみる~詳細設計~

Posted at

はじめに

こちらの続きですっ

全体の詳細設計

ユーザー新規登録とログイン機能の詳細設計

・ユーザー新規登録画面を作成します。必要な情報として、ユーザー名、メールアドレス、パスワードが必要です。
・パスワードは、ハッシュ化してデータベースに格納します。
・ログイン画面を作成します。ログインに必要な情報として、メールアドレスとパスワードが必要です。
・ログインに成功した場合は、セッションを開始し、TODOアプリにアクセスできるようにします。
・ログインに失敗した場合は、エラーメッセージを表示します。

TODOアイテムの作成、編集、削除の詳細設計

・TODOアイテム作成画面を作成します。必要な情報として、TODOアイテムのタイトル、締め切り日、進捗状況が必要です。
・TODOアイテムの編集、削除機能も実装します。
・TODOアイテムをデータベースに格納するために、TODOアイテムテーブルを作成し、必要なカラムを定義します。

TODOアイテムの一覧表示画面の詳細設計

・TODOアイテムの一覧表示画面を作成します。カード形式で表示し、タイトル、締め切り日、進捗状況を表示する必要があります。
・カードの並び順は、締め切り日が近いものから順に表示する必要があります。
・カードをクリックした場合は、TODOアイテムの詳細画面に遷移します。

TODOアイテムの詳細画面の詳細設計

・TODOアイテムの詳細画面を作成します。サブ画面として表示し、タイトル、締め切り日、進捗状況、詳細説明などの情報を表示する必要があります。
・TODOアイテムの編集、削除機能も実装します。

カレンダー画面の詳細設計

・カレンダー画面を作成します。カレンダー上にTODOアイテムの締め切り日を表示します。
・カレンダー上でTODOアイテムをクリックした場合は、TODOアイテムの詳細画面に遷移します。

実装の注意点

・データベースには、ユーザーテーブルとTODOアイテムテーブルが必要です。ユーザーテーブルには、ユーザー名、メールアドレス、パスワードなどの情報を格納します。TODOアイテムテーブルには、TODOアイテムのタイトル、締め切り日、進捗状況などの情報を格納します。

・パスワードは、ハッシュ化して格納する必要があります。また、ログイン時には、入力されたパスワードをハッシュ化してデータベース内のハッシュ化されたパスワードと比較する必要があります。

・ログイン後には、セッションを開始する必要があります。セッションを使用することで、ユーザー情報を保持し、ログイン状態を維持することができます。

・TODOアイテムの作成、編集、削除機能では、フォームやボタンなどのUI要素の実装が必要です。また、入力値のバリデーションも必要です。

・一覧表示画面では、TODOアイテムをカード形式で表示する必要があります。カードのデザインやレイアウト、並び順の実装が必要です。

・詳細画面では、TODOアイテムの詳細情報を表示する必要があります。また、編集、削除ボタンの実装も必要です。

・カレンダー画面では、カレンダーのUI要素の実装が必要です。また、TODOアイテムの締め切り日の取得方法や、カレンダー上でのTODOアイテムの表示方法などが課題になります。

おわりに

個別の詳細設計をもう少しかみ砕いて書いて、実装してみたいと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?