Skip to content

A java batch pipeline for handling multiple atm operations

Notifications You must be signed in to change notification settings

BreatheCodeRepeat/batch-atm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BATCH ATM OPERATIONS PROCESSING PIPELINE

The pipeline is taking an input file and outputing the results of transactions . The code is written in Java with Spring Boot, Spring Batch for reading unstructured text files and Spring State Machine for managing state.

Installation

Clone the repo and run

mvn spring-boot:run 
or
mvn clean install

in the root of the project.

Usage

There are two files in the root of the project called transactions.txt and output.txt. transactions.txt is used as an input file. output.txt is the outputed transactions. Both names of the files can be customized from application.yaml

Example transactions.txt

8000

12345678 1234 1234
500 100
B
W 105

87654321 4321 4321
100 0
W 10

87654321 4321 4321
0 0
W 10
B

Example output.txt

500
395
90
FUNDS_ERR
0

Logic

The transactions can output 3 errors: ATM_ERR when ATM is empty, FUNDS_ERR when the account doesn't have funds, ACCOUNT_ERR when wrong pin was inserted

Using Spring Batch transaction.txt is read with a custom reader. This reader reads one session at a time where a session is bound by 2 blank lines. State of the app is managed using Spring State Machine.

About

A java batch pipeline for handling multiple atm operations

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages