A robust Java-based banking system that implements SOLID principles and design patterns.
This system manages bank accounts, transactions, and customer data with a focus on clean architecture and maintainable code.
- Account Management (Savings, Checking accounts)
- Transaction Processing
- Customer Management
- Report Generation
- Data Validation
- Exception Handling
- MVC Pattern
- Builder Pattern
- Strategy Pattern
- Factory Pattern
- SOLID Principles
- Clean Code
- DRY (Don't Repeat Yourself)
- KISS (Keep It Simple, Stupid)
src/ ├── model/ ├── builder/ ├── controller/ ├── view/ ├── service/ ├── exception/ ├── util/ └── main/
- Java JDK 11 or higher
- Any Java IDE (IntelliJ IDEA, Eclipse, etc.)
- Clone the repository
git clone [your-repo-url]
- Open the project in your IDE
- Run BankApplication.java
The system provides following operations:
- Create new account
- Savings Account
- Checking Account
- View account details
- Make transactions
- Deposit
- Withdraw
- Transfer
- View account statement
- View transaction history
- Generate monthly report
Menu Options:
- Create Account
- View Account
- Make Transaction
- Generate Report
- Exit
## Contributing
1. Fork the project
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
### Coding Standards
- Follow Java naming conventions
- Write clear commit messages
- Add comments for complex logic
- Write unit tests for new features
This project is licensed under the MIT License - see the LICENSE file for details
## Author
[Mustafa BİRCAN]
- GitHub: [mustafa-bircan]
- LinkedIn: [linkedin.com/in/mstfbrcn]