Java program with Deliverables - Building Society (Bank)

Design and implement a class called Building Society that manages user accounts using an appropriate graphical user interface in Swing. Each instance of the BuildingSociety class will have a name and a maximum number of accounts that it can handle.

The BuildingSociety class should have the following methods:

openAccount ( allow a user to open a new Credit Union account)

closeAccount (allow an account holder to close an account on condition that the balance is currently zero)

makeLodgement ( allow an account holder to lodge money)

makeWithdrawal (allow an account holder to withdraw money from their account)

requestOverdraft (allow an account holder to request a new overdraft limit).

Each BuildingSociety Account should have a number, a name, a current balance and an overdraft limit. The methods for each account are:

lodgement ( make a lodgement)

withdrawal (remove a sum of money from the account on condition that there are sufficient funds available to meet the request)

balance (check current balance)

overdraftLimit ( check current overdraft limit)

setNewOverdraft ( set the overdraft limit to some given value).

The full Question and the deliverables are stated in a pdf called Software_Development_Project in the zip file. Other files and notes in the zip file can be used as a guideline to see what level of complexity the program has to be. Program has to use programming style used in the notes. Thanks.