# 神谷文太のjava-semi仕様書 ## ToDoリストシステム ### 改版履歴 |日付|版数|変更内容| |:---:|:---:|:---| |2022/04/22|初版|初版作成| |2022/04/26|第2版|大幅の修正| |2022/04/27|第3版|データベース構造の作成| |2022/05/15|第4版|カテゴリ登録機能の追加とデータベース構造の作成| |2022/05/16|第5版|データベース構造の修正および追加(外部キーや更新日時の追加) 機能の追加(カテゴリ登録機能)| ### 用語の定義 |用語|定義| |:---|:---| |システム|この要求仕様書に基づいて開発するToDoリストシステムのこと。| |ユーザ|本システムを利用する利用者のこと。| |データベース|本システムを運用するために用いるMySQLのこと。| |タスク|ユーザが登録したユーザがやるべきこと| |カテゴリ|ユーザが登録したタスクのひとまとまりのこと| ### 1. 目的 ユーザがタスクを洗い出し、カテゴリ別に分けたりすることで、タスクの抜け漏れを防止するためにシステムを開発する。ユーザはタスクを登録することができ、それらに優先順位や期限をつけて整理することができる。<br> これらの機能を備えたシステムを開発することで、ユーザが安心してタスクを終われせることができ、優雅な生活の一助となることが期待される。 ### 2. 機能要件 #### 2-1. 新規登録機能 ユーザがシステムを利用するために、システムのデータベースにユーザ情報を登録する機能。 ユーザが新規登録ページにおいて下記の事項を正しく入力し、ページ下部の「登録する」ボタンを押すことで、新規登録が完了する。 |入力事項|制約|備考| |:---|:---|:---| |ユーザネーム|NOT NULL|半角英数字| |メールアドレス|NOT NULL, UNIQUE|| |パスワード|NOT NULL, 数字のみ不可, 英字のみ不可|半角英数字の組み合わせ| #### 2-2. ログイン機能 ユーザが新規登録時に登録した情報を用いて、システムの2-3. 以下の機能を使用する為にログインする機能。 ユーザがログインページにおいて必要事項を正しく入力し、ページ下部の「ログイン」ボタンを押下することで、ログインできる。 ログイン後は、トップページに遷移する。 正しい情報が入力されなかった場合は、エラーメッセージが表示され、再度入力が求められる。 |入力事項|制約|備考| |:---|:---|:---| |メールアドレス|NOT NULL, UNIQUE|| |パスワード|NOT NULL, 数字のみ不可, 英字のみ不可|半角英数字の組み合わせ<br>パスワード確認も行う| #### 2-3. タスク登録機能 ユーザがタスクを登録する機能。 ユーザがタスク閲覧ページで、「新規作成」をクリックすることで、タスクの登録が完了する。 #### 2-4. タスク閲覧機能 ユーザはカテゴリを選ぶと、そのカテゴリに属するタスクを閲覧することができる。 #### 2-5. タスクの実施記録機能 ユーザがタスクの実施を完了した際に、実施完了記録をつけることができる。 #### 2-6. カテゴリ登録機能 ユーザがカテゴリを登録する機能。 ユーザがカテゴリ閲覧ページで、「新規作成」をクリックすることで、カテゴリの登録が完了する。 #### 2-7. ログアウト機能 ユーザがシステムを使用後に、他者に不正に使用されないようにログアウトする機能。 ログイン後の各ページ上部にある「ログアウト」ボタンを押下することで、ログアウトできる。 ログアウト後は、ログインページに遷移する。 #### 2-8. カテゴリ登録機能 ユーザがカテゴリを登録する機能。 ユーザがカテゴリ閲覧ページで、「新規作成」をクリックすることで、カテゴリの登録が完了する。 ### 3. データベース構造 #### 3-1. ユーザテーブル |カラム名|説明|型|制約|備考| |:---|:---|:---|:---|:---| |id|ユーザテーブルのキー|INT|PRIMARYKEY<br>AUTO INCREMENT<br>NOT NULL|| |name|ユーザネーム|VARCHAR(20)|NOT NULL|| |email|メールアドレス|VARCHAR(256)|UNIQUE<br>NOT NULL|| |password|パスワード|VARCHAR(20)|NOT NULL|| |created_at|作成日時|DATETIME|NOT NULL|| |updated_at|更新日時|DATETIME|NOT NULL|| #### 3-2. カテゴリテーブル |カラム名|説明|型|制約|備考| |:---|:---|:---|:---|:---| |id|カテゴリテーブルのキー|INT|PRIMARYKEY<br>AUTO INCREMENT<br>NOT NULL|| |name|カテゴリの名前|VARCHAR(50)|UNIQUE<br>NOT NULL|| |created_at|作成日時|DATETIME|NOT NULL|| |updated_at|更新日時|DATETIME|NOT NULL|| |user_id|登録したユーザーのID|INT|NOT NULL|| #### 3-3. タスクテーブル |カラム名|説明|型|制約|備考| |:---|:---|:---|:---|:---| |id|タスクテーブルのキー|INT|PRIMARYKEY<br>AUTO INCREMENT<br>NOT NULL|| |name|タスクの名前|VARCHAR(50)|NOT NULL|| |created_at|作成日時|DATETIME|NOT NULL|| |updated_at|更新日時|DATETIME|NOT NULL|| |completed|タスクが完了したか否か|BOOLEAN|NOT NULL|| |memo|メモ|VARCHAR(500)|NOT NULL|| |deadline|タスクの期限|DATETIME||| |user_id|登録したユーザーのID|INT|NOT NULL|| |category_id|属しているカテゴリのID|INT|NOT NULL||
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up