Instant Finance Prototype Deliverable

Spring Quarter 1996

Project Sponsor:

Gregory Abowd

Project Team:

Brian Leslie (Manager)
Dedrick Ducket (Architect)
Geoff Menegay (Programmer)
Jason Pastor (Programmer)
David Daniell (Technical Writer)


Contents


Project Description of Target System

A description of the Instant Finance project can be found in the Requirements Document.


Installation Manual

A tarred and gzipped archive of the complete source of Instant Finance can be downloaded by clicking here. Once downloaded, uncompress and untar the archive. Compile the source by running the shell script CompileAll, which will run the Java compiler javac on the source files in the proper order and produce the necessary ".class" byte-code files.

The Instant Finance system can also be obtained in a pre-compiled distribution by downloading if_dist.tar.gz. Once downloaded, uncompress and untar the archive. Contained within it are the pre-compiled ".class" files produced by the javac Java compiler.

Once you have a compiled system, the applet can be started by opening the file IF.html in a Java-enabled web browser such as Netscape, or in appletviewer.

You can run Instant Finance in your browser right now by selecting here.


User Guide

After starting the Instant Finance applet, the first screen you will be presented with is the login screen, shown below.

Type in your user name and password, and press the Login button to enter the applet and load your account information. After a short delay, you will then be presented with a view of a closed virtual checkbook, shown here.

You can see along the right side of the checkbook a row of selection tabs indicating the different functions available from this screen. At this time, only the Check and Report tabs are functional (Savings and Credit account types have not been implemented in this release). If you click on the Check tab, a new window will appear displaying the checking accounts available to you. An example of what this might look like is shown below.

In the top half of the display will be listed your various checking accounts. If there are more accouts than can be listed in the available space, the list can be scrolled using the four buttons to the right. The four buttons are, from top to bottom:

This screen allows several account management functions:
Create new account
Clicking the New button adds a blank entry to the list of accounts. You can then fill in the fields in the lower half of the screen to specify information about this new account.
Delete account
Select an account by clicking the toggle button to the left of the account. Clicking the Delete button while an account is selected deletes that account and all related information.
Edit account information
Selecting an account presents that account's information in the display panel in the lower half of the screen. Information about that account (such as the account name or owner) can be edited by typing in the text fields. This information is updated by clicking the OK button.
Open an account
Selecting an account and then pressing the Open button opens that account. Opening the account updates the display to show information on that specific account, as shown in the picture below.

The checking account display presents a list of transactions in this specific account in the top half of the window. The methods for selecting lines of the transaction list and for navigating around in the list are the same as those in the account list above.

The major functions available in this checking account display are:

New transaction
Selecting New with the mouse button creates a new transaction line in the transaction list and presents a blank "virtual check" in the lower half of the display. You can then fill in the various areas of the check to enter a new transaction, and press the OK button to enter the new transaction into the register. The areas on the check are (from top to bottom, left to right):
Edit a transaction
Selecting a transaction in the transaction register list displays that transaction in the lower half of the screen. Fields on this display can then be edited, and when OK is pressed, the transaction will be updated in the register.
Delete a transaction
Selecting a transaction and then pressing the Delete button deletes the selected transaction from the transaction register.

To prepare a report displaying various aspects of an account, select the Report tab at the lower right of the checkbook display. You will then be presented with the Report Manager, which might look like this:

Shown above is a Budget graph. Create one of these by selecting an account in the Account pop-up menu, and choosing Budget in the Chart Type menu. You can label the graph in the text field below the Chart Type menu, and specify begin and end dates in the fields below that. To the right there is a list of categories used in this account. Select specific categories that you want to appear in the chart, or leave them all unselected to display all of the categories in the chart. Pressing the New Chart button generates the graph and displays it in the lower half of the screen.

Creating a Balance graph is very similar. Create one of these by selecting an account in the Account pop-up menu, and choosing Balance in the Chart Type menu. You can specify dates and a chart title as with Budget graphs, and press New Chart to generate the graph and display it in the lower half of the screen. Here is what a Balance graph might look like:

You can exit the Instant Finance applet simply by leaving the web page containing it, or by exiting your browser or appletviewer.


Guide to the Source Code

Here is a list of all of the files included in the source distribution of Instant Finance and the purpose of each.

Main.java
This class extends java.applet.Applet. It is the main applet that is executed by the end user. This is where the main GUI events are handled (i.e. switching between sections of the applet). This applet first calls the login, and then switches between different sections of the applet as user events warrant.
User.java
This class defines the user object. It contains a vector of the users accounts. It also contains the methods for loading and saving the data (not yet functional on all platforms).
LoginPanel.java
This class creates the panel in which the user initially logs in. It is called by Main.java and returns whether the login was a success.
PicturePanel.java
This class extends java.awt.panel. It is the class from which the individual sections (Report Manager, Account Manager, etc.) gain access to the main GUI. The main sections extend from this class. By extending from this class, the subclass is provided with a properly aligned top and bottom panel laid out on a check book image to which it can create its GUI to conform to the integration specifications. Any additional sections should derive from this class.
ChartUI.java
This class creates the GUI for the report manager. It extends Picture Panel and includes the code to filter the correct data from the User class for graphing.
AllChart.java
This is an abstract class that extends Canvas and provides a base for the subclasses LineChart.class, ThreeDVBarChart.class, and PieChart.class. It handles the initialization of the data and preparation for graphing.
AccountManager.java
This class extends the PicturePanel class. It handles all GUI events related to the Account Manager. It is the interface through which the end user creates, deletes, and edits accounts.
Account.java
This class encapsulates the information related to a user's account. It holds an instance of TransactionCollection, the name of the owner, the ID of the owner, the beginning balance, and the interest rate.
TransactionCollection.java
This class creates an object that contains a vector of Transaction objects and the methods needed to add, remove, delete, and return Transaction objects from the TransactionCollection.
Transaction.java
This class defines the object used to hold transaction information (e.g. Category, amount, etc.)
PieChart.class / ThreeDVBarChart.class / LineChart.class
These classes are used to draw the graphs given the filtered data from ChartUI. The source can be found at http://users.aimnet.com/~foureyes/chart/source.html

A more detailed analysis of the source code and its design can be found in the Design Document and the javadoc documentation.


to the Instant Finance Project Notebook
Comments to: dwd@cc.gatech.edu / home page
Last modified: Wed May 29 16:07:38 1996