diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..62bdf20
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/.project b/.project
new file mode 100644
index 0000000..a9fd48a
--- /dev/null
+++ b/.project
@@ -0,0 +1,28 @@
+
+
+ ATM-Management-System-Maintenance-Project
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
+
+ 1768836522542
+
+ 30
+
+ org.eclipse.core.resources.regexFilterMatcher
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+
+
+
+
diff --git a/README.md b/README.md
index 7a5b30d..82c9795 100644
--- a/README.md
+++ b/README.md
@@ -4,9 +4,9 @@ This repository contains an ATM Management System project implemented in Java.
## Instructions
-To run the program, follow these steps:
+To run the program, follow these steps: --
-1. Run the `AtmMainDriver` file.
+1. Run the `AtmMainDriver` file.
2. No additional packages need to be downloaded.
3. The username and password for both "Admin" and "User" are as follows:
- Username: zahid
diff --git a/atm/bin/atm/AccountData.class b/atm/bin/atm/AccountData.class
new file mode 100644
index 0000000..ff995f1
Binary files /dev/null and b/atm/bin/atm/AccountData.class differ
diff --git a/atm/bin/atm/Admin.class b/atm/bin/atm/Admin.class
new file mode 100644
index 0000000..4b767b5
Binary files /dev/null and b/atm/bin/atm/Admin.class differ
diff --git a/atm/bin/atm/AfterLogin.class b/atm/bin/atm/AfterLogin.class
new file mode 100644
index 0000000..9e3b196
Binary files /dev/null and b/atm/bin/atm/AfterLogin.class differ
diff --git a/atm/bin/atm/AtmMainDriver.class b/atm/bin/atm/AtmMainDriver.class
new file mode 100644
index 0000000..d3bfa60
Binary files /dev/null and b/atm/bin/atm/AtmMainDriver.class differ
diff --git a/atm/bin/atm/LoginForm.class b/atm/bin/atm/LoginForm.class
new file mode 100644
index 0000000..917258e
Binary files /dev/null and b/atm/bin/atm/LoginForm.class differ
diff --git a/atm/bin/atm/TestTransactionHistory.class b/atm/bin/atm/TestTransactionHistory.class
new file mode 100644
index 0000000..9d61c2e
Binary files /dev/null and b/atm/bin/atm/TestTransactionHistory.class differ
diff --git a/atm/build/classes/atm/AccountData.class b/atm/build/classes/atm/AccountData.class
index 63e2f61..cf427aa 100644
Binary files a/atm/build/classes/atm/AccountData.class and b/atm/build/classes/atm/AccountData.class differ
diff --git a/atm/build/classes/atm/Admin.class b/atm/build/classes/atm/Admin.class
index 41f6dd1..0783623 100644
Binary files a/atm/build/classes/atm/Admin.class and b/atm/build/classes/atm/Admin.class differ
diff --git a/atm/build/classes/atm/AfterLogin.class b/atm/build/classes/atm/AfterLogin.class
index 42bdefe..1e3f39d 100644
Binary files a/atm/build/classes/atm/AfterLogin.class and b/atm/build/classes/atm/AfterLogin.class differ
diff --git a/atm/build/classes/atm/AtmMainDriver.class b/atm/build/classes/atm/AtmMainDriver.class
index 0357465..0da7eea 100644
Binary files a/atm/build/classes/atm/AtmMainDriver.class and b/atm/build/classes/atm/AtmMainDriver.class differ
diff --git a/atm/build/classes/atm/LoginForm$ATM_System.class b/atm/build/classes/atm/LoginForm$ATM_System.class
deleted file mode 100644
index 44cf94b..0000000
Binary files a/atm/build/classes/atm/LoginForm$ATM_System.class and /dev/null differ
diff --git a/atm/build/classes/atm/LoginForm.class b/atm/build/classes/atm/LoginForm.class
index c6d6812..d77e5f1 100644
Binary files a/atm/build/classes/atm/LoginForm.class and b/atm/build/classes/atm/LoginForm.class differ
diff --git a/atm/build/classes/atm/TestTransactionHistory.class b/atm/build/classes/atm/TestTransactionHistory.class
new file mode 100644
index 0000000..c029fa9
Binary files /dev/null and b/atm/build/classes/atm/TestTransactionHistory.class differ
diff --git a/atm/src/atm/Admin.java b/atm/src/atm/Admin.java
index 7e4e6a4..c22a146 100644
--- a/atm/src/atm/Admin.java
+++ b/atm/src/atm/Admin.java
@@ -2,9 +2,9 @@
import java.awt.Color;
import java.awt.Container;
import java.awt.event.*;
+import java.io.*;
import java.util.*;
import javax.swing.*;
-import java.io.*;
/*\ I have to add these options
Add Account
@@ -23,7 +23,7 @@ public class Admin extends JFrame implements ActionListener
JLabel atmLab;
Container con;
ArrayList customerlist;
- String s1,s2,s3;
+ String s1;
Admin()
{
super("ADMIN");
@@ -67,7 +67,42 @@ public class Admin extends JFrame implements ActionListener
saveToFile.addActionListener(this);
logOut.addActionListener(this);
+ loadPersons();
+ }
+ /*******************************LOAD ACCOUNT FROM FILE*******************************************/
+ public void loadPersons()
+ {
+ String ss[]=null;
+ String pincode,customername,accounttype,accountnumber,startbalance;
+
+ try
+ {
+ FileReader fr=new FileReader("Customer Record.txt");
+ BufferedReader br=new BufferedReader(fr);
+
+ String line=br.readLine();
+
+ while(line != null)
+ {
+ ss=line.split(",");
+ pincode=ss[0];
+ customername=ss[1];
+ accounttype=ss[2];
+ accountnumber=ss[3];
+ startbalance=ss[4];
+
+ AccountData atm=new AccountData(pincode,customername,accounttype,accountnumber,startbalance);
+ customerlist.add(atm);
+ line=br.readLine();
+ }
+ br.close();
+ fr.close();
+ }
+ catch(IOException ioEX)
+ {
+ System.out.println("No existing customer records found. Starting fresh.");
+ }
}
/*******************************ADD ACCOUNT************************************************/
@@ -218,6 +253,7 @@ public void edit(String n)
/************************************************************************************************************/
/***************************************************************************************************/
+ @Override
public void actionPerformed(ActionEvent e)
{
diff --git a/atm/src/atm/AfterLogin.java b/atm/src/atm/AfterLogin.java
index fe8a76a..39732b9 100644
--- a/atm/src/atm/AfterLogin.java
+++ b/atm/src/atm/AfterLogin.java
@@ -1,290 +1,489 @@
-package atm;
-import java.awt.*;
-import java.awt.event.*;
-import java.util.*;
-import javax.swing.*;
-import java.io.*;
-
-public class AfterLogin extends JFrame implements ActionListener
-{
-
- JButton equiryBtn,withdrawBtn,logoutBtn,transferBtn;
- JLabel atmLab;
- Container con;
- ArrayList customerlist;
- Admin adm = new Admin();
- String s1;
-
- AfterLogin()
- {
-
- super("Transaction");
- customerlist=new ArrayList();
-
- con = this.getContentPane();
- con.setLayout(null);
- con.setBackground(Color.BLACK);
-
-
- atmLab = new JLabel(new ImageIcon("atm.png"));
- atmLab.setBounds(60,10,300,100);
-
- equiryBtn = new JButton("Balance Enquiry");
- equiryBtn.setBounds(10,130,150,40);
-
- transferBtn = new JButton("Transfer Money");
- transferBtn.setBounds(260,130,150,40);
-
- withdrawBtn = new JButton("WithDraw Money");
- withdrawBtn.setBounds(260,230,150,40);
-
-
- logoutBtn = new JButton("Logout");
- logoutBtn.setBounds(10,230,150,40);
-
- con.add(atmLab);
- con.add(equiryBtn);
- con.add(withdrawBtn);
- con.add(transferBtn);
- con.add(logoutBtn);
- /********************************************************************/
-
- equiryBtn.addActionListener(this);
- transferBtn.addActionListener(this);
- withdrawBtn.addActionListener(this);
- logoutBtn.addActionListener(this);
-
- loadPersons();
- }
- /*****************************Load Data from File****************************************/
-
- public void loadPersons()
- {
- String ss[]=null;
- String pincode,customername,accounttype,accountnumber,startbalance;
-
- try
- {
- FileReader fr=new FileReader("Customer Record.txt");
- BufferedReader br=new BufferedReader(fr);
-
-
- String line=br.readLine();
-
- while(line != null)
- {
- ss=line.split(",");
- pincode=ss[0];
- customername=ss[1];
- accounttype=ss[2];
- accountnumber=ss[3];
- startbalance=ss[4];
-
- AccountData atm=new AccountData(pincode,customername,accounttype,accountnumber,startbalance);
- customerlist.add(atm);
- line=br.readLine();
- }
- br.close();
- fr.close();
- }
- catch(IOException ioEX)
- {
- System.out.println(ioEX);
- }
- }
-
-/***************************************************************************************************************************/
-
-
-/********************************************************* Balance Enquiry of Customer ************************************/
- public void inquiry(String n)
- {
- for(int i=0;i transactions = new ArrayList<>();
+ String line = br.readLine();
+
+ while(line != null) {
+ transactions.add(line);
+ line = br.readLine();
+ }
+ br.close();
+ fr.close();
+
+ // Display last 10 transactions
+ StringBuilder history = new StringBuilder();
+ int start = Math.max(0, transactions.size() - 10);
+
+ if(transactions.isEmpty()) {
+ history.append("No transactions found.");
+ } else {
+ history.append("Last ").append(Math.min(10, transactions.size())).append(" Transactions:\n\n");
+ for(int i = start; i < transactions.size(); i++) {
+ history.append(transactions.get(i)).append("\n");
+ }
+ }
+
+ JOptionPane.showMessageDialog(null, history.toString(), "Transaction History", JOptionPane.INFORMATION_MESSAGE);
+ } catch(IOException ioEX) {
+ JOptionPane.showMessageDialog(null, "No transaction history found for this account.", "Transaction History", JOptionPane.INFORMATION_MESSAGE);
+ }
+}
+
+/***************************************************************************************************************************/
+
+
+/********************************************************* Balance Enquiry of Customer ************************************/
+ private void inquiry(String k) {
+ for(int i=0;i lines = new ArrayList<>();
+ String line;
+ while ((line = br.readLine()) != null) lines.add(line);
+ br.close();
+
+ int start = Math.max(0, lines.size() - 10);
+ System.out.println("\nLast " + Math.min(10, lines.size()) + " transactions:");
+ for (int i = start; i < lines.size(); i++) {
+ System.out.println(lines.get(i));
+ }
+ } catch (IOException e) {
+ System.out.println("Failed to read transactions: " + e);
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/atm/transactions_1234.txt b/atm/transactions_1234.txt
new file mode 100644
index 0000000..860dd06
--- /dev/null
+++ b/atm/transactions_1234.txt
@@ -0,0 +1,12 @@
+Deposit | 101 | 1001 | 2026-02-05 23:57:24
+Deposit | 102 | 1002 | 2026-02-05 23:57:24
+Deposit | 103 | 1003 | 2026-02-05 23:57:24
+Deposit | 104 | 1004 | 2026-02-05 23:57:24
+Deposit | 105 | 1005 | 2026-02-05 23:57:24
+Deposit | 106 | 1006 | 2026-02-05 23:57:24
+Deposit | 107 | 1007 | 2026-02-05 23:57:24
+Deposit | 108 | 1008 | 2026-02-05 23:57:24
+Deposit | 109 | 1009 | 2026-02-05 23:57:24
+Deposit | 110 | 1010 | 2026-02-05 23:57:24
+Deposit | 111 | 1011 | 2026-02-05 23:57:24
+Deposit | 112 | 1012 | 2026-02-05 23:57:24