Prerequisites :
- Java 17 - Installation
- Apache Maven - Installation
Running the application :
- To run the application on windows, please run ./run-application.bat
- To run the application on Linux or Mac, please run ./run-application.sh
Once the application runs successfully, you can find the API documentation here
API overview :
-
user-controller
helps setup user accounts and CRUD operations for the same. -
transaction-controller
/transactions/withdrawl - makes a transfer from user's account to a wallet. It talks to WithdrawalService for approval
/transactions/transfer - used for account-to-account transfer
Data Model
Unit Testing
Unit tests are available under src/test/java
class : TransactionServiceTest
Tests :
- testWithdrawalsSimple
- testWithdrawalsConcurrent
- testTransfersSimple
- testTransfersConcurrent
- testTransferssAndWithdrawalsConcurrent