Skip to content

Spring Boot Javaで作成されたグループ企業の社員情報を管理するためのWEB API

Notifications You must be signed in to change notification settings

tonbiattack/employee-management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

employee-management

社員情報を管理するAPIです。
webエンジニアとしての基礎技術の習得を目的に作成しました。
グループ企業の会社の社員管理を想定しております。
社員の基本情報を管理するだけではなく、社員の持つスキルに関しても着目して作成しました。
なぜならば、会社内で社員の持つスキルに関して詳細に把握している企業が少ないように感じたためです。

希望ポジションはバックエンドエンジニアであるため、APIのみ作成しました。
Swagger上から叩いてみてください。

ER図を実際の実務に耐えられるように設計したため、全機能を作成しておりません。

ER図

image

  • ER図はA5:SQL Mk-2を用いて作成しました。employee-management\rdb\erフォルダにemployee-management-er-diagram.a5erというファイル名でER図を置いておりますが、A5:SQL Mk-2がないと閲覧できません。

  • テーブル定義書のHTMLはemployee-management\rdbフォルダに置いております。

  • データベース設計はWEB+DB PRESS Vol.130のイミュータブルデータモデル と楽々ERDレッスンを参考にして作成しました。

使用技術

  • Java 19
  • Spring Boot 2.7.7
  • Maven 4.0.0
  • JUnit 5
  • PostgreSQL 14
  • MyBatis-Spring 2.2.2
  • MyBatis Generator 1.3.0
  • GitHub Actions

アピールポイント

  • リーダブルコード現場で役立つシステム設計の原則 ~変更を楽で安全にするオブジェクト指向の実践技法良いコード/悪いコードで学ぶ設計入門を参考に読みやすいコードや保守性の高いコードになるように意識してコーディングをしました。

  • データベース設計は実務の中で積めていなかった経験であり、後工程での手戻りが非常に大きくなる工程なのでWEB+DB PRESS Vol.130のイミュータブルデータモデル と楽々ERDレッスンを参考にして何度も修正を重ねながら作成しました。

  • テストが必要なメソッドに関してはテストを作成し、安心してリファクタリングができるような体制を作りました。

  • 一人の開発でもコードを読み返したときに理解しやすくなるように、javadocや意図コメントをコードを書きながら書くように意識しました。

  • パッケージはコントローラーやモデル、サービスなど設計パターンでまとめる技術駆動パッケージではなく、業務の関心ごとを元にまとめるようなパッケージにすることにより、一つの機能で複数のパッケージを検索する手間を削減するように努めました。

  • エラーメッセージなどのファイルはハードコーディングしないように別途ファイルに書き出すようにして、保守性を高めました。

  • GitHub Actionsを用いてCIを構築し、push時に自動テストを実行するようにしました。

機能一覧

  • ユーザー登録、ログイン機能(JWT認証で実装)
  • トランザクション管理機能
  • 権限管理機能
  • ロギング機能
  • CRUD機能
  • ビジネスロジックの実装
  • バリデーション機能
  • GitHub ActionsによるCI機能

詳細仕様

  • GETは未認証でもできる。
  • POSTは認証しないと利用できない。(※データを更新しない[/api/v1/employees/skills/search]は例外)
  • DELETEはADMINロールを持つユーザーだけが実行することができる。

実行要件

アプリケーションをローカルで実行する

git cloneをしてプロジェクトを取得する。

git clone https://github.com/tonbiattack/employee-management.git

プロジェクトのパッケージまで移動する。

cd /your-directory/employee-management

実行する。

mvn spring-boot:run

APIドキュメント

http://localhost:8080/swagger-ui/

image

認証方法

1.ページ下部の認証をクリック

image

2.Try it outをクリック

image

3.レスポンスをコピーする

image

4.画面上部のAuthorizeをクリックする

image

5.Beare + コピーしたレスポンスを貼り付けてAuthorizeボタンをクリック

image

認証完了。