How souvikdev21/npst_spring_services works
This repository contains Spring services for banking operations: account management, fund transfers, loans, and term deposits, with an API gateway. The principal transfer workflow records and validates a transaction, checks the source balance, then attempts external disbursal and records the outcome. Other distinct flows cover beneficiary enrollment, scheduled transfers, loan servicing, and deposit servicing. The README provides no product detail; component paths come from the tree, while connections are limited to relationships indicated by the sampled service code and component roles.
Main entry points: TransactionService.java Transaction Service · BeneficiaryService.java Beneficiary Service · LoanService.java Loan Service · TermDepositService.java Deposit Service
Components 34
API Gateway
- Gateway Application
API-Gateway/src/main/java/com/bank/api_gateway/ApiGatewayApplication.java - Gateway Security
API-Gateway/src/main/java/com/bank/api_gateway/config/SecurityConfig.java
Accounts
- Account API
account-service/src/main/java/com/fund_transfer/backend/controller/AccountController.java - Account Service
account-service/src/main/java/com/fund_transfer/backend/service/AccountServiceImpl.java - Account Store
account-service/src/main/java/com/fund_transfer/backend/repository/AccountRepository.java
Fund Transfers
- Transfer API
fund-service/src/main/java/com/fund_transfer/backend/controller/FundTransferController.java - Transaction Service
fund-service/src/main/java/com/fund_transfer/backend/service/TransactionService.java - Transaction Store
fund-service/src/main/java/com/fund_transfer/backend/repository/TransactionRepo.java - Beneficiary API
fund-service/src/main/java/com/fund_transfer/backend/controller/BeneficiaryController.java - Beneficiary Service
fund-service/src/main/java/com/fund_transfer/backend/service/BeneficiaryService.java - Beneficiary Store
fund-service/src/main/java/com/fund_transfer/backend/repository/BeneficiaryRepo.java - IFSC Lookup
fund-service/src/main/java/com/fund_transfer/backend/ifsc/IfscLookupService.java - OTP Client
fund-service/src/main/java/com/fund_transfer/backend/Otp/OtpClient.java - Scheduled Transfer API
fund-service/src/main/java/com/fund_transfer/backend/controller/ScheduledTransferController.java - Scheduled Transfer Service
fund-service/src/main/java/com/fund_transfer/backend/service/ScheduledTransferService.java - Scheduled Transfer Job
fund-service/src/main/java/com/fund_transfer/backend/scheduler/ScheduledTransferSchedulerJob.java - Scheduled Transfer Store
fund-service/src/main/java/com/fund_transfer/backend/repository/ScheduledTransferRepository.java
Loan Servicing
- Loan API
loan-service/src/main/java/com/bank/loan/controller/LoanController.java - Loan Service
loan-service/src/main/java/com/bank/loan/service/LoanService.java - Loan Calculations
loan-service/src/main/java/com/bank/loan/engine/AmortizationEngine.java - Loan Account Store
loan-service/src/main/java/com/bank/loan/repository/LoanAccountRepository.java
Term Deposits
- Deposit API
term-deposite/src/main/java/com/bank/td/controller/TermDepositController.java - Deposit Service
term-deposite/src/main/java/com/bank/td/service/TermDepositService.java - Deposit Calculations
term-deposite/src/main/java/com/bank/td/engine/InterestCalculationEngine.java - Deposit Store
term-deposite/src/main/java/com/bank/td/repository/TermDepositRepository.java - Deposit Request API
term-deposite/src/main/java/com/term_deposit/api/v1/controller/TermDepositController.java - Deposit Approval
term-deposite/src/main/java/com/term_deposit/domain/service/DepositRequestApprovalService.java - Approved Deposit Execution
term-deposite/src/main/java/com/term_deposit/domain/service/TermDepositService.java - CBS Deposit Client
term-deposite/src/main/java/com/term_deposit/client/feign/CbsFeignClient.java
Other components
- Banking User
- Core Banking System
- NPCI
- IFSC Provider
- OTP Provider
Connections 35
- Banking User → Gateway Application: accesses
- Gateway Application → Gateway Security: configures security
- Banking User → Account API: requests accounts
- Account API → Account Service: invokes
- Account Service → Account Store: reads and writes
- Banking User → Transfer API: requests transfer
- Transfer API → Transaction Service: invokes
- Transaction Service → Transaction Store: records transaction
- Transaction Service → Core Banking System: checks balance
- Transaction Service → NPCI: requests disbursal
- Banking User → Beneficiary API: manages beneficiaries
- Beneficiary API → Beneficiary Service: invokes
- Beneficiary Service → Beneficiary Store: reads and writes
- Beneficiary Service → IFSC Lookup: resolves IFSC
- IFSC Lookup → IFSC Provider: looks up branch
- Beneficiary Service → OTP Client: sends OTP
- OTP Client → OTP Provider: requests OTP
- Banking User → Scheduled Transfer API: manages schedules
- Scheduled Transfer API → Scheduled Transfer Service: invokes
- Scheduled Transfer Job → Scheduled Transfer Service: runs schedules
- Scheduled Transfer Service → Scheduled Transfer Store: reads and writes
- Banking User → Loan API: requests loan services
- Loan API → Loan Service: invokes
- Loan Service → Loan Account Store: reads and writes
- Loan Service → Loan Calculations: calculates schedules
- Loan Service → Core Banking System: applies and inquires
- Banking User → Deposit API: requests deposits
- Deposit API → Deposit Service: invokes
- Deposit Service → Deposit Store: reads and writes
- Deposit Service → Deposit Calculations: calculates interest
- Deposit Service → Core Banking System: opens and inquires
- Banking User → Deposit Request API: submits deposit request
- Deposit Request API → Deposit Approval: handles requests
- Approved Deposit Execution → CBS Deposit Client: opens approved deposit
- CBS Deposit Client → Core Banking System: opens deposit