- Java: JDK 17+
- Build Tool: Maven 3.6+
- IDE: IntelliJ IDEA 2021+ (Recommended)
- OS: Windows 10+, macOS, Linux
## Download from (choose your OS):
https://www.jetbrains.com/idea/download/
## Download from (choose your OS):
https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html
[System.Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Program Files\Java\jdk-17.0.x", "Machine")
## Download from (choose your OS):
https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html
[System.Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Program Files\Java\jdk-17.0.x", "Machine")
# Download from:
https://maven.apache.org/download.cgi
# Set environment variables:
[System.Environment]::SetEnvironmentVariable("MAVEN_HOME", "C:\Program Files\apache-maven-3.8.6", "Machine")
# macOS:
brew install maven
# Linux:
sudo apt install maven
File → Project Structure → SDKs → Add JDK
File → Project Structure → SDKs → Maven
## Clone repository:
git clone https://github.com/PI-33/AI-Account.git
There are three ways to run it successfully.
# Run with Maven:
mvn clean javafx:run
## Add VM options:
`--module-path [path] --add-modules javafx.controls,javafx.fxml`
Click the "javafx:run"
account -> Plugins -> javafx -> javafx::run
Main Configuration File:
src/main/resources/config.properties
Editable Fields:
Key | Description |
---|---|
ai.api.key |
API key for bill recognition (optional) |
file.output.path |
Default directory for saving data |
csv.encoding |
CSV file encoding (UTF-8 recommended) |
## Add VM options:
`--module-path [path] --add-modules javafx.controls,javafx.fxml`
## Set all file encodings to UTF-8 in IDE settings
mvn clean package
After build, the JAR file will be located at:
target/AI-Account-1.0-SNAPSHOT.jar
java -jar target/AI-Account-1.0-SNAPSHOT.jar
@echo off
java -jar target/AI-Account-1.0-SNAPSHOT.jar
pause
- Download the compressed package.
Softeware_group67.ZIP
- Decompress
- Enter the decompressed folder
- Enter the project folder through the command line.
cd ./Acount
- Run the projects
mvn javafx:run
- Use the junit to test the function
mvn test
- Compress into packages
mvn clean package
AI Intelligent Bookkeeping Assistant is a desktop application developed based on JavaFX, aiming to help users achieve intelligent personal financial management. Through the application of AI technology, this software can automatically identify and classify expenditures, provide intelligent analysis and suggestions, and make bookkeeping easier and more efficient.
- Intelligent bookkeeping: AI recognises pictures of bills, receipts, etc. and automatically extracts the amount, category and other information.
- Accounts management: Support manual/automatic recording of income and expenditure, multiple classification methods.
- Data Visualisation: Visualise financial data such as income and expenditure trends, consumption distribution, etc.
- Budget Management: Set budget targets and track expenses in real time.
- Intelligent Analysis: AI-based analysis of consumption habits and financial advice.
-
Home Dashboard
- Income and Expenditure Overview
- Recent Accounts
- Budget Completion
- Quick Entry
-
Accounts Page
- Manual Bookkeeping Forms
- AI Bill Recognition Upload
- Income and Expenditure Category Selection
- Notes and labels function
-
Statistical analysis
- Monthly/Annual Income and Expenditure Statement
- Consumption category percentage
- Expenditure Trend Chart
- Consumption habit analysis
-
Budget Management
- Budget Setting
- Budget execution tracking
- Budget execution tracking Budget overspending warning reminder
-
Setup Centre
- Personal Information Management
- Account Classification Settings
- System Preference Settings
- Development Framework: JavaFX 17
- Build tool: Maven
- AI Functions: Image Recognition, Data Analysis
Group 67
The project adopts a modular division of labour, each member is responsible for the front-end and back-end implementation of an independent functional module:
Developer: Ling Tang
- Responsible for the implementation of homepage dashboard
- Include income and expenditure overview, statistics display
- Core files:
DashboardController.java
,Dashboard.fxml
. - Details Function View:
Developer: JiaJie Xue
- Responsible for AI bill recognition function
- Implement image upload and intelligent parsing
- Core files:
AIRecognitionController.java
,AIRecognition.fxml
. - Detailed function description: #22
Developer: Sen Tan
- Responsible for the management function of income and expenditure records
- Add, edit and delete transactions.
- Core files:
TransactionsController.java
,AddTransaction.fxml
. - For more details, please refer to: #17
Developer: KaiCheng Xiao
- Responsible for budget setting and tracking
- Realise budget management and early warning reminder
- Core files:
BudgetController.java
,Budget.fxml
. - Detailed description: #15
Developer: QiMing Wu
- Responsible for financial statement and data analysis.
- Implement various kinds of statistical charts.
- Core files:
ReportsController.java
,Reports.fxml
. - For more details, please refer to the function description:
Developer: Tao Zhang
- Responsible for the transaction list page.
- Implement theme style and layout optimisation
- Core files:
transactions.fxml
,styles.css
and optimise the style of each page. - For more details, please refer to the feature description:
Currently implemented:
- Main page (Dashboard): Monthly income and expenditure report, income and expenditure curve visualisation, preview of recent book entries.
- Transaction page: Filter data by time period, view account data within the specified time period.
- Manually add a book entry (AddTransaction):
- AIRecognition: Add a book record manually (AddTransaction):
- Budget page: freely add relevant categories of budget management, visualise the current month's expenditure and budget progress records.
- Reports page: Pie charts to visualise the month's expenditure by category, and analysis of expenditure data.
TODO.
- AI recongnition function optimisation: implement AI knowledge map to fill in the data and write to csv file.
- AI Analysis: Provide the csv file to LLM, LLM will return the report after analysing the book data, and give user suggestions.
- Month Selection Function: Add data display in month unit. The project is under active development, team members work together, version control and collaborative development through Git.