GithubHelp home page GithubHelp logo

rei-k / engineers_gate_spring_boot_sample Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tomo-sato/engineers_gate_spring_boot_sample

0.0 0.0 0.0 10.05 MB

JavaScript 8.12% Java 47.35% CSS 15.51% HTML 29.02%

engineers_gate_spring_boot_sample's Introduction

EngineersGate SpringBoot サンプルアプリケーション

Engineers Gateの教材としてSpringBootで作成した、掲示板サイトになります。

目的

SpringBootでのWebアプリケーション作成において、
サンプルコードとして参照していただくことを目的としております。

作成した機能としては、

  • アカウント作成機能
  • ログイン機能
  • アカウントごとのトピック作成機能
  • トピックに対するコメント投稿機能

を実装しております。

インストール方法

アプリ起動までの大まかな流れとしては、

  1. git clone する。
  2. Eclipseにプロジェクトをインポートする。
  3. DBを作成する。
  4. アプリのDB接続設定( application.properties )を確認する。
  5. Eclipseでプロジェクトを起動する。

の流れになります。
詳しい手順は資料を用意しました。下記参照ください。

手順書: EngineersGate__SpringBoot_サンプルアプリケーションセットアップ.pdf

設計

使用した技術、実行環境及び設計は以下になります。

実行環境

  • OS:Windows10
  • IDE:Eclipse 2022-12
  • Java:1.8.0_231
  • SpringBoot:3.0.2
  • MySQL:8.0.32

DB設計

ER図

パッケージ構成

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の先にページが存在しない場合表示します。

  • システムの不具合等により、予期せぬ例外が発生した場合表示します。

engineers_gate_spring_boot_sample's People

Contributors

tomo-sato avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.