# konathamvenkat/hrms-backend architecture

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

- Interactive diagram: https://gitdiagram.com/konathamvenkat/hrms-backend
- Repository: https://github.com/konathamvenkat/hrms-backend

## Overview

This repository is an HRMS backend with authentication and role-based menus, employee records, attendance, leave, and payroll capabilities. The principal employee workflow is an authenticated API request to manage or retrieve employee information; employee endpoints delegate to the employee service. Leave requests likewise enter through the leave API and delegate to the leave service. Other capabilities are represented from the repository tree and service contracts, but their internal wiring is not established by the sampled source, and the README provides no additional evidence.

Main entry points: [`src/main/java/com/hrms/employee/controller/EmployeeController.java`](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/employee/controller/EmployeeController.java) (Employee API), [`src/main/java/com/hrms/leave/controller/LeaveController.java`](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/leave/controller/LeaveController.java) (Leave API), [`src/main/java/com/hrms/employee/service/EmployeeService.java`](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/employee/service/EmployeeService.java) (Employee operations), [`src/main/java/com/hrms/leave/service/LeaveService.java`](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/leave/service/LeaveService.java) (Leave requests)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Identity &amp; Access"]
  node_auth_api["Auth API"]
  node_auth_service["Authentication<br/>[AuthService.java]"]
  node_menu_api["Menu API"]
  node_menu_service["Role menus<br/>[MenuService.java]"]
  node_jwt_filter["JWT filter"]
end

subgraph group_workforce["Employee Records"]
  node_employee_api["Employee API"]
  node_employee_service["Employee operations"]
  node_employee_records[("Employee data access")]
  node_employee_docs["Employee documents"]
  node_employee_setup["Workplace setup"]
end

subgraph group_time["Attendance"]
  node_attendance_api["Attendance API"]
  node_attendance_service["Attendance operations"]
  node_regularization["Attendance corrections"]
  node_overtime["Overtime requests"]
  node_attendance_summary["Attendance summaries"]
end

subgraph group_leave["Leave Management"]
  node_leave_api["Leave API"]
  node_leave_service["Leave requests<br/>[LeaveService.java]"]
  node_leave_balance["Leave balances"]
  node_leave_calendar["Leave calendar"]
  node_holiday_calendar["Holiday calendar"]
end

subgraph group_payroll["Payroll"]
  node_salary_api["Salary API"]
  node_salary_service["Employee salary"]
  node_salary_structures["Salary structures"]
  node_salary_components["Salary components"]
end

node_user(("HRMS user"))

node_user -->|"requests employee data"| node_employee_api
node_employee_api -->|"delegates employee operations"| node_employee_service
node_user -->|"submits leave request"| node_leave_api
node_leave_api -->|"applies or processes leave"| node_leave_service

