Skip to content

A Java-based banking system simulation that demonstrates object-oriented programming principles and clean architecture.

Notifications You must be signed in to change notification settings

Caulicons/thebankofthebanks-in-java-now

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 

Repository files navigation

The Bank of Banks 🏦

A Java-based banking system simulation that demonstrates object-oriented programming principles and clean architecture.

Project Overview

The Bank of Banks is a console application that simulates basic banking operations including:

  • Client management (CRUD operations)
  • Account management (Current and Savings accounts)
  • Banking operations (deposits, withdrawals, transfers)
  • Interest calculations for savings accounts
  • Overdraft facility for current accounts

Technologies Used

  • Java 21
  • Maven
  • JUnit 5
  • Mockito

Key Features

  • Builder Pattern for object creation
  • Repository Pattern for data access
  • Interface segregation
  • Clean Architecture principles
  • Input validation
  • Error handling
  • Unit testing

Getting Started

Prerequisites

  • Java 21 or higher
  • Maven

Installation

  1. Clone the repository
git clone https://github.com/yourusername/TheBankOfBanks.git
  1. Build the project
mvn clean install
  1. Run the application
mvn exec:java

Running Tests

mvn test

Project Highlights

  • Robust Input Validation

    • CPF format verification
    • Numeric input handling
    • Date format validation
    • Empty input prevention
  • 🎯 Clean Code Principles

    • Single Responsibility Principle
    • Interface Segregation
    • Meaningful naming conventions
  • 🏗️ Design Patterns

    • Builder pattern for object creation
    • Repository pattern for data access
    • Command pattern for menu operations
  • 🧪 Comprehensive Testing

    • Unit tests with JUnit 5
    • Mock objects with Mockito

About

A Java-based banking system simulation that demonstrates object-oriented programming principles and clean architecture.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages