Skip to documentation
HMS MiniDocumentation

HMS Mini — Human Resource Management

Status: DONE = implemented and checked without browser automation; IN PROGRESS = active work; TODO = not implemented. Manual browser acceptance is owned by the project owner. Admin features are delivered before employee features.

Shared infrastructure

FeatureStatusScope
PostgreSQL, Redis, separate location databaseDONEPrivate backend environment mapping; account/session persistence; location database reserved
Yup validationDONEMatching frontend/API schemas, field errors, strict input types
Staging → primary uploadsDONESigned upload to hms-mini-staging, completion verification, durable AMQP job, copy to hms-mini, status and private downloads
CORSDONEExact portal origins on API and staging bucket
DM Sans / mobile-first HR interfaceDONEPhone-first navigation with a full-screen employee mobile menu, responsive forms/tables, aligned 44px filter controls, human-resource terminology
Shared appearance and React IconsDONEnext-themes light/dark/device appearance with direct shared color tokens, explicit dark surfaces including modal headers, themed table-row hover, dividers and scrollbars, hydration-safe controls and native-control support; stable hover colors and semantic icons throughout all pages
SMTP and queued emailDONETransactional notification outbox, durable RabbitMQ delivery, retry/backoff, admin history and audited retries; no passwords emailed
Production hosting configurationDONEPrivate .env.prod files, public templates, explicit production commands, separate HTTPS app/API domains, secure cookies, production Compose configuration and explicit Docker build dependencies under production environment settings
Public documentationDONE/docs, /docs/features, /docs/changelogs, /docs/readme, /docs/deploy; public Markdown synchronization and placeholder-based self-hosting guide
Linked sample organizationDONERepeatable seed, demo accounts, organization/attendance/leave/projects/tasks data, help and cancelled email previews; optional real staging-to-primary sample attachments

Admin roadmap

OrderStatusModuleFeatureUI and API scope
1DONEAdmin Auth & DashboardAdmin Login & RBAC SessionLogin, role/session guards; POST /admin/auth/login, tracked JWT sessions
2DONEAdmin Auth & DashboardMaster Admin DashboardOrg headcount, daily attendance, pending approvals, projects/issues; GET /admin/dashboard/metrics
3DONERoles & PermissionsRole ManagementRole CRUD, hierarchy, activation; /admin/roles
4DONERoles & PermissionsPermission MatrixModule/action checkbox matrix; GET/PUT /admin/roles/:id/permissions
5DONERoles & PermissionsUser Role AssignmentRole selector/access preview; PATCH /admin/users/:id/role, stale-access invalidation
6DONEDepartmentsDepartment ManagementSearchable CRUD, code/head; prevent deletion with active employees
7DONEDesignationsDesignation ManagementDepartment-linked titles/grades/hierarchy; /admin/designations
8DONEOrg & EmployeesEmployee Directory & OnboardingFiltered employee CRUD, account, department/designation/role/manager/shift
9DONEOrg & EmployeesReporting HierarchyManager reassignment with circular-hierarchy prevention
10DONEOrg & EmployeesAccount & Password ControlsActivate/suspend, force password reset
11DONEShift ManagementShift Master & RosterTimings, grace, full/half thresholds; employee/department assignment
12DONEAttendanceAttendance LogsDate/department/employee/status filtering, pagination and totals
13DONEAttendancePunch Photo AuditSigned photo viewer with timestamps and metadata
14DONEAttendanceHours & Undertime AnalyticsAggregated daily/monthly hours, lateness, CSV/Excel exports
15DONEAttendanceManual OverrideAttendance edits with recalculation and audit trail
16DONERegularizationMaster QueueOrg-wide status/department-filtered requests
17DONERegularizationAttachment & Reason ReviewRequest details and one signed attachment
18DONERegularizationApprove / RejectSingle/bulk decisions, remarks, attendance recalculation
19DONELeave ManagementTypes & Quota PoliciesSick/casual, annual quotas, accrual/carry-forward, half/full day
20DONELeave ManagementBalances LedgerEmployee balances and audited credit/debit adjustments
21DONELeave ManagementRequests & ApprovalsOrg leave requests; approve/reject/cancel with balance accounting
22DONETasks & ProjectsProjectsPortfolio CRUD, project lead/members, dates and progress
23DONETasks & ProjectsGlobal Task BoardProject/individual tasks, assignee/creator/priority filters
24DONETasks & ProjectsAssignment & ReassignmentCreate tasks and bulk reassign; preserve creator metadata
25DONETasks & ProjectsReviews & IssuesReview/issue triage and resolution
26DONEApp Settings & CMSGuide & Tutorial CMSEditable help articles and onboarding steps
27DONEApp Settings & CMSApp ConfigurationLanguages, about/store links, minimum client version
28DONESystem & AuditAudit Logs & ExportsOverrides/decisions security history, CSV/PDF compliance reports

