Skip to content

java-salehian/ConcurrentBankingSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Concurrent Banking System Project Definition:
Implement a Concurrent Banking System using java and spring frameworks with 7 below Requirements:
1- Implement a simplified banking system that supports multiple user accounts with the following
functionalities:
	❖ Account creation with an initial balance.
	❖ Deposit and withdrawal transactions.
	❖ Transfer funds between accounts.
	❖ Display account balance.
2- Create a Bank class that manages user accounts. It should provide methods for creating accounts, performing transactions, and retrieving account information.
3- Implement a BankAccount class to represent individual user accounts. Each account should have a unique account number, an account holder's name, and a balance.
4- Ensure thread safety in the banking system to handle concurrent transactions, considering that multiple users may be depositing, withdrawing, or transferring funds simultaneously.
5- Implement a class TransactionLogger that logs all transactions to a file. Use the Observer design pattern to notify the logger of new transactions. Define an interface TransactionObserver with a method like void onTransaction(String accountNumber, String transactionType, double amount).
6- Consider implementing a Strategy design pattern to handle different transaction types more flexibly.
7- Implement a simple console-based user interface to interact with the banking system. Users should be able to create accounts, perform transactions, and check balances.

also please consider below Guidelines:
	❖ Use Spring boot and Hibernate Frameworks(prefer to use h2 db)
	❖ Use Java's ExecutorService for managing threads.
	❖ Apply proper synchronization mechanisms to ensure thread safety in the banking system.
	❖ Use object-oriented design principles for creating clean and modular classes.
	❖ Apply the Observer design pattern for the transaction logger.
	❖ Use a design pattern to enhance the flexibility of handling different transaction types.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages