User Management

Overview

The objective of User Management in DIGIT HRMS service is to provide a service that manages all the employees enrolled in the system. HRMS provides extensive APIs to create, update, and search employees with attributes like assignments, service history, jurisdiction, etc. HRMS can be treated as a sub-set of the egov-user service, Every employee created through HRMS will also be created as a user in egov-user.

Pre-requisites

Before you proceed with the documentation, make sure the following pre-requisites are met:

  • Java 8.

  • Kafka server is up and running.

  • egov-persister service is running and has HRMS service persister config path added in it.

  • PSQL server is running and a database is created to store employee data.

  • Dependency services should be up and running:

Key Functionalities

  • This service provides a feature to create, update, and search the employee in the system.

  • It provides a feature to add various roles to an employee under multiple jurisdictions.

  • It provides a feature to deactivate and reactivate an employee.

  • It records the employee details such as assignment details, jurisdiction details, and personal details.

Setup Details

The source code for User Management (egov-hrms) is present in the digit-dev Git repo. The spring boot application needs the Lombok* extension added to the IDE to load it. Once the application is up and running, the API requests can be posted to the URL and the IDs can be generated.

*In the case of IntelliJ, the plugin can be installed directly. For eclipse, the Lombok jar location has to be added in the eclipse.ini file in this format javaagent:lombok.jar.

Following are the properties in the application.properties file in the HRMS service, which is configurable:

Configuration Details

  • EmployeeDepartment.json

{
  "tenantId": "default",
  "moduleName": "egov-hrms",
  "EmployeeDepartment": [
    {
      "code": "NMCP",
      "active": true
    },
    {
      "code": "TECH",
      "active": true
    },
    {
      "code": "WAREHOUSE",
      "active": true
    },
    {
      "code": "ADM",
      "active": true
    }
  ]
}
  • Degree

{
  "tenantId": "default",
  "moduleName": "egov-hrms",
  "Degree": [
    {
      "code": "MATRICULATION",
      "active": true
    },
    {
      "code": "10+2/EQUIVALENTDIPLOMA",
      "active": true
    },
    {
      "code": "B.A/B.SC./B.COM/BBA",
      "active": true
    },
    {
      "code": "LLB/LLM",
      "active": true
    },
    {
      "code": "B.E/B.TECH.",
      "active": true
    },
    {
      "code": "M.A/M.COM./M.SC.",
      "active": true
    },
    {
      "code": "M.E/M.TECH.",
      "active": true
    },
    {
      "code": "MBA/PGDM",
      "active": true
    },
    {
      "code": "DOCTORATE",
      "active": true
    },
    {
      "code": "OTHER",
      "active": true
    }
  ]
}
  • Employee Status

{
  "tenantId": "default",
  "moduleName": "egov-hrms",
  "EmployeeStatus": [
    {
      "code": "ACTIVE",
      "active": true
    },
    {
      "code": "INACTIVE",
      "active": true
    }
  ]
}
  • Employee Type

{
  "tenantId": "default",
  "moduleName": "egov-hrms",
  "EmployeeType": [
    {
      "code": "PERMANENT",
      "active": true
    },
    {
      "code": "TEMPORARY",
      "active": true
    },
    {
      "code": "DAILYWAGES",
      "active": true
    },
    {
      "code": "CONTRACT",
      "active": true
    },
    {
      "code": "DEPUTATION",
      "active": true
    }
  ]
}
  • Reason For Deactivation or Reactivation

{
  "tenantId": "default",
  "moduleName": "egov-hrms",
  "DeactivationReason": [
    {
      "code": "OTHERS",
      "active": true
    },
    {
      "code": "ORDERBYCOMMISSIONER",
      "active": true
    }
  ]
}
  • Roles

{
  "tenantId": "default",
  "moduleName": "ACCESSCONTROL-ROLES",
  "roles": [
    {
      "code": "SYSTEM_ADMINISTRATOR",
      "name": "System Administrator",
      "description": "System Administrator"
    },
    {
      "code": "REGISTRAR",
      "name": "Registrar",
      "description": "Registrar"
    },
    {
      "code": "DISTRIBUTOR",
      "name": "Distributor",
      "description": "Distributor"
    },
    {
      "code": "SUPERUSER",
      "name": "Super User",
      "description": "Super User. Can change all master data and has access to all the system screens."
    },
    {
      "code": "NATIONAL_SUPERVISOR",
      "name": "National Supervisor",
      "description": "Supervisor who can view National health dashboard"
    },
    {
      "code": "PROVINCIAL_SUPERVISOR",
      "name": "Provincial Supervisor",
      "description": "Supervisor who can view Provincial health dashboard"
    },
    {
      "code": "DISTRICT_SUPERVISOR",
      "name": "District Supervisor",
      "description": "Supervisor who can view District health dashboard"
    },
    {
      "code": "FIELD_SUPERVISOR",
      "name": "Field Supervisor",
      "description": "Supervisor who can view Field health dashboard"
    },
    {
      "code": "SUPERVISOR",
      "name": "Supervisor",
      "description": "Supervisor"
    },
    {
      "code": "WAREHOUSE_MANAGER",
      "name": "Warehouse Manager",
      "description": "Warehouse manager"
    },
    {
      "code": "INTERNAL_MICROSERVICE_ROLE",
      "name": "Internal Microservice Role",
      "description": "Internal role for plain access"
    },
    {
      "code": "CITIZEN",
      "name": "Citizen",
      "description": "Citizen who can raise complaint"
    },
    {
      "code": "PGR-ADMIN",
      "name": "PGR Administrator",
      "description": "Admin role that has super access over the system"
    },
    {
      "code": "HRMS_ADMIN",
      "name": "HRMS Admin",
      "description": "HRMS Admin"
    },
    {
      "code": "HELPDESK_USER",
      "name": "HELPDESK USER",
      "description": "HELPDESK USER"
    },
    {
      "code": "L2_SUPPORT",
      "name": "L2 Support",
      "description": "L2 Support"
    },
    {
      "code": "CSR",
      "name": "CSR",
      "description": "CSR"
    }
  ]
}
  • Boundary

API Details

Refer to the Swagger API for YAML file details: UserManagement.yaml

Persister configuration:

Postman collection

Click here

https://creativecommons.org/licenses/by/4.0/