Employee roadmap

OrderStatusModuleFeatureUI and API scope
1DONEAuth & ProfileUser Login & SessionYup login, JWT/session lifecycle; POST /auth/login; missing employee sessions redirect once, with portal-scoped expiry and recoverable connection errors
2DONEAuth & ProfileProfileEmployee/shift/avatar; GET /profile
3DONEAuth & ProfileChange PasswordCurrent/new password verification and update
4DONEAuth & ProfileLogoutSession invalidation and navigation
5DONEHomeDashboard & NavigationDaily status and leave/attendance/tasks/approvals summaries
6DONEHomeQuick AddMobile action sheet for leave/regularization
7DONEAttendanceLogsShift, logged hours, undertime and calendar/list
8DONEAttendancePunch PhotosCamera upload and time in/out metadata
9DONERegularizationTriggerRegularize from logs or Quick Add; current status
10DONERegularizationRequest FormRequested time in/out and reason validation
11DONERegularizationSingle AttachmentOne attachment, preview/removal, staged upload
12DONERegularizationForm ActionsCancel/apply, transaction and manager notification
13DONELeaveRequest FormLeave type/date range, balance and overlap checks
14DONELeaveDuration & ActionsFull/half-day calculation, cancel/apply
15DONEApprovalsLeave ApprovalsManager-scoped requests and decisions
16DONEApprovalsRegularization ApprovalsManager-scoped review, attachment, attendance update
17DONETasks & ProjectsDashboardProject summaries/task counts
18DONETasks & ProjectsCategoriesProject/individual filters
19DONETasks & ProjectsStatus ViewsOngoing/review/issues and transitions
20DONETasks & ProjectsAssigned ByCreator identity on task cards
21DONESettingsTheme & LanguagePersistent employee preferences
22DONESettingsApp Clean UpClear temporary app storage/cache
23DONEHelpGuide & TutorialCMS content and tutorial steps
24DONEHelpRate / Share / AboutShare API, store/legal links, current version

Verification and acceptance

Implementation complete: 28/28 admin features, 24/24 employee features, and shared infrastructure. Build, lint and API check results are recorded in PROGRESS.md (repository tracking file). The frontend remains a static export, including the public documentation routes. The real S3 → RabbitMQ → S3 pipeline was verified with a disposable file and cleaned up. Docker and HTTP deployment checks are recorded in PROGRESS.md.

Browser/device acceptance remains pending with the owner, as requested. DONE means implemented and checked through builds/API contracts; it does not claim that every UI flow has been browser-tested.

Explicit behavior boundaries

  • Employee punches reference ready staged-upload IDs instead of sending multipart file bytes through NestJS, following the requested direct-to-staging architecture. Mobile capture is provided by the camera-capable file input.
  • Attendance lists contain recorded punches/manual records/approved regularizations; missing dates are available through the regularization date selector. No synthetic absent punches are inserted automatically.
  • Theme and locale are persisted; navigation translations cover English, Hindi and Tamil with English fallback. HR-authored content remains in the language in which it was published.
  • Bulk regularization applies the individual transactional decision endpoint and reports partial failures; it is not an all-or-nothing batch transaction.
  • Staged originals are retained after promotion; a bucket lifecycle retention policy has not been imposed.
  • Location PostgreSQL is configured and reachable. Location/vector search is outside this roadmap and the vector extension is not installed.

Documentation overview