Skip to content

ahlem-phantom/hrms-microservice

Repository files navigation

HRMS

Humain Ressources Management System Microservices

About The ProjectProject ArchitectureBuilt WithUsageContactReport BugRequest Feature

Microservice Architecture Human Resource Management System application built with Spring Boot and Node JS.

📃 About The Project

This is a HRMS Backend application that combines many human resources functions.It provides opportunities for the HR agents of a company to manage employees, departments, jobs and job seekers. The HR agent can view the list of all employees using filters, for example viewing a list of employees of a particular department. Create, delete or edit employee records in the system. Manage the company position, such as creating, updating, or deleting job offers. Manage payrolls of the employee.

📜 Project Main features

Our backend is powered by 5 microservices, all of which happen to be written in java using Spring Boot and JavaScript using NodeJS.

  • Employees Service: Provides PIM (Personal information management for employees and candidates). Provides employees information like hiring date, email, role, date of birth etc.
  • Recruitment Service: Provides recruitment information like Job Postings, Job Applicants etc.
  • Position Service: Provides postion information like designation, department name, employees etc.
  • Payroll Service: Provides payroll information like salaries etc.
  • Holiday/Leave Service: Provides holiday or leave information. Managing leave and defining holidays.

📐 Project Technical Architecture

Our sample microservices-based system consists of the following modules:

  • gateway-service : a module for running Spring Boot application that acts as a proxy/gateway in our architecture.
  • config-service : a module that uses Spring Cloud Config Server for running configuration server in the native mode. The configuration files are placed on the classpath.
  • discovery-service : a module thats Spring Cloud Eureka as an embedded discovery server.
  • employee-service : a module containing the 1st microservice that allows to perform CRUD operation on in-memory repository of employee.
  • payroll-service : a module containing the 2nd microservice that allows to perform CRUD operation on in-memory repository of payrolls. It communicates with account-service.
  • recruitement-service : a module containing the 3rd microservices that allows to perform CRUD operation on in-memory repository of recruitements.
  • position-service : a module containing the 4th microservices that allows to perform CRUD operation on in-memory repository of positions.
  • leave/holiday-service : a module containing the 5th microservices that allows to perform CRUD operation on in-memory repository of leave and holidays.

The following picture illustrates the architecture described above.

Netflix Oss Components:

Service Description
Discovery Service Netflix Eureka Server
Gateway Service Netflix Zuul Server
Dynamic Routing and Load Balancing Service Netflix Ribbon Server
Circuit Breaker Netflix Hystrix Server
Centrelized Configuration Spring Cloud Config Server

  • Each service is a separate microservice.
  • Eureka: is a discovery server, all the other microservices register to it.
  • Gateway: entry point for other services. Protects other routes and validates tokens.
  • Auth: authentication server, used for signing up and issuing tokens.
  • So, you should register with Auth first, request a token, and use it for every request for which you need to be authenticated. Every request will hit the Gateway first, if need be, it will validate the token and grant you access to the service.

🚀 Built With

You may find below the list of the frameworks/libraries that we used to build this demo project :

✨ Getting Started

To get a local copy up and running follow these simple example steps.

🚧 Prerequisites

You may find below the list of things you need to use this project :

  • You need to have Maven, JDK8+.
  • You will need to install docker in order to use the docker-compose.

🛠 Installation

In order to install the app you need to follow the instructions below :

  1. Clone the repo

    git clone https://github.com/ahlem-phantom/microservice-project.git
  2. Create an executable jar file for each microservice under the target directory

    mvn clean package
  3. Build and run the docker containers of the application :

    docker-compose up 
  4. Open localhost:8761 in the browser and that's it you can use our application's microservices 🎉!

⚡ Usage

Use this space to show useful examples of how a project can be used. Additional screenshots, code examples and demos work well in this space. You may also link to more resources.

🚩 Roadmap

  • Phase 1 : Implementation of Discovery and Gateway services

    • Implementation of Eureka as a discovery server
    • Implementation of Zull as a gateway or proxy server
    • Implementation of config server
  • Phase 2 : Implementation of the main application microservices

    • Employees Service
    • Recruitment Service
    • Position Service
    • Payroll Service
    • Leave/Holiday Service
  • Phase 3 : Deployement of microservices using Docker

😎 Contributing

If you have a suggestion that would make this project better, please fork the repo and create a pull request. Any contributions you make are greatly appreciated. Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b Yourbranch)
  3. Commit your Changes (git commit -m 'Add some features to project')
  4. Push to the Branch (git push origin Yourbranch)
  5. Open a Pull Request

(back to top)

💌 Contact

Project Members :


Ahlem Laajili

Skander Turki

Syrine Zahras

Hichem Ben Zammal

Nesrine Ben Mahmoud
Gmail Badge
Gmail Badge
Gmail Badge
Gmail Badge
Gmail Badge

(back to top)

🙌 Acknowledgments

(back to top)

Developed with 💕 by AlphaCoders.