How izenyogrief/multicurrency-bank-transaction-processing-engine works
This repository is a Spring banking backend, with API surfaces for authentication, account and customer administration, transfers, card payments, loans, overdrafts, and transaction oversight. The tree suggests a user-to-result flow from a REST endpoint through a domain service to a banking operation; sampled controller wiring is insufficient to assert those call edges. Sampled implementation does show session creation and validation, including persistence, token creation, and caching. Major capabilities are retained, but unsampled subsystem connections are intentionally not inferred.
Main entry points: InternalAccessSessionCreateService.java Session Creation · InternalAccessSessionService.java Session Validation · AccessSessionManager.java Session Manager · RefreshTokenController.java Token Refresh API
Components 28
REST API
- Authentication API
src/main/java/com/project/banksystem/api/restcontroller/auth/AuthenticationController.java - Transfer APIs
src/main/java/com/project/banksystem/api/restcontroller/banktransaction/accounttransaction/publicuse/PublicAccountTransactionController.java - Card Transaction APIs
src/main/java/com/project/banksystem/api/restcontroller/banktransaction/cardtransaction/publicuse/PublicCardTransactionController.java - Loan APIs
src/main/java/com/project/banksystem/api/restcontroller/loan/request/PublicLoanRequestController.java
Identity Sessions
- Login Services
src/main/java/com/project/banksystem/application/backend/auth/impl/LoginServiceImpl.java - Session Creation
src/main/java/com/project/banksystem/application/backend/accesssession/internal/InternalAccessSessionCreateService.java - Session Validation
src/main/java/com/project/banksystem/application/backend/accesssession/internal/InternalAccessSessionService.java - Session Manager
src/main/java/com/project/banksystem/application/backend/accesssession/AccessSessionManager.java - Token Refresh API
src/main/java/com/project/banksystem/api/restcontroller/refreshtoken/RefreshTokenController.java - Session Refresh
src/main/java/com/project/banksystem/application/backend/refreshtoken/service/AccessSessionRefreshService.java - Redis Session Cache
- JWT Token Services
- Refresh Token Creation
Payments Ledger
- Payment Session APIs
src/main/java/com/project/banksystem/api/restcontroller/banktransaction/moneytransactionsession/PublicMoneyTransactionSessionRequestController.java - Payment Session Creation
src/main/java/com/project/banksystem/application/backend/moneytransactionsession/payment/internal/InternalPaymentSessionCreateService.java - Payment Session Manager
src/main/java/com/project/banksystem/application/backend/moneytransactionsession/payment/PaymentSessionManager.java - Transfer Service
src/main/java/com/project/banksystem/application/backend/banktransaction/impl/TransferServiceImpl.java - Foreign Exchange
src/main/java/com/project/banksystem/application/backend/banktransaction/impl/ForeignExchangeTransferServiceImpl.java - Card Transaction Service
src/main/java/com/project/banksystem/application/backend/banktransaction/cardtransaction/impl/CardTransactionServiceImpl.java
Lending
- Loan Request Service
src/main/java/com/project/banksystem/api/restcontroller/loan/request/PublicLoanRequestController.java - Loan Payment API
src/main/java/com/project/banksystem/api/restcontroller/loan/payment/PublicLoanPaymentController.java - Loan Session Creation
src/main/java/com/project/banksystem/application/backend/moneytransactionsession/loan/internal/InternalLoanPaymentSessionCreateService.java - Overdraft Session Creation
src/main/java/com/project/banksystem/application/backend/moneytransactionsession/overdraft/internal/InternalOverdraftPaymentSessionCreateService.java
Bank Operations
- Transaction Management
src/main/java/com/project/banksystem/api/restcontroller/banktransaction/transaction/TransactionManagingController.java - Transaction Authorization
src/main/java/com/project/banksystem/application/backend/banktransaction/transaction/service/TransactionAuthorizeService.java - Admin Transactions
Other components
- Customer or Admin
- Session User
Connections 11
- Session Creation → Session Manager: saves session
- Session Creation → Refresh Token Creation: creates refresh token
- Session Creation → Redis Session Cache: caches after commit
- Session Creation → JWT Token Services: creates JWTs
- Session Validation → Redis Session Cache: checks cache
- Session Validation → Session Manager: finds session
- Session Validation → Redis Session Cache: refreshes cache
- Token Refresh API → Session Refresh: refreshes session
- Payment Session Creation → Payment Session Manager: saves session
- Loan Session Creation → Loan Request Service
- Overdraft Session Creation → Payment Session APIs