Project Title: BankApp
Project Description
"BankApp" is a command line application that simulates a banking system, allowing users to perform various banking operations through a text-based interface. The application will provide functionalities such as creating and managing customer accounts, performing transactions, checking balances, and generating reports. The project aims to showcase the fundamental concepts of OOP and Java while providing a practical and user-friendly banking experience.
Project Requirements
-
Account Management
- Implement classes to represent customer accounts, including properties like account number, balance, and customer information.
- Enable functionalities to create new accounts, update customer details, and manage account information. Transaction Handling
- Develop classes to handle transactions, such as deposits, withdrawals, and fund transfers between accounts.
- Ensure proper validation and error handling for transaction-related operations.
-
Balance Inquiry
- Implement functionality for users to check their account balances.
- Enable users to view transaction history and account statements.
-
Customer Management
- Create classes to manage customer information, including properties like name, address, and contact details.
- Enable functionalities to add new customers, update customer information, and retrieve customer details.
-
Security and Authentication
- Implement user authentication mechanisms, such as login and password verification.
- Ensure that only authorised users can access and perform banking operations.
-
Error Handling and Validation
- Implement robust error handling and validation mechanisms to ensure the integrity and reliability of the application.
- Validate user inputs, handle exceptions gracefully, and provide informative error messages.
-
Reporting
- Generate reports, such as account statements or transaction summaries, in a user-friendly format.
- Provide functionalities to view and print reports for users.
-
Data Persistence
- Implement data persistence mechanisms, such as file handling or a database, to store and retrieve customer and account information.
- Ensure data integrity and security during storage and retrieval operations.
-
User Interface
- Develop a command line user interface with clear and formatted text output and input prompts.
- Provide intuitive menus and commands for users to navigate and interact with the banking functionalities.
-
Documentation
- Prepare comprehensive documentation explaining the project's design, architecture, and implementation details.
- Provide class diagrams illustrating the relationships between different classes and their functionalities.
- Include code documentation with clear explanations of classes, methods, and variables
- Write a user manual that guides users through the application's functionalities and commands.
Ensure that the project deliverables align with the overall objective of creating a command line bank application that demonstrates the fundamental concepts of OOP in Java while providing a practical banking experience.
Suggested File Structure
- bankApp
- src
- com
- bankApp
- models
- Account.java
- Customer.java
- Transaction.java
- services
- AccountService.java
- CustomerService.java
- TransactionService.java
- util
- AuthenticationUtil.java
- InputUtil.java
- ReportUtil.java
- ui
- CommandLineUI.java
- Menu.java
- Application.java
- Main.java
- resources
- data
- accounts.txt
- customers.txt
- transactions.txt
- docs
- design.md
- user_manual.md
- README.md