Back to Projects
TOOLSCOMPLETE▶ PLAYABLE

ATM Banking System

OOP inheritance-based banking simulator with checking, savings, credit accounts, and a "Rob the Bank" easter egg.

SOLO DEVELOPER  ·  Aug 1, 2024

// LIVE DEMO

A banking ATM simulator originally built in C++ demonstrating object-oriented programming with inheritance and polymorphism. Features three account types — Checking (fee after 3 withdrawals), Savings (withdrawal limit), and Credit (spending cap with penalty) — each overriding the base Withdraw method with unique business rules. Includes a humorous "Rob the Bank" easter egg. Re-implemented as an interactive web component for this portfolio.

// TECH STACK

LANGC++OOPInheritancePolymorphismLANGJavaScriptLIBReact

Contributions

  • 01Designed polymorphic account hierarchy with BaseAccount, CheckingAccount, SavingAccount, CreditAccount
  • 02Implemented per-account business rules using virtual method overrides
  • 03Built menu-driven console interface with input validation
  • 04Ported to TypeScript/React with interactive UI and transaction history

Technical Highlights

  • Virtual dispatch for polymorphic Withdraw behavior across account types
  • Encapsulated state with withdrawal counters and spending trackers
  • Dynamic type identification for account-specific messaging