Overview

Your job is to take one of your Project 2 solutions (work in groups of three!), and augment it, so that java Vault ... works just as it did for project three, but java VaultGUI <filename> pops up a GUI window that does the username/password authentication part of the vault. So, the original Vault and VaultGUI both have to work ... and we shouldn't have duplication of code! For example, if we start with vault file vaultA given by

vaulta
user drbrown padcut foobarxxxxxxxxxx
user fanboy sha-256 a8f02dea16bcc303

... and run VaultGUI like this
java VaultGUI vaultA
... below are examples of some possible VaultGUI sessions:

Remember! your Project 2 Vault has to work just the same as always (though you will probably have to change the code, i.e. do some "refactoring"), you are just adding on the functionality of "VaultGUI".

Your focus and my gift

I want you to focus on how your Project 2 design might have to improve to allow you to simultaneously provide a command line tool and a GUI tool. So this is really about the Project 2 code, not about GUI code. Therefore, I'm giving you the basic code for the GUI.

Deliverables

Be prepared to show a working Vault and VaultGUI and, more importantly, to describe what you had to change design-wise to accomplish this, and in what ways this new design is better (in hindsight) we regards to one or more of: