Skip to content

Horiqq7/BankSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

J. POO Morgan - Bank System Engine

Banking System

Overview

J. POO Morgan is a comprehensive, Java-based simulation of a modern banking backend. It models the core operations of a financial institution, managing users, diverse account types, cards, and transaction histories. The system processes a stream of commands (represented as JSON objects) and outputs the results of those operations, ensuring strict adherence to banking rules (e.g., sufficient funds, card validity, account types).

This project highlights a solid understanding of Object-Oriented Programming (OOP), state management, and the processing of complex, sequential data flows.

Core Features

  • User & Account Management: Supports multiple users, each capable of holding various account types (e.g., standard, savings).
  • Card Lifecycle Management: Simulates the creation, usage, and deletion of both standard and one-time-use virtual cards.
  • Transaction Processing: Accurately handles internal transfers (send money), external payments (online/offline), and fund additions.
  • Complex Scenarios: Manages intricate banking flows, including split payments among multiple users and continuous/recurring payment logic.
  • Detailed Reporting: Generates comprehensive transaction histories and specific spending reports per user or account.
  • Automated Validation: Driven by an internal checking mechanism that compares generated outputs against expected JSON references.

Technical Architecture

  • Language: Java
  • Build System: Maven
  • Data Serialization: Jackson (for reading command inputs and structuring transaction outputs as JSON).
  • Project Structure:
    • src/main/java/org/poo/: Contains the core logic.
      • fileio/: Data Transfer Objects (DTOs) mapping to the input JSON schema.
      • checker/: Internal tools for automated validation of transaction outcomes.
      • main/: The application entry point and command processor.
    • input/: Contains the JSON files defining the sequence of banking commands.
    • ref/: Expected output JSONs for validation.
    • result/: The actual outputs generated by the engine during runtime.

Execution & Testing

The engine is designed to run automated banking simulations via the Main.java class.

When executed, the program:

  1. Reads the banking configurations and commands from the JSON files located in the input/ directory.
  2. Processes the entire sequence of transactions, account creations, and card operations.
  3. Outputs the results to the result/ directory, which are then automatically compared against the expected outputs in the ref/ directory by the internal Checker class.

To run the simulations and the test suite, simply execute the Main class from your preferred Java IDE (like IntelliJ IDEA) or run the checker via Maven.

About

A comprehensive Java simulation of a banking backend, managing users, accounts, cards, and complex transaction flows via JSON commands.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors