Engineers Gateの教材としてSpringBootで作成した、掲示板サイトになります。
SpringBootでのWebアプリケーション作成において、
サンプルコードとして参照していただくことを目的としております。
作成した機能としては、
- アカウント作成機能
- ログイン機能
- アカウントごとのトピック作成機能
- トピックに対するコメント投稿機能
を実装しております。
アプリ起動までの大まかな流れとしては、
- git clone する。
- Eclipseにプロジェクトをインポートする。
- DBを作成する。
- アプリのDB接続設定( application.properties )を確認する。
- Eclipseでプロジェクトを起動する。
の流れになります。
詳しい手順は資料を用意しました。下記参照ください。
手順書: EngineersGate__SpringBoot_サンプルアプリケーションセットアップ.pdf
使用した技術、実行環境及び設計は以下になります。
- OS:Windows10
- IDE:Eclipse 2022-12
- Java:1.8.0_231
- SpringBoot:3.0.2
- その他参照ライブラリは build.gradle 参照
- MySQL:8.0.32
src
└─main
├─java
│ └─jp
│ └─dcworks
│ └─engineersgate
│ └─egbbs
│ ├─controller # コントローラクラスの管理。
│ ├─core # コアクラスの管理。アプリ基底処理及び、設定に関する処理のプログラム群。
│ │ └─annotation
│ ├─dto # DTOクラスの管理。入力フォーム関連。
│ ├─entity # DBエンティティクラスの管理。
│ ├─repository # DBアクセスリポジトリ。
│ ├─service # リポジトリをラップしたサービスクラス等。他、必要に応じて外部連携等コンポーネント管理。
│ └─util # ユーティリティクラスの管理。
└─resources
├─static # 静的ファイル。js、css等。
│ └─assets
└─templates # テンプレートファイル。
├─account
├─common
├─error
├─home
├─login
└─topic
ログイン機能を提供します。
- 「ログインID」「パスワード」を入力し、ログインします。
- 「ログインID」「パスワード」は必須入力です。
- 「ログインID」「パスワード」を入力しなかった場合、jsでバリデーションを行いエラーとします。
- HTMLの改ざんを考慮し、jsのバリデーションを改ざんされた場合、サーバサイドでバリデーションを行います。
アカウント作成機能を提供します。
- 「お名前」「ログインID」「パスワード」を入力し、ログインします。
- 「お名前」「ログインID」「パスワード」は必須入力です。
- 「お名前」「ログインID」「パスワード」は最大文字数32文字です。
- 「お名前」「ログインID」「パスワード」を入力しなかった場合、jsでバリデーションを行いエラーとします。
- HTMLの改ざんを考慮し、jsのバリデーションを改ざんされた場合、サーバサイドでバリデーションを行います。
- すでに登録されている場合(同一の「ログインID」が存在する場合)、サーバサイドでバリデーションを行います。
- 正常に入力が行われた場合、完了画面へ遷移しアカウントが登録されます。
トピック一覧参照機能を提供します。
- トピックが投稿されていない状態ではアラートを表示します。
- 「トピックを投稿する」ボタン押下で、トピック投稿画面に遷移します。
- トピックが投稿されている状態では、「タイトル」「本文」「ニックネーム」「投稿日時」を表示します。
- 登録済みのトピック「No.」「タイトル」「本文」のリンクよりトピック詳細画面へ遷移します。
トピック投稿機能を提供します。
- 「タイトル」「本文」を入力し、トピックを投稿します。
- 「タイトル」「本文」は必須入力です。
- 入力内容に誤りがある場合、サーバサイドでバリデーションエラーとします。
- トピックの投稿が正常に完了した場合、トピック詳細画面へ遷移します。
- また、トピック投稿完了のメッセージを表示します。
投稿されたトピックの内容表示機能を提供します。
また、トピックに対してコメントを投稿する機能を提供します。
- 投稿者のトピックが閲覧できます。
- ログインしているユーザーがトピックの投稿者であった場合、トピックの削除ができます。
- トピックを削除した場合、トピックにぶら下がるコメントも一緒に削除されます。
- トピックに対してコメントを投稿することができます。
- コメントの投稿は、コメントの入力を必須としています。
- 入力内容に誤りがある場合、サーバサイドでバリデーションエラーとします。
- ログインしているユーザーのコメントであった場合、コメントの削除ができます。
ページが存在しない、システム内で不具合が発生した場合のエラー画面を提供します。
- 指定したURLの先にページが存在しない場合表示します。
- システムの不具合等により、予期せぬ例外が発生した場合表示します。