How punitkumar756/payroll works
This is a full-stack HRMS and payroll product: HR/admins manage employees, attendance, leave, tasks, calendars, and payroll through the web portal, while employees use web or Android self-service. Requests pass through frontend routing/auth and API clients to Express routes, controllers, and MySQL-backed procedure or query layers. The README documents major capabilities not fully represented in sampled source; those appear as subsystem nodes. Some connections are documented rather than source-verified, and are marked accordingly.
Main entry points: server.js Express server · App.jsx Web router · ApiClient.kt Mobile API client · index.js Web API client
Components 28
Web portals
- Web router
frontend/src/App.jsx - Web auth
frontend/src/auth/AuthContext.jsx - Admin portal
frontend/src/pages/admin - Self-service portal
frontend/src/pages/self-service - Web API client
frontend/src/api/index.js
Backend API
- Express server
backend/src/server.js - Auth routes
backend/src/routes/auth.js - Employee routes
backend/src/routes/employees.js - Attendance routes
backend/src/routes/attendance.js - Leave routes
backend/src/routes/leave.js - Master routes
backend/src/routes/masters.js - Task routes
backend/src/routes/tasks.js - Payroll routes
backend/src/routes/payroll - Attendance logic
backend/src/controllers/attendanceController.js - HR masters
backend/src/controllers/mastersController.js - Payroll logic
backend/src/controllers/payroll - Task logic
backend/src/controllers/tasksController.js
Android self-service
- Android app
app/mobile/src/main/java/com/daytonnaturalresource/employeeApp/MainActivity.kt - Login workflow
app/mobile/src/main/java/com/daytonnaturalresource/employeeApp/ui/auth/LoginViewModel.kt - Task workflow
app/mobile/src/main/java/com/daytonnaturalresource/employeeApp/ui/main/TasksViewModel.kt - Mobile API client
app/mobile/src/main/java/com/daytonnaturalresource/employeeApp/api/ApiClient.kt - API contracts
app/mobile/src/main/java/com/daytonnaturalresource/employeeApp/api/ApiService.kt - Secure token store
app/mobile/src/main/java/com/daytonnaturalresource/employeeApp/data/TokenManager.kt
Persistence
- Procedure caller
backend/src/db/callProcedure.js - SQL connection
backend/src/db/pool.js - MySQL database
Other components
- HR / Admin
- Employee
Connections 35
- HR / Admin → Web router: uses portal
README.md - Employee → Web router: uses portal
README.md - Employee → Android app: uses app
README.md - Web router → Web auth: provides auth
frontend/src/App.jsx - Web router → Admin portal: routes admin
frontend/src/App.jsx - Web router → Self-service portal: routes self-service
frontend/src/App.jsx - Web auth → Web API client: calls auth API
frontend/src/auth/AuthContext.jsx - Admin portal → Web API client: requests data
frontend/src/pages/admin/MasterPages.jsx - Self-service portal → Web API client: requests data
- Web API client → Express server: calls REST API
README.md - Express server → Auth routes: mounts routes
backend/src/server.js - Express server → Employee routes: mounts routes
backend/src/server.js - Express server → Attendance routes: mounts routes
backend/src/server.js - Express server → Leave routes: mounts routes
backend/src/server.js - Express server → Master routes: mounts routes
backend/src/server.js - Express server → Task routes: mounts routes
backend/src/server.js - Express server → Payroll routes: mounts routes
backend/src/server.js - Attendance routes → Attendance logic: dispatches handlers
backend/src/routes/attendance.js - Master routes → HR masters: dispatches handlers
- Task routes → Task logic: dispatches handlers
backend/src/routes/tasks.js - Payroll routes → Payroll logic: dispatches handlers
backend/src/routes/payroll/salaryHeadRoutes.js - Attendance logic → Procedure caller: calls procedures
backend/src/controllers/attendanceController.js - HR masters → Procedure caller: calls procedures
backend/src/controllers/mastersController.js - Payroll logic → SQL connection: queries database
backend/src/controllers/payroll/payslipController.js - Procedure caller → SQL connection: uses connection
backend/src/db/callProcedure.js - SQL connection → MySQL database: queries MySQL
README.md - Android app → Login workflow: shows login
app/mobile/src/main/java/com/daytonnaturalresource/employeeApp/MainActivity.kt - Android app → Task workflow: opens tasks
- Login workflow → Mobile API client: calls API
app/mobile/src/main/java/com/daytonnaturalresource/employeeApp/ui/auth/LoginViewModel.kt - Task workflow → Mobile API client: calls API
app/mobile/src/main/java/com/daytonnaturalresource/employeeApp/ui/main/TasksViewModel.kt - Mobile API client → API contracts: configures service
app/mobile/src/main/java/com/daytonnaturalresource/employeeApp/api/ApiClient.kt - Mobile API client → Secure token store: reads tokens
app/mobile/src/main/java/com/daytonnaturalresource/employeeApp/api/ApiClient.kt - Login workflow → Secure token store: stores session
app/mobile/src/main/java/com/daytonnaturalresource/employeeApp/ui/auth/LoginViewModel.kt - Task workflow → Secure token store: uses session
app/mobile/src/main/java/com/daytonnaturalresource/employeeApp/ui/main/TasksViewModel.kt - Mobile API client → Express server: calls REST API
README.md