Develop an online banking system with a GUI. Customers who use this will have special hardware that will accept deposits and allow withdrawals. You will simulate activating this hardware by having an informational message displayed if the transaction is successful. Ex: $50 has been withdrawn. Create a Java application (not applet) to run this project. The program must support input and output features of Java and provide more user-friendly features.
## Deliverables
1) Instead of hard-coding the objects, read their values from a data file stored on disk. This includes the Customer and Account information. 2) Provide a welcome screen to prompt for a logon ID and password. This will be verified against the information stored in the Customers object. You should allow the user up to three tries to logon correctly. If they fail to login after that, go back to a fresh welcome screen to allow someone else to login. a) Logged in customers can choose from the following options (at minimum): b) List available accounts. c) Perform a deposit or withdrawal to an account. d) Transfer between accounts. e) Change customer information. f) Logout and return to the welcome screen. g) Display a receipt for the customer. 3) Use properly formatted numbers when displaying amounts. 4) Customers should not be allowed to withdraw more than they have. 5) Create a text file log of all successful transactions that occur. You need to at least record a transaction ID date, time, account#, and amount. Come up with your own way to determine debits or credits. This file will always grow in size, you need to append it. 6) Check for invalid input. An invalid numeric amount should not crash the program. Inform the user of the error. 7) Include a bill payment option that will simulate creating a cashier’s check for the party to be paid. The user will specify the account to pay from, the party to be paid, and the numeric amount. You will then create a simulated check (text or with graphics) that will include the spelled-out amount (One thousand four hundred fifty three dollars and no cents). 8) Use multiple screens, graphics, and appropriate GUI functionality. The object (no pun intended) is to make the program user friendly and appealing. 9) Provide an admin screen to allow customers to be added, deleted, or edited by bank personal. A special login admin login should be provided to allow this. 10) When the simulation ends, display the number of customers serviced, total amount taken in, and total amount withdrawn. 11) Save all Customer and Account information so that if the simulation is restarted the same balances exist as when the Customers logged off. 12) Other enhancements as you see fit.
## Platform
Windows 2000