/EmployeeOnboardingStateMachine

The compact Human Resource management tool for adding talent to build Superteams!!! A must-have accelerator for modern large-scale enterprises.

Primary LanguageJava

Employee Onboarding State Machine

The compact Human Resource management tool for adding talent to build Superteams!!! A must-have accelerator for modern large-scale enterprises.

Features

  • Allows for rapid onboarding of people.
  • Reduces error rates (number of data errors per 1000 of persons on-boarded)

Intented End-Users

This is a tool for HR personnel in the following functions:

  • Hiring
  • Talent Acquisition

Suggested Usage Scenarios in Business Functions

  • to manage concurrent hiring of people,
  • concurrent employee on-boarding

Tools for Development and Execution

  • Java 17 (JDK 17)
  • Spring Boot
  • Spring StateMachine
  • Lombok
  • JUnit 5
  • Docker with docker-compose

To Start Docker container

From within the project root directory, issue the following command ($ is prompt, not to type in!):

$ docker-compose -f onboarding.yml up

The API Endpoints

  • to add an employee
POST http://localhost:8080/eob/add

Request Body (JSON) example:
{"emailAddress":"e004@email.com",
"name":"name",
"contract":"contract",
"age":30,
"state":"ADDED"
}
  • to update employee state
PUT http://localhost:8080/eob/update?email=e004@email.com&event=BEGIN_CHECK
  • to get employee details
GET http://localhost:8080/eob/getByEmailAddress?email=e004@email.com

Notes

  • A very simple and minimal app has been designed and implemented.
  • The app showcases state machine transitions.
  • To minimise the effort and time to devote prior to the first showcasing, the following have been parked for future when needed:
    • ResponseEntity in Controller
    • Controller test cases
    • More test cases for Service, especially unhappy scenarios
    • Elaborate OpenAPI documentation

Docker Image

This project is available to pull as a container image as well. Follow this link for exact details:

https://hub.docker.com/repository/docker/i50729/employeeonboarding

Contact Points for Feedback, Queries, Collaboration