This Java project simulates an ATM system, allowing user interactions for banking operations. It features distinct roles for administrators and regular users, with functionalities like account creation and deletion, balance checking, deposits, withdrawals, and interest applications for savings accounts. The system authenticates users via account numbers and PINs, offering role-specific options post-login. Administrators can manage user accounts and apply interest, while regular users can manage their finances across checking and savings accounts. The project leverages Java classes for user and account management, with a Makefile for compiling and running the application. It exemplifies basic object-oriented programming, console-based user interaction, and financial transactions management.