ATM Simulation

ATM Simulation

ATM Simulation is a Java program that utilised the Model-view-controller design pattern and embedded SQL with the Apache Derby database in order to simulate an ATM machine with a persistent accounts database.

The ATM Simulation program featured basic transaction features such as viewing the balance, and making withdrawals or deposits. Other features included an overdraft facility and changing an account’s pin. The program was later expanded to include additional functionality such as a management console to view account or audit data.


  • Persistent accounts database
  • Log-in and log-off
  • View balance
  • Transfers: Withdrawal and Deposit
  • Supports account numbers with leading zeros
  • Cancel, clear, and delete input buttons
  • Increment/decrement buttons
  • Change account password
  • Account overdraft limit
  • Persistent balance and overdraft display
  • Management console for admin accounts to view audit and accounts data