click node_auth_api "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/auth/controller/AuthController.java"
click node_auth_service "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/auth/service/AuthService.java"
click node_menu_api "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/auth/controller/MenuController.java"
click node_menu_service "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/auth/service/MenuService.java"
click node_jwt_filter "https://github.com/konathamvenkat/hrms-backend/blob/main/common-lib/src/main/java/com/hrms/common/security/JwtAuthenticationFilter.java"
click node_employee_api "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/employee/controller/EmployeeController.java"
click node_employee_service "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/employee/service/EmployeeService.java"
click node_employee_records "https://github.com/konathamvenkat/hrms-backend/tree/main/src/main/java/com/hrms/employee/repository"
click node_employee_docs "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/employee/service/EmployeeDocumentService.java"
click node_employee_setup "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/employee/service/WorkShiftService.java"
click node_attendance_api "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/attendance/controller/AttendanceController.java"
click node_attendance_service "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/attendance/service/AttendanceService.java"
click node_regularization "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/attendance/service/AttendanceRegularizationService.java"
click node_overtime "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/attendance/service/OvertimeRequestService.java"
click node_attendance_summary "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/attendance/service/AttendanceSummaryService.java"
click node_leave_api "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/leave/controller/LeaveController.java"
click node_leave_service "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/leave/service/LeaveService.java"
click node_leave_balance "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/leave/service/LeaveBalanceService.java"
click node_leave_calendar "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/leave/service/LeaveCalendarService.java"
click node_holiday_calendar "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/leave/service/HolidayCalendarService.java"
click node_salary_api "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/payroll/controller/EmployeeSalaryController.java"
click node_salary_service "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/payroll/service/EmployeeSalaryService.java"
click node_salary_structures "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/payroll/service/SalaryStructureService.java"
click node_salary_components "https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/payroll/service/SalaryComponentService.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_auth_api,node_auth_service,node_menu_api,node_menu_service,node_jwt_filter,node_user toneBlue
class node_employee_api,node_employee_service,node_employee_records,node_employee_docs,node_employee_setup toneAmber
class node_attendance_api,node_attendance_service,node_regularization,node_overtime,node_attendance_summary toneMint
class node_leave_api,node_leave_service,node_leave_balance,node_leave_calendar,node_holiday_calendar toneRose
class node_salary_api,node_salary_service,node_salary_structures,node_salary_components toneIndigo
```

## Components

### Identity & Access

- [Auth API](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/auth/controller/AuthController.java): `src/main/java/com/hrms/auth/controller/AuthController.java`
- [Authentication](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/auth/service/AuthService.java): `src/main/java/com/hrms/auth/service/AuthService.java`
- [Menu API](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/auth/controller/MenuController.java): `src/main/java/com/hrms/auth/controller/MenuController.java`
- [Role menus](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/auth/service/MenuService.java): `src/main/java/com/hrms/auth/service/MenuService.java`
- [JWT filter](https://github.com/konathamvenkat/hrms-backend/blob/main/common-lib/src/main/java/com/hrms/common/security/JwtAuthenticationFilter.java): `common-lib/src/main/java/com/hrms/common/security/JwtAuthenticationFilter.java`

### Employee Records

- [Employee API](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/employee/controller/EmployeeController.java): `src/main/java/com/hrms/employee/controller/EmployeeController.java`
- [Employee operations](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/employee/service/EmployeeService.java): `src/main/java/com/hrms/employee/service/EmployeeService.java`
- [Employee data access](https://github.com/konathamvenkat/hrms-backend/tree/main/src/main/java/com/hrms/employee/repository): `src/main/java/com/hrms/employee/repository`
- [Employee documents](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/employee/service/EmployeeDocumentService.java): `src/main/java/com/hrms/employee/service/EmployeeDocumentService.java`
- [Workplace setup](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/employee/service/WorkShiftService.java): `src/main/java/com/hrms/employee/service/WorkShiftService.java`

### Attendance

- [Attendance API](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/attendance/controller/AttendanceController.java): `src/main/java/com/hrms/attendance/controller/AttendanceController.java`
- [Attendance operations](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/attendance/service/AttendanceService.java): `src/main/java/com/hrms/attendance/service/AttendanceService.java`
- [Attendance corrections](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/attendance/service/AttendanceRegularizationService.java): `src/main/java/com/hrms/attendance/service/AttendanceRegularizationService.java`
- [Overtime requests](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/attendance/service/OvertimeRequestService.java): `src/main/java/com/hrms/attendance/service/OvertimeRequestService.java`
- [Attendance summaries](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/attendance/service/AttendanceSummaryService.java): `src/main/java/com/hrms/attendance/service/AttendanceSummaryService.java`

### Leave Management

- [Leave API](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/leave/controller/LeaveController.java): `src/main/java/com/hrms/leave/controller/LeaveController.java`
- [Leave requests](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/leave/service/LeaveService.java): `src/main/java/com/hrms/leave/service/LeaveService.java`
- [Leave balances](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/leave/service/LeaveBalanceService.java): `src/main/java/com/hrms/leave/service/LeaveBalanceService.java`
- [Leave calendar](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/leave/service/LeaveCalendarService.java): `src/main/java/com/hrms/leave/service/LeaveCalendarService.java`
- [Holiday calendar](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/leave/service/HolidayCalendarService.java): `src/main/java/com/hrms/leave/service/HolidayCalendarService.java`

### Payroll

- [Salary API](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/payroll/controller/EmployeeSalaryController.java): `src/main/java/com/hrms/payroll/controller/EmployeeSalaryController.java`
- [Employee salary](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/payroll/service/EmployeeSalaryService.java): `src/main/java/com/hrms/payroll/service/EmployeeSalaryService.java`
- [Salary structures](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/payroll/service/SalaryStructureService.java): `src/main/java/com/hrms/payroll/service/SalaryStructureService.java`
- [Salary components](https://github.com/konathamvenkat/hrms-backend/blob/main/src/main/java/com/hrms/payroll/service/SalaryComponentService.java): `src/main/java/com/hrms/payroll/service/SalaryComponentService.java`

### Other components

- **HRMS user**

## Connections

- HRMS user → Employee API: requests employee data
- Employee API → Employee operations: delegates employee operations
- HRMS user → Leave API: submits leave request
- Leave API → Leave requests: applies or processes leave
