Skip to content

PI-33/AI-Account

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI Intelligent Bookkeeping Assistant

Ⅰ. Environment Setup

System Requirements

  • Java: JDK 17+
  • Build Tool: Maven 3.6+
  • IDE: IntelliJ IDEA 2021+ (Recommended)
  • OS: Windows 10+, macOS, Linux

1. Install IntelliJ IDEA

Windows/macOS/Linux

## Download from (choose your OS):
https://www.jetbrains.com/idea/download/

2. Install Java 17

(1) Download JDK 17 from:

## Download from (choose your OS):
https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html

(2) Set environment variables:

[System.Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Program Files\Java\jdk-17.0.x", "Machine")

(3) Download JDK 17 from:

## Download from (choose your OS):
https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html

(4) Set environment variables:

[System.Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Program Files\Java\jdk-17.0.x", "Machine")

2. Install Maven

(1)Windows

# 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")

(2) macOS/Linux

macOS/Linux

# macOS:
brew install maven

# Linux:
sudo apt install maven

3. IDE Configuration

(1) Set JDK in IntelliJ

File → Project Structure → SDKs → Add JDK

(1) Configure Maven:

File → Project Structure → SDKs → Maven

4. Running the Project

(1) Clone

## Clone repository:
git clone https://github.com/PI-33/AI-Account.git

(2)Running

There are three ways to run it successfully.

1> running
# Run with Maven:
mvn clean javafx:run
2>JavaFX module error
## Add VM options: 
`--module-path [path] --add-modules javafx.controls,javafx.fxml`
3>Use IDEA MAVEN

Click the "javafx:run"

account -> Plugins -> javafx -> javafx::run

5. Troubleshooting

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)

(1) JavaFX module error

## Add VM options: 
`--module-path [path] --add-modules javafx.controls,javafx.fxml`

(2) Encoding

## Set all file encodings to UTF-8 in IDE settings

6. Build & Deliverable

(1) Build Executable JAR

mvn clean package

After build, the JAR file will be located at:

target/AI-Account-1.0-SNAPSHOT.jar

(2) Run the JAR file

java -jar target/AI-Account-1.0-SNAPSHOT.jar

(3) Optional: Launch Script (Windows example)

@echo off
java -jar target/AI-Account-1.0-SNAPSHOT.jar
pause

7. Running with downloaded package

  1. Download the compressed package.
Softeware_group67.ZIP
  1. Decompress
  2. Enter the decompressed folder
  3. Enter the project folder through the command line.
cd ./Acount
  1. Run the projects
mvn javafx:run
  1. Use the junit to test the function
mvn test
  1. Compress into packages
mvn clean package

Ⅱ. Project Information

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.

Core Features

  • 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.

Functional description of the interface

  1. Home Dashboard

    • Income and Expenditure Overview
    • Recent Accounts
    • Budget Completion
    • Quick Entry
  2. Accounts Page

    • Manual Bookkeeping Forms
    • AI Bill Recognition Upload
    • Income and Expenditure Category Selection
    • Notes and labels function
  3. Statistical analysis

    • Monthly/Annual Income and Expenditure Statement
    • Consumption category percentage
    • Expenditure Trend Chart
    • Consumption habit analysis
  4. Budget Management

    • Budget Setting
    • Budget execution tracking
    • Budget execution tracking Budget overspending warning reminder
  5. Setup Centre

    • Personal Information Management
    • Account Classification Settings
    • System Preference Settings

Technology Stack

  • Development Framework: JavaFX 17
  • Build tool: Maven
  • AI Functions: Image Recognition, Data Analysis

Development Team

Group 67

Division of labour

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:

Home Page Kanban 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:

Intelligent bookkeeping module

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

Manually add bookkeeping records module

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

Budget management module

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

Data report module

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:

UI/UX design

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:

Development progress

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.

About

Software Engineering Group67's Prototype

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6