Leave Management System

Introduction

In today’s fast-paced business environment, it’s important for small organizations such as Numino to increasingly adopt digital transformation initiatives to enhance productivity & reduce operational costs.

In one such case, leave management at Numino was handled manually via email requests and spreadsheets. Employees had no visibility into their leave balances and had to rely on the admin to provide updates. Similarly, the leave request process was cumbersome, involving back-and-forth email exchanges for approvals and adjustments.

This manual process created significant overhead for the admin, who was responsible for tracking outstanding leave balances, reconciling credits, and processing cancellations. As the team expanded, the limitations of this system became evident, making it difficult to ensure accuracy and efficiency.

To address these challenges, Numino recognized the need for a streamlined and automated leave management system. The solution had to be intuitive for employees while reducing the administrative burden, enabling both transparency and efficiency in leave management.

Project Info

Category

Cloud Backends, Web Apps

Tags

Features

Employee Leave Dashboard
Employee Leave Dashboard
  • Employees can view their leave balances, upcoming holidays as well as a comprehensive history of leaves taken, requests made, and credits processed.

  • Leave Application and Approval Workflow
    Leave Application and Approval Workflow
  • A user-friendly interface for employees to submit leave requests.
  • Managers receive automated notifications for approvals, reducing back-and-forth communication.
  • Leave Balance Automation
    Leave Balance Automation
  • Automatic calculation and updates of leave balances based on approvals, credits, and cancellations.



  • Holiday Calendar Integration
    Holiday Calendar Integration
  • A centralized holiday calendar for employees to plan their leaves around company holidays.





  • Holiday Calendar Integration
    Holiday Calendar Integration
  • A centralized holiday calendar for employees to plan their leaves around company holidays.





  • Notification System
    Notification System
  • Employees and managers are notified via email at every stage of the leave request process. Alerts for leave request status changes such as approvals, or rejections.



  • Admin Panel for Enhanced Management
    Admin Panel for Enhanced Management
  • A dedicated admin interface for managing employee profiles, configuring leave policies, and auditing leave history.
  • Simplified leave credit allocation for new joiners and adjustments for special circumstances.
  • Product Screenshots

    Technology Stack

    Spring Boot
    Spring Boot for building the backend services (Leave management service, Identity Management service, Notification service)
    Camunda
    Camunda for orchestrating leave requests and approval workflows (Leave management service is a Camunda Spring boot service)
    AWS
    AWS Services including EC2, Lambda, SQS, RDS, and CloudWatch for hosting, message queuing, data storage, and monitoring
    Docker
    Docker for containerization of services, enabling consistent and isolation across environments.
    Google
    Google Auth API for secure and seamless user authentication, ensuring that only authorized users can access the system.

    Architecture

    Key Components​

    <span class="mil-accent">Interface Layer
</span>
    Interface Layer
  • A React-based user interface enables employees and managers to easily request, review, and approve leaves.
  • The application is hosted using AWS S3 for static web hosting, with CloudFront as the content delivery network to ensure fast and secure access.




  • <span class="mil-accent">Observability Layer
</span>
    Observability Layer
  • AWS CloudWatch Logs provides real-time logging and monitoring to track system performance and debug issues.
  • Route 53 Health Checks are configured to monitor system health and detect potential outages proactively.


  • <span class="mil-accent">Orchestration Layer
</span>
    Orchestration Layer
  • Microservices such as Leave management , Identity management are hosted using docker containers on Single Ec2 instances. The email services on the other hand is hosted using lambda.
  • Camunda is integrated for orchestrating leave request and approval workflows, ensuring a visual process management.
  • AWS AppConfig is used to manage dynamic application configuration, enabling seamless updates without service disruptions.
  • <span class="mil-accent">Storage Layer
