Skip to content

ATM Machine — Simple#

Problem statement (interviewer prompt)

Design the software inside an ATM: authenticate by card + PIN, present a menu (balance / withdraw / deposit / transfer), validate balance + daily limits, dispense cash, print receipts, and handle exceptions (no cash, no network, card retained).

classDiagram
  class ATM
  class CardReader
  class CashDispenser
  class Display
  class Keypad
  class BankSwitch
  class State
  ATM --> CardReader
  ATM --> CashDispenser
  ATM --> Display
  ATM --> Keypad
  ATM --> BankSwitch
  ATM --> State