Develop a software system for simple account management using “push” Model View Controller architecture (i.e. a view receives updates from a model by events), exception mechanism and JUnit framework in Java with Swing (cf. JUnit example at
[login to view URL] ,
[login to view URL]
[login to view URL] ).
On start up the system should load a list of accounts from a file specified in a command line and present the user with a frame that contains
• a drop down list populated with account IDs with names appended (in increasing order of IDs); the first account ID should be pre-selected; the items in the drop down list immutable
• buttons “Edit account in $”; “Edit account in Euros”; “Edit account in Yen”
• button Save
• button Exit
An entry in a file with a list of accounts should contain a string with a name (only letters allowed); a string with an ID (only digits allowed); a string with an amount in $ (digits and decimal point allowed; thus amount >=0.0). IDs are unique; names can repeat.
On pressing “Save” the system should write the current state of accounts to the file whose name appeared in the command line.
On pressing “Exit” the system should write the current state of accounts to the file whose name appeared in the command line if they have been modified since last save. After that the system should exit.
On pressing one of the buttons “Edit account in ..” the system should open another window that contains:
• window’s title <NameOfAccountHolder ID; Operations in {$ or Euros or Yen}>
• immutable textfield that shows the current amount in the account titled “Available funds” (i.e. Available funds: <textfield>)
• editable textfield initialized to 0.0 that only allows digits and decimal point to be entered; titled “Enter amount in {$ or Euros or Yen}”
• buttons “Deposit”, ‘Withdraw”, “Dismiss”
On pressing “Dismiss” the window should close
On pressing “Deposit” if the editable textfield contains a positive number greater than 1 then that amount is added to the account amount;
The result of the operation must be seen in all other windows open for this account with appropriate exchange rate modifications so that all open windows show consistent account state.
On pressing “Withdraw” if the editable textfield contains a positive number greater than 1 and there are sufficient funds then that amount is subtracted from the account amount; the result of the operation must be seen in all other windows open for this account with appropriate exchange rate modifications. If funds are insufficient then an exception must be raised by some method from a class in the model package that will eventually is caught by the controller and the controller must request the view to open a pop-up window that contains message “Insufficient funds: amount to withdraw is x is greater than available funds: y”. The pop-up window contains button “Dismiss” on pressing which the pop-up window should close.
After pressing the “Deposit” or “Withdraw” button the content of the Enter amount textfield should be reset to 0.0
The system should have other exception as needed (e.g. in response to corrupted or inconsistent content of the file with accounts; e.g. inadmissible characters in the fields of an account entry; broken format of the file). Exceptions should result in useful messages via dismissable pop-up windows. In case of file inconsistencies messages should mention name of the file, line number where inconsistency occurred, nature of inconsistency, suggestion to fix (e.g. “Name must have only letters” or “Amount must not be negative”). If an error is unrecoverable the system should exit on dismissing the pop up window.
In this manner it should be possible to keep multiple windows open for the same and/or different accounts in same and/or different currencies.
The exchange rates should be hardwired as constants (public final static double) as:
1 $ = 0.79 Euro
1 $ = 94.1 Yen
The software system ought to be designed according to the object oriented approach.
Comments should be provided for each class, important methods and important code portions inside the methods. Comments for classes and methods should be in javadoc format so that to produce a simple API documentation automatically.
JUnit testcases should be provided for each method in classes in model and controller packages (as needed for classes in the view package).
Group of highly experienced professionals from world recognized engineering institutes aiming to implement and support on software applications and commonly used software frameworks. Includes J2EE based applications, database servers like MySQL, Oracle, SQL Server 2000/2005, Web/Enterprise servers like Tomcat 5+/6+, Weblogic 8+ and LAMP or J2EE based web applications, core Java components and opensource frameworks.
We are team of professional’s expertise in developing web based application using PHP/ASP/.NET and J2EE and in web designing using Photoshop CS3, Dreamweaver MX, Flash MX with ActionScript3.0. After reading your project description, we are highly interested and confident in developing the application for you.
Regards,
Divnesan.A.
Hello Buyer
Pl inform if gui based javaprogram that will contain the following 1) savings2)customer3)Account4)BankAccount5)BankAccountApp6)AccountChecking
features
Thanks