</span>
    Storage Layer
  • Core data, such as leave requests, employee details, and notifications, is securely stored in a MySQL database hosted on AWS RDS.
  • Static assets and application files are hosted on AWS S3, ensuring reliable and scalable storage.
  • Container images for services are stored and managed using Amazon Elastic Container Registry (ECR).
  • Notifications

    The Leave Management system implements an event-driven architecture for the notification service, utilizing Amazon SQS and AWS Lambda to ensure scalable and asynchronous processing of notification events.

    Event Channel
  • Amazon SQS acts as the message queue, ensuring reliable and scalable delivery of event messages.
  • It provides decoupling between the Leave Management system and the notification processing service, allowing the application to function independently of notification handling delays.
  • Event Publisher
  • When a significant event occurs in the Leave Management service (such as leave requests, approvals, rejections, or cancellations), an event is created and uploaded to Event Channel.
  • These events contain details of the notification, including the type of event, recipient information, and any relevant metadata required for processing the notification.
  • Event Consumer
  • AWS Lambda function is subscribed to the Event Channel (ie. SQS) and is triggered once an event is published.
  • The Lambda function is responsible for processing the notification event by consuming the message from the SQS queue. ​
  • Based on the type of event, the Lambda function will execute the necessary logic to generate and send the appropriate notification.​
  • Security And Compliance

    The Leave Management System is designed with a strong emphasis on security and compliance, ensuring that sensitive employee data and workflows are well-protected. Key measures include:

    <h5 data-elementor-setting-key="title" data-pen-placeholder="Type Here..." style="text-transform: none;">Google Authentication for Secure Access<span style="font-size: 22px; text-transform: unset;"></span></h5>
    Google Authentication for Secure Access

    Application access is enabled through Google Authentication, integrated with Numino's in-house identity system.  Only registered users within the organization’s domain are authorized to access the application, ensuring that external users are restricted.

    <h5 data-elementor-setting-key="title" data-pen-placeholder="Type Here..." style="text-transform: none;">User Onboarding and Role Allocation<span style="font-size: 22px; text-transform: unset;"></span></h5>
    User Onboarding and Role Allocation

    The admin portal provides tight control over user onboarding and role allocation, ensuring that access levels are managed effectively and logged for compliance.

    <h5 data-elementor-setting-key="title" data-pen-placeholder="Type Here..." style="text-transform: none;">Token-Based API Security<span style="font-size: 22px; text-transform: unset;"></span></h5>
    Token-Based API Security

    All API endpoints are secured through tokens generated by Numino's Identity Management Service (IDM). This ensures that only authenticated and authorized requests are processed by the system. The level of access for each api are also controlled through groups in IDM. For instance, employees can view their own leave but cannot view the leaves of other employees, managers on the other hand have access to view their own leaves in addition to viewing & approving the leaves of their reportees. 

    <h5 class="elementor-heading-title elementor-size-default elementor-inline-editing pen" data-elementor-setting-key="title" data-pen-placeholder="Type Here..." style="text-transform: none;">Service Account for Controlled Data Access</h5>
    Service Account for Controlled Data Access

    Access to application data is tightly controlled through a dedicated service account, minimizing exposure and ensuring compliance with data protection policies.

    <h5 data-elementor-setting-key="title" data-pen-placeholder="Type Here..." style="text-transform: none;">Secure Leave Approval Workflow<span style="font-size: 22px; text-transform: unset;"></span></h5>
    Secure Leave Approval Workflow

    Leave approvals via email are secured through Google Authentication, ensuring that only authorized personnel can approve or reject requests.  You can read more about Email approval in workflow here.

    Results

    Reduced Administrative Overhead
    Reduced Administrative Overhead
    Automating leave requests, approvals, and balance tracking has significantly reduced administrative overhead. The admin no longer needs to manually manage leave balances or process requests through emails and spreadsheets.
    Sleek User interface for Transparency
    Sleek User interface for Transparency
    Employees now have real-time visibility into their leave balances, holiday calendars, and leave history through the dashboard. This has eliminated the need for constant communication with the admin for leave-related queries.
    Streamlined Approval Process
    Streamlined Approval Process
    Managers can approve or reject leave requests instantly through emails without the need to login to the application. Additionally, notifications keep both employees and managers updated at every stage of the workflow.
    Data-Driven Insights
    Data-Driven Insights

    Administrators can generate comprehensive reports on leave trends and utilization, enabling better workforce planning. This case study talks about how we used Quicksight for Reports and Data insights generations.