You have joined a leading software development house Mechachrome Ltd. for an internship on one of their projects. The project has just been given the greenlight to proceed. The project is to develop a menu-driven banking application in Java for one of their clients (NationNarrow Building Society). The application should be easily maintainable and should also be scalable.
The application will be used by bank staff in branches across the country to help them with their day-to-day customer account transactions. Having read through the requirements,the analysts on the team have requested the following functions.
The banking application should be a console based menu driven application with sub-menus. An example of the main menu is shown below:
Depending on the option selected from the main menu, sub menus should branch out offering the user different options, e.g. if option 1 from the main menu is selected, a sub-menu should appear offering the user a choice of different accounts. In the case of a deposit or a withdrawal, a sub-menu should appear offering the user to opportunity to enter the account number and the amount to deposit or withdraw.
The bank offers the following account types:
Each account should have a unique account number to distinguish it from all other accounts. This should be generated automatically on creation of each account.
The application should allow bank staff to enter information on a customer upon opening their personal accounts. The information should include:
First name and surname
Date of birth
Address including post code
Phone number and email address
If the account holder is under 16 then there should be space to enter the name of the parent and their contact details if they are not the same as the child’s. Also, no overdraft facility should be available if the account holder is under 16.
For customers opening a business account the following is needed:
Company Address including post code
A phone number
What the system should be able to do:
Record the initial deposit used to open the account.
Keep an up-to-date account balance.
Allow customers to go overdrawn to a pre-set amount if the account holder is over 16. Overdrafts for personal accounts should be £500 and for business accounts £20,000.
To prevent further withdrawals in the event overdraft limit has been reached.
Transfer money from one account to another.
Show the balance on the account at any time.
Take into account the amount of money in the account and the size of overdraft available, and the amount of money that can be withdrawn
Display all of the transactions on an account (deposit, withdrawal, amount, date and balance after the transaction).
Show a list of all the accounts held by the customer and their current balances