/loan-management-microservices

This Github repository demonstrates a master-worker microservice architecture for a bank loan management module. It includes three microservices: Commercial Service, Risk Management Service, and Credit Service, all coordinated by the ProcessService master. The repository is intended as a learning resource and does not contain business logic.

Primary LanguageJavaScript


Logo

Loan Management Microservice

🔭 About The Project

This repository aims to showcase a microservice architecture design for a bank loan management module. The architecture is based on the master-worker pattern, with the ProcessService serving as the master that coordinates the Commercial Service, Risk Management Service, and Credit Service microservices. The focus of this implementation is to demonstrate the effectiveness of this architecture for handling loan management workflows, and thus the code does not include any business logic. The databases have been implemented as local files to keep the implementation simple and easy to understand. Overall, this repository provides an excellent resource for developers who want to learn how to implement microservice architectures in the context of loan management systems.

🤔 Accessible Endpoints

  • POST /add , create a new loan request

Microservices

The loan management module is built using a microservice architecture based on the master-worker model. The master service is the Process Service, which orchestrates the workflow of the following services:

Commercial Service: Processes the loan application to check the eligibility of the borrower and the repayment terms and period, based on the borrower’s income and financial situation. This service establishes an initial scoring to assess the eligibility of the client to get the loan.

Risk Management Service: Analyzes the loan application to determine whether the borrower can afford the loan and whether there are any outstanding commitments with other banks. The service provides a final score that determines whether the loan application should be approved.

Credit Service: Establishes the final step by elaborating the credit agreement to be signed and the amortization table. Both documents can be later viewed/downloaded by the client.

The module uses a local database file and the services run on different ports.

🎨 Tesseract OCR

Tesseract. js is an open source text recognization engine that allows us to extract text from an image. Another word for this technology is Optical Character Recognition, or OCR. OCRs work by scanning images and extracting their text as a machine-readable file.

https://www.npmjs.com/package/tesseract.js/v/2.1.1

🚧 Ports

The loan management module runs on the following ports:
3000: Process Service
3001: Commercial Service
3002: Risk Management Service
3003: Credit Service

Local Database

The loan management module uses a local database file to store relevant information and keep track of loan applications and their statuses.

🌱 Usage

To use this module, you'll need to have Node.js and npm installed on your computer. Once you have these installed, you can install the module by running the following command:
-npm install
-npm start

⚡ Architecture

architecture

## 😄 Demo

demo.webm