About the Project
The Workflow & Approvals Module is a core part of an HR Management System (HRMS) built with ASP.NET Core Web API and Entity Framework Core. Admins can create workflows for different HR modules (Attendance, Leave, Claims), configure multi-level approval steps (L1, L2, etc.), and assign approvers by employee, role, or manager relationship. Employees can view their approvers and track request status. Managers can view pending team requests, approve or reject with comments, and the system automatically moves requests to the next approval level. An org chart visualises the employee reporting hierarchy.
The Problem
HR teams in organisations manually handle approval chains for attendance, leave, and claims over email or spreadsheets, with no structured way to configure who approves what, track where a request is in the chain, or enforce multi-level sign-off consistently across modules.
The Solution
Built a configurable workflow engine where admins define approval flows per HR module with ordered steps and flexible approver types — primary, secondary, manager-based, or role-based. When an employee raises a request the system resolves the approval chain automatically, routes it to the correct approver at each level, and progresses it on approval or stops it on rejection.
Outcome & Results
A working multi-level approval module integrated into an HRMS with configurable workflows, dynamic approver resolution, manager approval actions with comments, employee-facing approver visibility, and an org chart. Delivered as a team project contribution.
Challenges Faced
Dynamic approver resolution: Approvers can be assigned by specific employee, by role, or by manager relationship. The system needs to resolve the correct approver at runtime based on the assignment type when a request is created. Multi-level step progression: After each approval action the system must check if more steps remain in the workflow and route to the next approver automatically, or mark the request as fully approved if it was the final step. Flexible workflow configuration: The same approval engine needed to support different HR modules (Attendance, Leave, Claims) with completely different workflow structures configured by admins without code changes. Role-based access enforcement: Admin, Manager, and Employee each have strictly different permissions — the same endpoints behave differently or are blocked entirely based on the caller's role, requiring careful middleware and authorization policy design
What I'd Do Differently
Email and in-app notifications when a request is submitted, approved, or rejected. Parallel approvals — allow multiple approvers at the same level to approve simultaneously rather than sequentially. Escalation workflows — automatically escalate to the next approver if no action is taken within a configured time window. Approval history logs — full audit trail of every action taken on every request. Workflow analytics dashboard — approval turnaround times, bottleneck detection, and request volume by module.