FinanceJ Code
Status: Alpha
Brought to you by:
rovitotv
| File | Date | Author | Commit |
|---|---|---|---|
| nbproject | 2008-07-05 | rovitotv | [r37] Changes to ledger form. |
| src | 2008-07-07 | rovitotv | [r38] Arranged form better for eeePC screen size. |
| CodingStandardsClassName.java | 2008-04-03 | rovitotv | [r33] Remove the test change. |
| build.xml | 2008-03-11 | rovitotv | [r5] Init import. |
| copying | 2008-04-01 | rovitotv | [r29] Added GPL Version 2 copyright notice. |
| manifest.mf | 2008-03-11 | rovitotv | [r6] Init import. |
| readme.txt | 2008-04-03 | moosbrug | [r35] Include ideas for future development. |
================================================================================
To run the project
To run the project from the command line, go to the FinanceJ folder and
type the following:
java -jar "FinanceJ.jar"
==============================================================================
Development tools used to create FinanceJ
-jdk1.6 update 3
-Netbeans 6.0.1
-JavaDB AKA Apache Derby
You can check out the entire repository with the following command:
"svn co https://financej.svn.sourceforge.net/svnroot/financej financej"
Then open the project in Netbeans and modify.
===============================================================================
DB Structure is as follows
*account
-name, key varchar(50)
-description varchar(250)
*category
-name, key varchar(50)
-description varchar(250)
-budget float
*ledger
-id, key identify field
-rec integer
-tdate date
-payee varchar(50)
-description varchar(250)
-account varchar(50)
-category varchar(50)
-amount float
To start the Derby SQL-tool
java -jar $DERBY_HOME/lib/derbyrun.jar ij
To connect to the database:
CONNECT 'jdbc:derby:FinanceJDB;create=true';
Check out squirrel SQL Client here for easy database modification:
http://www.squirrelsql.org/
Take note you have to execute Squirrel SQL from the directory where the database
lives. Make sure your squirrel connection is closed when running FinanceJ because
only one program at a time can open a DerbyDB database when in embedded mode.
Commands used to create tables:
*account
create table account (name varchar(50) primary key, description varchar(250));
*category
create table category (name varchar(50) primary key, description varchar(250), budget float);
*ledger
create table ledger (id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
rec int,
tdate date,
payee varchar(50),
description varchar(250),
account varchar(50),
category varchar(50),
amount float);
Derby expects date fields to be of the form 'yyyy-mm-dd'. You can do updates, inserts,
with date fields as strings but in the form of 'yyyy-mm-yy'.
==============================================================================
Future planned support for charting library and reports in the browser.
The charting Java library you should look into is here:
http://www.jfree.org/jfreechart/
A project that launches the browser in a cross platform manner:
http://browserlaunch2.sourceforge.net/
Cross platform install tool for java
http://izpack.org/
==============================================================================
Ideas for future development
* Liquidity forecast on single and recurring items (build a new table holding
planned single and recurring items.
* Charting (jfree sounds really nice)
* Import of account data via SWIFT MT940 account balances
* Add expense accounts on which planned budgets and actual bookings can be compared