How ritikdevelop/hrms works
HRMS is a mobile employee-and-admin HR system backed by an Express API and MongoDB. The principal workflow is that an employee submits attendance, leave, reimbursement, report, or task information; the API handles the request and domain logic, stores it, and supports admin review and updates. The app also provides employee dashboards and admin analytics, management, and approvals. The README documents real-time notifications and other integrations; where source excerpts do not show wiring, those links are omitted or marked unverified.
Main entry points: index.js Express API · AppNavigator.tsx App navigation · auth.middleware.js JWT access control · models HR records
Components 29
Mobile app
- App navigation
src/navigation/AppNavigator.tsx - Employee dashboard
src/screens/EmployeeDashboardScreen.tsx - Employee details
src/screens/EmployeeDetailsScreen.tsx - Employee leave
src/screens/EmployeeLeaveScreen.tsx - Task details
src/screens/TaskDetailsScreen.tsx - Admin dashboard
src/screens/AdminDashboardScreen.tsx - Admin analytics
src/screens/AdminEmployeeAnalyticsScreen.tsx - Admin tabs
src/navigation/AdminBottomTabNavigator.tsx
API and access
- Express API
Backend/index.js - JWT access control
Backend/middleware/auth.middleware.js - Admin controller
Backend/controllers/admin.controller.js - Employee controller
Backend/controllers/employee.controller.js - Attendance controller
Backend/controllers/attendance.controller.js - Leave controller
Backend/controllers/leave.controller.js - Reimbursement controller
Backend/controllers/reimburse.controller.js - Task controller
Backend/controllers/task.controller.js - Daily report controller
Backend/controllers/daily.report.controller.js
HR workflows
- Admin services
Backend/services/admin.service.js - Employee services
Backend/services/employee.service.js - Attendance services
Backend/services/attendance.service.js - Leave services
Backend/services/leave.service.js - Reimbursement services
Backend/services/reimburse.service.js - Task services
Backend/services/task.service.js
Persistence and alerts
- HR records
Backend/models - Notification service
Backend/services/notification.service.js
Other components
- Employee
- Admin
- MongoDB
- Socket.IO clients
Connections 39
- Employee → App navigation: uses
README.md - Admin → App navigation: uses
README.md - App navigation → Admin tabs: routes to
src/navigation/AppNavigator.tsx - App navigation → Employee details: routes to
src/navigation/AppNavigator.tsx - App navigation → Employee leave: routes to
src/navigation/AppNavigator.tsx - App navigation → Task details: routes to
src/navigation/AppNavigator.tsx - Admin tabs → Admin dashboard: routes to
src/navigation/AdminBottomTabNavigator.tsx - Admin tabs → Admin analytics: routes to
src/navigation/AdminBottomTabNavigator.tsx - Employee → Employee dashboard: views
README.md - Admin → Admin dashboard: views
README.md - App navigation → Express API: uses API
- Express API → Admin controller: mounts routes
Backend/index.js - Express API → Employee controller: mounts routes
Backend/index.js - Express API → Attendance controller: mounts routes
Backend/index.js - Express API → Leave controller: mounts routes
Backend/index.js - Express API → Reimbursement controller: mounts routes
Backend/index.js - Express API → Task controller: mounts routes
Backend/index.js - Express API → Daily report controller: mounts routes
Backend/index.js - JWT access control → Admin controller: guards routes
Backend/routes/admin.route.js - JWT access control → Attendance controller: guards routes
Backend/routes/attendance.route.js - JWT access control → Leave controller: guards routes
Backend/routes/leave.route.js - JWT access control → Reimbursement controller: guards routes
Backend/routes/reimburse.route.js - JWT access control → Task controller: guards routes
Backend/routes/task.route.js - Admin controller → Admin services: calls
Backend/controllers/admin.controller.js - Admin controller → Reimbursement services: calls
Backend/controllers/admin.controller.js - Employee controller → Employee services: calls
Backend/controllers/employee.controller.js - Attendance controller → Attendance services: calls
Backend/controllers/attendance.controller.js - Leave controller → Leave services: calls
Backend/controllers/leave.controller.js - Reimbursement controller → Reimbursement services: calls
Backend/controllers/reimburse.controller.js - Admin services → HR records: reads and writes
Backend/services/admin.service.js - Employee services → HR records: reads and writes
Backend/services/employee.service.js - Attendance services → HR records: uses records
Backend/services/attendance.service.js - Leave services → HR records: uses records
Backend/services/leave.service.js - Reimbursement services → HR records: uses records
Backend/services/reimburse.service.js - Task services → HR records: uses records
Backend/services/task.service.js - Express API → MongoDB: connects
Backend/index.js - Leave services → Notification service: creates alerts
Backend/services/leave.service.js - Reimbursement services → Notification service: creates alerts
Backend/services/reimburse.service.js - Notification service → Socket.IO clients: emits events
Backend/services/notification.service.js