A financial tracking program. Tracks:
- Admin account (not implemented -- currently hard-coded)
- first name, last name
- username, password
- User accounts
- first name, last name
- username, password (not implemented)
- balance
- Transactions
- date
- amount
- description
- fees (currently hard-coded)
- predefined or user-defined id
All data is stored locally in an SQLite database, which can be optionally encrypted via AES-256 (more info) with a separate password .
Releases are hosted on this repository. See the releases page.
This project uses the e(fx)clipse Eclipse extension, and subsequently Apache Ant, to generate various installers for Windows (.exe), MacOS (.dmg), and Linux (.deb).
Can be run as a normal Java application. The main method is in application.Main. There is also some unit testing for classes that need it like DatabaseKit, Security, and Settings.
This project requires the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files to allow for the AES-256 encryption key length. If you do not install the JCE, the program will be unable to encrypt the database file and you will get an InvalidKeyException: Invalid AES key length
.
After downloading, extract the local_policy
and US_export_policy
JARs to your JDK 8 installation folder under jre/lib/security/policy
.
I've had many problems with getting e(fx)clipse to install with various methods on Eclipse Oxygen. You can try it on Oxygen, but if it doesn't work install Eclipse Neon.
The method I've had most success with is here.
- Alternatively, try installing e(fx)clipse directly from the Eclipse Marketplace (Help > Eclipse Marketplace > Search for "e(fx)clipse"), or try the other methods list in the link above.
After installing e(fx)clipse, the installers can be built by opening build.fxbuild and clicking "Generate ant build.xml and run" in the Building_Exporting section on the top right (or running the existing Ant build.xml in the build directory).
This will generate the installers in \build\deploy. Installers must be built from their respective OS environments.