A text-based Java application that simulates a basic banking system for a school assignment.
This application allows users to manage bank accounts, perform transactions (deposits and withdrawals), and view transaction history. All data is stored in CSV files for easy access and modification.
- Account management (create accounts, update account holder names)
- Process deposits and withdrawals
- Handle multiple transaction types in a single interaction
- Maintain and display transaction history
- Data persistence using CSV files
JavaProjectGideon/
├── data/ # Data storage directory
│ ├── account_balances.csv # Current account balances
│ ├── accounts.csv # Initial account setup
│ └── transactions.csv # Transaction history
├── src/main/java/com/example/helloworld/
│ ├── model/ # Data models
│ │ ├── Account.java # Account class
│ │ ├── Transaction.java # Transaction class
│ │ └── TransactionType.java # Transaction type enum
│ ├── service/ # Business logic
│ │ └── BankService.java # Banking operations service
│ └── BankingApp.java # Main application class
└── pom.xml # Maven project configuration
- Java Development Kit (JDK) 11 or higher
- Maven (optional, for building with Maven)
- Open a terminal/command prompt
- Navigate to the project root directory
- Run:
mvn clean package
- Find the executable JAR file in the
target
directory:target/BankingApp.jar
- Run the application by double-clicking the JAR file or using the command:
java -jar target/BankingApp.jar
- Open the project in your IDE (Eclipse, IntelliJ IDEA, VS Code, etc.)
- Build the project using the IDE's build functionality
- Run the
BankingApp
class
- Open a terminal/command prompt
- Navigate to the project root directory
- Run:
mvn clean compile
- Run:
mvn exec:java -Dexec.mainClass="com.example.helloworld.BankingApp"
- Open a terminal/command prompt
- Navigate to the project root directory
- Compile the code:
mkdir -p target/classes javac -d target/classes src/main/java/com/example/helloworld/*.java src/main/java/com/example/helloworld/*/*.java
- Run the application:
java -cp target/classes com.example.helloworld.BankingApp
The application uses CSV files to store data:
account_balances.csv
: Contains account numbers, holder names, and current balancestransactions.csv
: Records all transactions with timestamps
You can view and edit these files directly using a text editor or spreadsheet application.
When you run the application, you'll see a menu with options to:
- Select an account
- Create a new account
- List all accounts
- Exit
After selecting an account, you can:
- Make a deposit
- Make a withdrawal
- Perform multiple transactions
- View transaction history
- Update account holder name
- Return to the main menu