How duonggb/hrmpro works
HRMPro is a full-stack enterprise HR management system. The principal workflow is: an employee or HR user signs in, the React client calls secured Spring REST endpoints, domain services validate and persist HR data, then return dashboards, approvals, payroll documents, or realtime updates. Major stages include identity/RBAC, employee organization, attendance and leave, payroll, recruitment, performance, and collaboration. Sampled services confirm several repository, Redis, MinIO, email, and WebSocket interactions; unsampled modules are represented only where the tree and README establish their capability.
Components 28
React Client
- React Application
frontend/src/App.tsx - Login Page
frontend/src/modules/auth/pages/LoginPage.tsx - Auth API
frontend/src/modules/auth/api/authApi.ts - Employee Screens
frontend/src/modules/employee/pages/EmployeeListPage.tsx - Operations Screens
frontend/src/modules/payroll/pages/PayrollPage.tsx - Dashboard Screen
frontend/src/modules/dashboard/pages/DashboardPage.tsx
Access Control
- Auth Controller
backend/src/main/java/com/hrmpro/module/auth/controller/AuthController.java - Auth Service
backend/src/main/java/com/hrmpro/module/auth/service/AuthService.java - JWT Security
backend/src/main/java/com/hrmpro/config/SecurityConfig.java
Workforce Operations
- Employee Service
backend/src/main/java/com/hrmpro/module/employee/service/EmployeeService.java - Organization Service
backend/src/main/java/com/hrmpro/module/organization/service/DepartmentService.java - Attendance Service
backend/src/main/java/com/hrmpro/module/attendance/service/AttendanceService.java - Leave Service
backend/src/main/java/com/hrmpro/module/leave/service/LeaveService.java
Business Processes
- Payroll Service
backend/src/main/java/com/hrmpro/module/payroll/service/PayrollService.java - Recruitment Service
backend/src/main/java/com/hrmpro/module/recruitment/service/RecruitmentService.java - Performance Service
backend/src/main/java/com/hrmpro/module/performance/service/PerformanceService.java
Insights Collaboration
- Report Service
backend/src/main/java/com/hrmpro/module/dashboard/service/ReportService.java - Internal Chat
backend/src/main/java/com/hrmpro/module/chat - Notification Service
backend/src/main/java/com/hrmpro/module/notification/service - Realtime Notifications
backend/src/main/java/com/hrmpro/module/notification/service/RealtimeNotificationService.java - Object Storage Service
backend/src/main/java/com/hrmpro/common/service/MinioService.java
Other components
- Employee Or HR
- PostgreSQL
- Redis
- MongoDB Chat Store
- MinIO Object Store
- Email Service
- WebSocket STOMP
Connections 34
- Employee Or HR → Login Page: starts login
- Login Page → Auth API: submits credentials
- Auth API → Auth Controller: calls API
- Auth Controller → Auth Service: dispatches auth
- Auth Service → JWT Security: creates JWT
- Auth Service → Redis: tracks tokens
- Auth Service → PostgreSQL: reads users
- React Application → Employee Screens: routes users
- Employee Screens → Employee Service: manages profiles
- Employee Service → PostgreSQL: reads writes employees
- Employee Service → Object Storage Service: stores avatars
- Object Storage Service → MinIO Object Store: uploads files
- Employee Screens → Organization Service: manages organization
- Organization Service → PostgreSQL: reads writes structure
- Operations Screens → Attendance Service: records attendance
- Attendance Service → PostgreSQL: saves attendance
- Operations Screens → Leave Service: submits leave
- Leave Service → PostgreSQL: updates balances
- Operations Screens → Payroll Service: runs payroll
- Payroll Service → PostgreSQL: reads writes payroll
- Payroll Service → Object Storage Service: stores payslips
- Operations Screens → Recruitment Service: manages recruiting
- Recruitment Service → PostgreSQL: stores candidates
- Recruitment Service → Notification Service: creates notices
- Recruitment Service → Realtime Notifications: broadcasts updates
- Recruitment Service → Email Service: sends interview email
- Dashboard Screen → Report Service: requests reports
- Report Service → PostgreSQL: aggregates HR data
- Operations Screens → Performance Service: manages reviews
- Performance Service → PostgreSQL: stores evaluations
- React Application → Internal Chat: opens chat
- Internal Chat → MongoDB Chat Store: stores messages
- Realtime Notifications → WebSocket STOMP: publishes events
- React Application → WebSocket STOMP: receives realtime