# tuntunhlaing/employee-management-fullstack architecture

> Architecture diagram of the GitHub repository tuntunhlaing/employee-management-fullstack, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/tuntunhlaing/employee-management-fullstack
- Repository: https://github.com/tuntunhlaing/employee-management-fullstack

## Overview

This full-stack employee-management system lets an administrator log in, then view and manage employee records. The React app routes between login and the home page; employee-list UI and forms communicate with the Spring API, whose service layer performs employee operations against persistence. Backend authentication validates administrator credentials and issues or refreshes JWTs, with a filter supporting protected requests. The README provides no capability details, and unsampled frontend form/API behavior and backend security wiring are not fully mapped; dashed edges mark the UI-to-API boundary.

Main entry points: [`BE/employee-management-system/src/main/java/com/tt/employee_management_system/controller/EmployeeManagementController.java`](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/controller/EmployeeManagementController.java) (Employee endpoints), [`FE/employee-management-system/src/components/EmployeeList.jsx`](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/FE/employee-management-system/src/components/EmployeeList.jsx) (Employee list), [`BE/employee-management-system/src/main/java/com/tt/employee_management_system/service/impl/EmployeeManagementServiceImpl.java`](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/service/impl/EmployeeManagementServiceImpl.java) (Employee service), [`BE/employee-management-system/src/main/java/com/tt/employee_management_system/service/impl/AuthServiceImpl.java`](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/service/impl/AuthServiceImpl.java) (Auth service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["React application"]
  node_app["Route app<br/>[App.js]"]
  node_login["Login page<br/>[LoginPage.jsx]"]
  node_home["Home page<br/>[HomePage.jsx]"]
  node_employee_list["Employee list<br/>[EmployeeList.jsx]"]
  node_create_form["Create form"]
  node_edit_form["Edit form"]
  node_delete_box["Delete confirmation"]
  node_employee_reducer["Employee reducer<br/>[employeeReducer.js]"]
end

subgraph group_auth["Authentication"]
  node_auth_controller["Auth endpoints"]
  node_auth_service["Auth service"]
  node_jwt_utils["JWT utilities<br/>[JwtUtils.java]"]
  node_jwt_filter["JWT filter"]
  node_auth_types["Token types<br/>[TokenType.java]"]
end

subgraph group_employees["Employee management"]
  node_employee_controller["Employee endpoints"]
  node_employee_service["Employee service"]
  node_employee_request["Employee request"]
  node_employee_response["Employee response"]
end

subgraph group_data["Domain and persistence"]
  node_employee_entity["Employee entity<br/>[Employee.java]"]
  node_employee_repo[("Employee repository")]
  node_admin_entity["Admin entity<br/>[Admin.java]"]
  node_admin_repo[("Admin repository")]
  node_init_service["Admin bootstrap<br/>[InitService.java]"]
end

node_user(("Administrator"))

node_user -->|"uses"| node_app
node_app -->|"routes to"| node_login
node_app -->|"routes to"| node_home
node_home -->|"renders"| node_employee_list
node_employee_list -->|"opens"| node_create_form
node_employee_list -->|"opens"| node_edit_form
node_employee_list -->|"opens"| node_delete_box
node_login -.->|"submits credentials"| node_auth_controller
node_employee_list -.->|"requests employee data"| node_employee_controller
node_create_form -.->|"creates employee"| node_employee_controller
node_edit_form -.->|"updates employee"| node_employee_controller
node_delete_box -.->|"deletes employee"| node_employee_controller
node_auth_controller -->|"delegates"| node_auth_service
node_auth_service -->|"looks up admin"| node_admin_repo
node_auth_service -->|"generates or parses"| node_jwt_utils
node_auth_service -->|"selects token type"| node_auth_types
node_jwt_filter -->|"parses tokens"| node_jwt_utils
node_jwt_filter -->|"checks token type"| node_auth_types
node_employee_controller -->|"delegates"| node_employee_service
node_employee_controller -->|"accepts"| node_employee_request
node_employee_controller -->|"returns"| node_employee_response
node_employee_service -->|"reads and writes"| node_employee_repo
node_employee_service -->|"maps records"| node_employee_entity
node_employee_service -->|"consumes"| node_employee_request
node_employee_service -->|"produces"| node_employee_response
node_employee_request -->|"converts to"| node_employee_entity
node_employee_response -->|"maps from"| node_employee_entity
node_init_service -->|"checks and saves"| node_admin_repo
node_init_service -->|"creates"| node_admin_entity
node_admin_repo -->|"persists"| node_admin_entity
node_employee_repo -->|"persists"| node_employee_entity

click node_app "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/FE/employee-management-system/src/App.js"
click node_login "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/FE/employee-management-system/src/pages/LoginPage.jsx"
click node_home "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/FE/employee-management-system/src/pages/HomePage.jsx"
click node_employee_list "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/FE/employee-management-system/src/components/EmployeeList.jsx"
click node_create_form "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/FE/employee-management-system/src/components/CreateEmployeeForm.jsx"
click node_edit_form "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/FE/employee-management-system/src/components/EditEmployeeForm.jsx"
click node_delete_box "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/FE/employee-management-system/src/components/DeleteConfirmationBox.jsx"
click node_employee_reducer "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/FE/employee-management-system/src/reducer/employeeReducer.js"
click node_auth_controller "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/controller/AuthController.java"
click node_auth_service "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/service/impl/AuthServiceImpl.java"
click node_jwt_utils "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/jwt/JwtUtils.java"
click node_jwt_filter "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/jwt/JwtTokenAuthFilter.java"
click node_auth_types "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/jwt/TokenType.java"
click node_employee_controller "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/controller/EmployeeManagementController.java"
click node_employee_service "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/service/impl/EmployeeManagementServiceImpl.java"
click node_employee_request "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/model/EmployeeRequest.java"
click node_employee_response "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/model/EmployeeResponse.java"
click node_employee_entity "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/domain/entity/Employee.java"
click node_employee_repo "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/domain/repository/EmployeeRepository.java"
click node_admin_entity "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/domain/entity/Admin.java"
click node_admin_repo "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/domain/repository/AdminRepository.java"
click node_init_service "https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/initor/InitService.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_login,node_home,node_employee_list,node_create_form,node_edit_form,node_delete_box,node_employee_reducer toneBlue
class node_auth_controller,node_auth_service,node_jwt_utils,node_jwt_filter,node_auth_types toneAmber
class node_employee_controller,node_employee_service,node_employee_request,node_employee_response toneMint
class node_employee_entity,node_employee_repo,node_admin_entity,node_admin_repo,node_init_service toneRose
class node_user toneIndigo
```

## Components

### React application

- [Route app](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/FE/employee-management-system/src/App.js): `FE/employee-management-system/src/App.js`
- [Login page](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/FE/employee-management-system/src/pages/LoginPage.jsx): `FE/employee-management-system/src/pages/LoginPage.jsx`
- [Home page](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/FE/employee-management-system/src/pages/HomePage.jsx): `FE/employee-management-system/src/pages/HomePage.jsx`
- [Employee list](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/FE/employee-management-system/src/components/EmployeeList.jsx): `FE/employee-management-system/src/components/EmployeeList.jsx`
- [Create form](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/FE/employee-management-system/src/components/CreateEmployeeForm.jsx): `FE/employee-management-system/src/components/CreateEmployeeForm.jsx`
- [Edit form](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/FE/employee-management-system/src/components/EditEmployeeForm.jsx): `FE/employee-management-system/src/components/EditEmployeeForm.jsx`
- [Delete confirmation](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/FE/employee-management-system/src/components/DeleteConfirmationBox.jsx): `FE/employee-management-system/src/components/DeleteConfirmationBox.jsx`
- [Employee reducer](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/FE/employee-management-system/src/reducer/employeeReducer.js): `FE/employee-management-system/src/reducer/employeeReducer.js`

### Authentication

- [Auth endpoints](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/controller/AuthController.java): `BE/employee-management-system/src/main/java/com/tt/employee_management_system/controller/AuthController.java`
- [Auth service](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/service/impl/AuthServiceImpl.java): `BE/employee-management-system/src/main/java/com/tt/employee_management_system/service/impl/AuthServiceImpl.java`
- [JWT utilities](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/jwt/JwtUtils.java): `BE/employee-management-system/src/main/java/com/tt/employee_management_system/jwt/JwtUtils.java`
- [JWT filter](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/jwt/JwtTokenAuthFilter.java): `BE/employee-management-system/src/main/java/com/tt/employee_management_system/jwt/JwtTokenAuthFilter.java`
- [Token types](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/jwt/TokenType.java): `BE/employee-management-system/src/main/java/com/tt/employee_management_system/jwt/TokenType.java`

### Employee management

- [Employee endpoints](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/controller/EmployeeManagementController.java): `BE/employee-management-system/src/main/java/com/tt/employee_management_system/controller/EmployeeManagementController.java`
- [Employee service](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/service/impl/EmployeeManagementServiceImpl.java): `BE/employee-management-system/src/main/java/com/tt/employee_management_system/service/impl/EmployeeManagementServiceImpl.java`
- [Employee request](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/model/EmployeeRequest.java): `BE/employee-management-system/src/main/java/com/tt/employee_management_system/model/EmployeeRequest.java`
- [Employee response](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/model/EmployeeResponse.java): `BE/employee-management-system/src/main/java/com/tt/employee_management_system/model/EmployeeResponse.java`

### Domain and persistence

- [Employee entity](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/domain/entity/Employee.java): `BE/employee-management-system/src/main/java/com/tt/employee_management_system/domain/entity/Employee.java`
- [Employee repository](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/domain/repository/EmployeeRepository.java): `BE/employee-management-system/src/main/java/com/tt/employee_management_system/domain/repository/EmployeeRepository.java`
- [Admin entity](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/domain/entity/Admin.java): `BE/employee-management-system/src/main/java/com/tt/employee_management_system/domain/entity/Admin.java`
- [Admin repository](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/domain/repository/AdminRepository.java): `BE/employee-management-system/src/main/java/com/tt/employee_management_system/domain/repository/AdminRepository.java`
- [Admin bootstrap](https://github.com/tuntunhlaing/employee-management-fullstack/blob/main/BE/employee-management-system/src/main/java/com/tt/employee_management_system/initor/InitService.java): `BE/employee-management-system/src/main/java/com/tt/employee_management_system/initor/InitService.java`

### Other components

- **Administrator**

## Connections

- Administrator → Route app: uses
- Route app → Login page: routes to (evidence: `FE/employee-management-system/src/App.js`)
- Route app → Home page: routes to (evidence: `FE/employee-management-system/src/App.js`)
- Home page → Employee list: renders (evidence: `FE/employee-management-system/src/pages/HomePage.jsx`)
- Employee list → Create form: opens (evidence: `FE/employee-management-system/src/components/EmployeeList.jsx`)
- Employee list → Edit form: opens (evidence: `FE/employee-management-system/src/components/EmployeeList.jsx`)
- Employee list → Delete confirmation: opens (evidence: `FE/employee-management-system/src/components/EmployeeList.jsx`)
- Login page → Auth endpoints: submits credentials
- Employee list → Employee endpoints: requests employee data
- Create form → Employee endpoints: creates employee
- Edit form → Employee endpoints: updates employee
- Delete confirmation → Employee endpoints: deletes employee
- Auth endpoints → Auth service: delegates (evidence: `BE/employee-management-system/src/main/java/com/tt/employee_management_system/controller/AuthController.java`)
- Auth service → Admin repository: looks up admin (evidence: `BE/employee-management-system/src/main/java/com/tt/employee_management_system/service/impl/AuthServiceImpl.java`)
- Auth service → JWT utilities: generates or parses (evidence: `BE/employee-management-system/src/main/java/com/tt/employee_management_system/service/impl/AuthServiceImpl.java`)
- Auth service → Token types: selects token type (evidence: `BE/employee-management-system/src/main/java/com/tt/employee_management_system/service/impl/AuthServiceImpl.java`)
- JWT filter → JWT utilities: parses tokens (evidence: `BE/employee-management-system/src/main/java/com/tt/employee_management_system/jwt/JwtTokenAuthFilter.java`)
- JWT filter → Token types: checks token type (evidence: `BE/employee-management-system/src/main/java/com/tt/employee_management_system/jwt/JwtTokenAuthFilter.java`)
- Employee endpoints → Employee service: delegates (evidence: `BE/employee-management-system/src/main/java/com/tt/employee_management_system/controller/EmployeeManagementController.java`)
- Employee endpoints → Employee request: accepts (evidence: `BE/employee-management-system/src/main/java/com/tt/employee_management_system/controller/EmployeeManagementController.java`)
- Employee endpoints → Employee response: returns (evidence: `BE/employee-management-system/src/main/java/com/tt/employee_management_system/controller/EmployeeManagementController.java`)
- Employee service → Employee repository: reads and writes (evidence: `BE/employee-management-system/src/main/java/com/tt/employee_management_system/service/impl/EmployeeManagementServiceImpl.java`)
- Employee service → Employee entity: maps records (evidence: `BE/employee-management-system/src/main/java/com/tt/employee_management_system/service/impl/EmployeeManagementServiceImpl.java`)
- Employee service → Employee request: consumes (evidence: `BE/employee-management-system/src/main/java/com/tt/employee_management_system/service/impl/EmployeeManagementServiceImpl.java`)
- Employee service → Employee response: produces (evidence: `BE/employee-management-system/src/main/java/com/tt/employee_management_system/service/impl/EmployeeManagementServiceImpl.java`)
- Employee request → Employee entity: converts to (evidence: `BE/employee-management-system/src/main/java/com/tt/employee_management_system/model/EmployeeRequest.java`)
- Employee response → Employee entity: maps from (evidence: `BE/employee-management-system/src/main/java/com/tt/employee_management_system/model/EmployeeResponse.java`)
- Admin bootstrap → Admin repository: checks and saves (evidence: `BE/employee-management-system/src/main/java/com/tt/employee_management_system/initor/InitService.java`)
- Admin bootstrap → Admin entity: creates (evidence: `BE/employee-management-system/src/main/java/com/tt/employee_management_system/initor/InitService.java`)
- Admin repository → Admin entity: persists (evidence: `BE/employee-management-system/src/main/java/com/tt/employee_management_system/domain/repository/AdminRepository.java`)
- Employee repository → Employee entity: persists (evidence: `BE/employee-management-system/src/main/java/com/tt/employee_management_system/domain/repository/EmployeeRepository.java`)
