A desktop inventory management application for managing tuk-tuk auto spare parts, built with Java and JavaFX.
| Requirement | Version |
|---|---|
| JDK | 21 |
| JavaFX | 21.0.6 |
| Build Tool | Maven |
Note: The project FXML files were authored with Scene Builder using JavaFX API version 26, which will produce the warning
Loading FXML document with JavaFX API of version 26 by JavaFX runtime of version 21.0.6at runtime. This warning is cosmetic and does not affect functionality.
https://github.com/Hirukadeven07/1601_JAVA_CW.git
Clone the repository:
git clone https://github.com/Hirukadeven07/1601_JAVA_CW.git- Open the project in your IDE (IntelliJ IDEA recommended).
- Ensure the Maven dependencies have been resolved (
pom.xml). - Locate and run the Launcher class:
src/main/java/com/example/_609835/Launcher.java
Run
Launcher.java, notHelloApplication.javadirectly. The Launcher is the designated entry point and avoids module-path conflicts that can occur when launching a JavaFXApplicationsubclass directly from some IDEs.
The project uses JUnit 5 for unit testing.
To run all tests from the terminal:
mvn testTo run tests from IntelliJ IDEA, right-click the src/test/java directory and select Run All Tests.
Test classes are located under:
src/test/java/com/example/_609835/
- The application is run from the project root directory so that data files and the
images/folder are resolved correctly via relative paths. - Part images are stored inside an
images/folder located in the project root. The application copies uploaded images into this folder automatically. - The
inventory_legacy.txtanddealers_legacy.txtfiles must be present on first run so the cleaning pipeline can generate the cleaned files. - JavaFX 21.0.6 must be available either via the Maven
javafx-maven-pluginconfiguration inpom.xmlor added as a VM argument (--module-path ... --add-modules javafx.controls,javafx.fxml). - The Maven compiler source and target are set to Java 17 or 21 in
pom.xml. Setting it lower (e.g. 9) will cause warnings when using Java 11+ APIs such asPath.of().