はじめに
今回やっていただくのは、図書管理システムの構築になります。
このカリキュラムの集大成です!
要求された仕様を満たす仕組みを自分で考えながら作成してもらいます。
カリキュラムなどを見直しながら、 自力でクリアできるように頑張ってください。 (当然参考になるサイトなどを検索しても構いません!)
実際にある図書館のwebサイトなども参考にするといいかもしれません。
以下に続くように、【準備・確認】 から進めてもらい、準備が整ったら課題に取り掛かってください。
SC3: スキルチェック5
実施前にいくつかの準備と確認が必要となります。
しっかり読み実施しましょう。
プロジェクトの作成
今回のスキルチェック用にSC3というSpringbootのプロジェクトを作成してください。
作成が完了したら、各ファイルを以下のフォルダ構造と同じになるように SC3のプロジェクトに格納してください。
フォルダ構造
src/mainの中は以下の画像のようなフォルダ構造にしてください。
viewの格納場所はtemplatesフォルダで固定してください
画像はdemo3となっていますが、これは任意で変更していいです。(Springbootプロジェクトを新規作成するときに指定できます)

ライブラリの設定
pomファイルには最低限下記のライブラリを記述するようにしてください。
(ほかに入れたいライブラリがあれば自由に入れてもらって構いません。)

システムの要求仕様
それでは今から作成してもらう図書管理システムの要求仕様を説明します。
まず、図書のデータについてです。
| 図書データの要素 | 説明 |
| 図書ID | 自動採番 |
| 題名 | 本のタイトルは50文字以内 |
| 著者名 | 著者名は50文字以内 |
| 図書ジャンル | 日本十進分類法(NDC)に基づいて採番 |
| シリーズ番号 | シリーズものであればその番号を示す |
| 図書の蔵書数 | 同一図書が複数ある場合もあるので、蔵書数を保持 |
ユーザデータは下記にしてください
| ユーザデータの要素 | 説明 |
| 名前 | 50文字以内 |
| パスワード | DBではハッシュ化されて格納されること |
| メールアドレス | ユニーク項目 |
| 管理者権限 | 管理者かどうか |
ユーザは管理者権限の有無で管理ユーザか一般ユーザかを分けられるようにしてください
要求仕様
図書の検索が行えること
・検索条件は、題名、著者名、ジャンル、シリーズでそれぞれ(もしくは組み合わせて)指定できること
図書の貸し出しが行えること
・一般ユーザは貸し出しを申請することで図書の貸し出しが行える。(基本自動承認)
・貸し出し可能冊数は3冊まで
・延滞図書がある場合は貸し出し冊数が3冊未満でも借りれない
・貸し出し期限は一律で2週間
図書の返却が行えること
・一般ユーザは借りている図書を返却申請をし、管理者権限を持ったユーザが承認することで図書の返却が行える。
画面の仕様
・ログイン画面が存在すること(メールアドレスとパスワードでログイン可能)
・ログイン後のトップページでは、現在自分が借りている図書のタイトルと貸し出し期限が一覧で表示されること
・貸し出し期限を過ぎた図書がある場合、警告が表示されること
・貸し出し申請画面と返却申請画面があること
・図書検索画面があること。検索した図書は一覧表示され、そこから図書詳細画面に飛ぶことができること
・図書詳細画面から貸し出し申請画面に飛べること
・管理者ユーザは追加で返却承認画面があること
余力があれば
こちらの仕様は必須仕様ではありませんが、余力がある場合機能追加にチャレンジしてみてください。
・管理者は貸し出し期限を超過した図書があるユーザに対して、返却を促す督促メールを送信することができる。
・文面は自動生成され、延滞ユーザの名前、延滞している図書の名前が文面に含まれるようにすること。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ここまでが必要最低限の仕様です。
不足している仕様があるかもしれませんが、そのような場合はどのような仕様を追加したのか?を別途資料としてまとめたものも成果物として提出してください。
また、ある程度画面のレイアウトや見やすさは考慮して作成してください。
エビデンス
各種画面の初期画面および、入力項目や検索機能がある画面はそれらを実施した画面のスクショを用意すること。
また、他者がソースコードを取得しビルドしたらローカルで同様に起動できるようにしてください(これまでのSpringbootのカリキュラム通りにプロジェクトを作成すれば問題ないはずです。)
