diff --git a/.DS_Store b/.DS_Store
deleted file mode 100644
index bdfd9db..0000000
Binary files a/.DS_Store and /dev/null differ
diff --git a/.gitignore b/.gitignore
index 6143e53..caf72de 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,22 +1,63 @@
-# Compiled class file
-*.class
-
-# Log file
-*.log
-
-# BlueJ files
-*.ctxt
-
-# Mobile Tools for Java (J2ME)
-.mtj.tmp/
+### Maven ###
+target/
+pom.xml.tag
+pom.xml.releaseBackup
+pom.xml.versionsBackup
+pom.xml.next
+release.properties
+dependency-reduced-pom.xml
+buildNumber.properties
+.mvn/*
+/mvnw.cmd
+/mvnw
# Package Files #
*.jar
*.war
+*.nar
*.ear
*.zip
*.tar.gz
*.rar
-# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
-hs_err_pid*
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### Eclipse ###
+.metadata
+bin/
+tmp/
+*.tmp
+*.bak
+*.swp
+*~.nib
+local.properties
+.settings/
+.loadpath
+.recommenders
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+/.java-version
diff --git a/.idea/ShopOOP.iml b/.idea/ShopOOP.iml
deleted file mode 100644
index 8f7ae1a..0000000
--- a/.idea/ShopOOP.iml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/dataSources.local.xml b/.idea/dataSources.local.xml
deleted file mode 100644
index d928e47..0000000
--- a/.idea/dataSources.local.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
- *:main
-
-
-
\ No newline at end of file
diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
deleted file mode 100644
index 021939c..0000000
--- a/.idea/dataSources.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
- sqlite.xerial
- true
- true
- SQLite
- org.sqlite.JDBC
- jdbc:sqlite:$PROJECT_DIR$/src/data/ShopDB.sqlite
-
-
-
-
-
- file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.16.1/xerial-sqlite-license.txt
-
-
- file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.16.1/sqlite-jdbc-3.16.1.jar
-
-
- file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.16.1/sqlite-jdbc-3.16.1.jar
-
-
- file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.16.1/xerial-sqlite-license.txt
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/dataSources/0a2e2e62-2793-4dea-9089-c8e7d51d983f.xml b/.idea/dataSources/0a2e2e62-2793-4dea-9089-c8e7d51d983f.xml
deleted file mode 100644
index 2ad4ee4..0000000
--- a/.idea/dataSources/0a2e2e62-2793-4dea-9089-c8e7d51d983f.xml
+++ /dev/null
@@ -1,307 +0,0 @@
-
-
-
-
-
- 1
- 1
-
-
-
-
-
-
-
-
-
-
-
-
- 1
- TEXT|0
- NOCASE
-
-
- 2
- TEXT|0
- NOCASE
-
-
- 3
- TEXT|0
- NOCASE
-
-
- 4
- TEXT|0
- NOCASE
-
-
- 5
- TEXT|0
- NOCASE
-
-
- 6
- TEXT|0
- NOCASE
-
-
- 7
- TEXT|0
- NOCASE
-
-
- 8
- TEXT|0
- NOCASE
-
-
- Username
-
- 1
-
-
- 1
- Username
-
- 1
-
-
- Postcode
-
-
-
- Username
- 1
- sqlite_autoindex_Customers_1
-
-
- Username
- sqlite_autoindex_Customers_1
-
-
- 1
- INTEGER|0
- 1
-
-
- 2
- INTEGER|0
-
-
- 3
- INTEGER|0
-
-
- 4
- REAL|0
-
-
- 5
- INTEGER|0
-
-
- 'OrderLineId'
-
- 1
-
-
- 1
- OrderLineId
-
- 1
-
-
- 'OrderId'
-
-
-
- 'ProductId'
-
-
-
- OrderLineId
- 1
- sqlite_autoindex_OrderLines_1
-
-
- OrderLineId
- sqlite_autoindex_OrderLines_1
-
-
- 1
- INTEGER|0
- 1
-
-
- 2
- NUMERIC|0
-
-
- 3
- TEXT|0
- NOCASE
-
-
- 4
- REAL|0
-
-
- 5
- TEXT|0
- NOCASE
-
-
- OrderId
-
- 1
-
-
- 1
- OrderId
-
- 1
-
-
- Username
-
-
-
- OrderId
- 1
- sqlite_autoindex_Orders_1
-
-
- OrderId
- sqlite_autoindex_Orders_1
-
-
- 1
- INTEGER|0
- 1
-
-
- 2
- TEXT|0
- NOCASE
-
-
- 3
- REAL|0
-
-
- 4
- INTEGER|0
-
-
- 5
- TEXT|0
- NULL
-
-
- 6
- INTEGER|0
- NULL
-
-
- ProductId
-
- 1
-
-
- 1
- ProductId
-
- 1
-
-
- ProductId
- 1
- sqlite_autoindex_Products_1
-
-
- ProductId
- sqlite_autoindex_Products_1
-
-
- 1
- TEXT|0
- NOCASE
-
-
- 2
- TEXT|0
- NOCASE
-
-
- 3
- TEXT|0
- NOCASE
-
-
- 4
- TEXT|0
- NOCASE
-
-
- 5
- TEXT|0
- NOCASE
-
-
- 6
- REAL|0
-
-
- Username
-
- 1
-
-
- 1
- Username
-
- 1
-
-
- Username
- 1
- sqlite_autoindex_Staff_1
-
-
- Username
- sqlite_autoindex_Staff_1
-
-
- 1
- text|0
-
-
- 2
- text|0
-
-
- 3
- text|0
-
-
- 4
- integer|0
-
-
- 5
- text|0
-
-
- 1
-
-
- 2
-
-
-
\ No newline at end of file
diff --git a/.idea/dataSources/0a2e2e62-2793-4dea-9089-c8e7d51d983f/storage_v2/_src_/schema/main.uQUzAA.meta b/.idea/dataSources/0a2e2e62-2793-4dea-9089-c8e7d51d983f/storage_v2/_src_/schema/main.uQUzAA.meta
deleted file mode 100644
index 8dab49c..0000000
--- a/.idea/dataSources/0a2e2e62-2793-4dea-9089-c8e7d51d983f/storage_v2/_src_/schema/main.uQUzAA.meta
+++ /dev/null
@@ -1,2 +0,0 @@
-#n:main
-! [0, 0, null, null, -2147483648, -2147483648]
diff --git a/.idea/dataSources/40e3d608-bf70-4948-9480-d7c30974289e/storage_v2/_src_/schema/main.uQUzAA.meta b/.idea/dataSources/40e3d608-bf70-4948-9480-d7c30974289e/storage_v2/_src_/schema/main.uQUzAA.meta
deleted file mode 100644
index 8dab49c..0000000
--- a/.idea/dataSources/40e3d608-bf70-4948-9480-d7c30974289e/storage_v2/_src_/schema/main.uQUzAA.meta
+++ /dev/null
@@ -1,2 +0,0 @@
-#n:main
-! [0, 0, null, null, -2147483648, -2147483648]
diff --git a/.idea/libraries/org_xerial_sqlite_jdbc_3_8_11_1.xml b/.idea/libraries/org_xerial_sqlite_jdbc_3_8_11_1.xml
deleted file mode 100644
index 6b3f1d4..0000000
--- a/.idea/libraries/org_xerial_sqlite_jdbc_3_8_11_1.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index bdc94d8..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index a8c229e..0000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml
deleted file mode 100644
index c0e01ca..0000000
--- a/.idea/sqldialects.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
deleted file mode 100644
index e96534f..0000000
--- a/.idea/uiDesigner.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 35eb1dd..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
deleted file mode 100644
index 6e1d590..0000000
--- a/.idea/workspace.xml
+++ /dev/null
@@ -1,1032 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- getOrderId
- sing
- batch
- Triggered
- get
- POUND_SYMBOL
- labelProducts
- listViewProduct
- buttonsSetDisable
- clear
- updateed
- check
- currentProduct
- buttonsSetEnable
- quantityNumbers
- fda
- compa
- compare
- .equ
- orderl
- modif
- add
- buttonAddToBasket
- basket
- comboBoxQuantity
- updateStockLevel
- addto
- getProductId
- setComboBoxQuantity
- sql
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- false
-
- false
- false
-
-
- true
- DEFINITION_ORDER
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- GeneralJava
-
-
- Java
-
-
- Kotlin
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1512248568306
-
-
- 1512248568306
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- No facets are configured
-
-
-
-
-
-
-
-
-
-
-
- org.xerial:sqlite-jdbc:3.8.11.1
-
-
-
-
-
-
-
-
-
-
-
- 9.0
-
-
-
-
-
-
-
-
-
-
-
- ShopOOP
-
-
-
-
-
-
-
-
-
-
-
- 1.8.0_152
-
-
-
-
-
-
-
-
-
-
-
- org.xerial:sqlite-jdbc:3.8.11.1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ShopOOP.iml b/ShopOOP.iml
deleted file mode 100644
index f339ce2..0000000
--- a/ShopOOP.iml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/data/ShopDB.sqlite b/data/ShopDB.sqlite
similarity index 100%
rename from src/data/ShopDB.sqlite
rename to data/ShopDB.sqlite
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..17a541b
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,85 @@
+
+
+ 4.0.0
+ ShopOOP
+ ShopOOP
+ 1.0-SNAPSHOT
+ ShopOOP
+ [JavaFX] Shopping Desktop Application for OOP assessment.
+
+
+ UTF-8
+ 11
+ 11
+ controllers.Start
+
+
+
+
+ org.openjfx
+ javafx-controls
+ 11
+
+
+ org.openjfx
+ javafx-fxml
+ 11
+
+
+ org.xerial
+ sqlite-jdbc
+ 3.23.1
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.0
+
+ 11
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ 3.1.1
+
+
+ package
+
+ single
+
+
+
+
+ ${main.class}
+
+
+
+ jar-with-dependencies
+
+
+
+
+
+
+ org.openjfx
+ javafx-maven-plugin
+ 0.0.6
+
+
+
+
+ default-cli
+
+ controllers.Start
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/controllers/AddEditCustomerController.java b/src/main/java/controllers/AddEditCustomerController.java
similarity index 97%
rename from src/controllers/AddEditCustomerController.java
rename to src/main/java/controllers/AddEditCustomerController.java
index 9c7aeb9..b29e519 100644
--- a/src/controllers/AddEditCustomerController.java
+++ b/src/main/java/controllers/AddEditCustomerController.java
@@ -1,5 +1,13 @@
package controllers;
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.Objects;
+
import data.ShopContract.CustomerEntry;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
@@ -11,13 +19,13 @@
import javafx.scene.control.TextField;
import models.Customer;
import models.OrderLine;
-import service.*;
+import service.AlertService;
+import service.ControllerService;
+import service.DbManager;
+import service.LabelStatusService;
+import service.StageService;
import validation.RegisterValidation;
-import java.io.IOException;
-import java.sql.*;
-import java.util.Objects;
-
public class AddEditCustomerController {
@FXML
diff --git a/src/controllers/CustomerBasketController.java b/src/main/java/controllers/CustomerBasketController.java
similarity index 96%
rename from src/controllers/CustomerBasketController.java
rename to src/main/java/controllers/CustomerBasketController.java
index 9d5e388..95270ae 100644
--- a/src/controllers/CustomerBasketController.java
+++ b/src/main/java/controllers/CustomerBasketController.java
@@ -1,5 +1,13 @@
package controllers;
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.text.DecimalFormat;
+import java.util.Objects;
+
import data.ShopContract.OrderLinesEntry;
import data.ShopContract.OrdersEntry;
import data.ShopContract.ProductsEntry;
@@ -8,19 +16,19 @@
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
-import javafx.scene.control.*;
+import javafx.scene.control.Alert;
+import javafx.scene.control.Button;
+import javafx.scene.control.Label;
+import javafx.scene.control.TableColumn;
+import javafx.scene.control.TableView;
import models.Customer;
import models.Order;
import models.OrderLine;
-import service.*;
-
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.text.DecimalFormat;
-import java.util.Objects;
+import service.AlertService;
+import service.ControllerService;
+import service.DbManager;
+import service.LabelStatusService;
+import service.StageService;
public class CustomerBasketController {
diff --git a/src/controllers/CustomerHomeController.java b/src/main/java/controllers/CustomerHomeController.java
similarity index 100%
rename from src/controllers/CustomerHomeController.java
rename to src/main/java/controllers/CustomerHomeController.java
index dfb6eeb..f5b1004 100644
--- a/src/controllers/CustomerHomeController.java
+++ b/src/main/java/controllers/CustomerHomeController.java
@@ -1,5 +1,12 @@
package controllers;
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+import java.util.Objects;
+import java.util.Optional;
+
import data.ShopContract.CustomerEntry;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
@@ -12,13 +19,6 @@
import service.DbManager;
import service.StageService;
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-import java.util.Objects;
-import java.util.Optional;
-
public class CustomerHomeController {
@FXML
diff --git a/src/controllers/CustomerLoginController.java b/src/main/java/controllers/CustomerLoginController.java
similarity index 100%
rename from src/controllers/CustomerLoginController.java
rename to src/main/java/controllers/CustomerLoginController.java
index eb6dffe..77b8793 100644
--- a/src/controllers/CustomerLoginController.java
+++ b/src/main/java/controllers/CustomerLoginController.java
@@ -1,5 +1,7 @@
package controllers;
+import java.io.IOException;
+
import data.ShopContract.CustomerEntry;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
@@ -18,8 +20,6 @@
import service.StageService;
import validation.LoginValidation;
-import java.io.IOException;
-
public class CustomerLoginController {
@FXML
diff --git a/src/controllers/EditProductsController.java b/src/main/java/controllers/EditProductsController.java
similarity index 97%
rename from src/controllers/EditProductsController.java
rename to src/main/java/controllers/EditProductsController.java
index 86f2d80..e03cf11 100644
--- a/src/controllers/EditProductsController.java
+++ b/src/main/java/controllers/EditProductsController.java
@@ -1,9 +1,21 @@
package controllers;
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.Objects;
+
import data.ShopContract.ProductsEntry;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
-import javafx.scene.control.*;
+import javafx.scene.control.Button;
+import javafx.scene.control.Label;
+import javafx.scene.control.RadioButton;
+import javafx.scene.control.TextField;
+import javafx.scene.control.ToggleGroup;
import models.Clothing;
import models.Footwear;
import models.Staff;
@@ -13,10 +25,6 @@
import service.StageService;
import validation.ProductValidation;
-import java.io.IOException;
-import java.sql.*;
-import java.util.Objects;
-
public class EditProductsController {
public ToggleGroup productType;
diff --git a/src/controllers/MainMenuController.java b/src/main/java/controllers/MainMenuController.java
similarity index 100%
rename from src/controllers/MainMenuController.java
rename to src/main/java/controllers/MainMenuController.java
index 300d699..511a910 100644
--- a/src/controllers/MainMenuController.java
+++ b/src/main/java/controllers/MainMenuController.java
@@ -1,12 +1,12 @@
package controllers;
+import java.io.IOException;
+
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import service.ControllerService;
import service.StageService;
-import java.io.IOException;
-
public class MainMenuController {
private StageService stage = new StageService();
diff --git a/src/controllers/StaffHomeController.java b/src/main/java/controllers/StaffHomeController.java
similarity index 100%
rename from src/controllers/StaffHomeController.java
rename to src/main/java/controllers/StaffHomeController.java
index 598cfab..a9b7d01 100644
--- a/src/controllers/StaffHomeController.java
+++ b/src/main/java/controllers/StaffHomeController.java
@@ -1,5 +1,7 @@
package controllers;
+import java.io.IOException;
+
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
@@ -7,8 +9,6 @@
import service.ControllerService;
import service.StageService;
-import java.io.IOException;
-
public class StaffHomeController {
@FXML
diff --git a/src/controllers/StaffLoginController.java b/src/main/java/controllers/StaffLoginController.java
similarity index 100%
rename from src/controllers/StaffLoginController.java
rename to src/main/java/controllers/StaffLoginController.java
index 972c17f..8d46a34 100644
--- a/src/controllers/StaffLoginController.java
+++ b/src/main/java/controllers/StaffLoginController.java
@@ -1,5 +1,7 @@
package controllers;
+import java.io.IOException;
+
import data.ShopContract.StaffEntry;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
@@ -15,8 +17,6 @@
import service.StageService;
import validation.LoginValidation;
-import java.io.IOException;
-
public class StaffLoginController {
diff --git a/src/controllers/Start.java b/src/main/java/controllers/Start.java
similarity index 100%
rename from src/controllers/Start.java
rename to src/main/java/controllers/Start.java
diff --git a/src/controllers/ViewOrderLinesController.java b/src/main/java/controllers/ViewOrderLinesController.java
similarity index 97%
rename from src/controllers/ViewOrderLinesController.java
rename to src/main/java/controllers/ViewOrderLinesController.java
index f89439b..88116d1 100644
--- a/src/controllers/ViewOrderLinesController.java
+++ b/src/main/java/controllers/ViewOrderLinesController.java
@@ -1,5 +1,12 @@
package controllers;
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.Objects;
+
import data.ShopContract.OrderLinesEntry;
import data.ShopContract.ProductsEntry;
import javafx.beans.property.SimpleObjectProperty;
@@ -10,18 +17,15 @@
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
-import models.*;
+import models.Customer;
+import models.Order;
+import models.OrderLine;
+import models.Product;
+import models.Staff;
import service.ControllerService;
import service.DbManager;
import service.StageService;
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.Objects;
-
public class ViewOrderLinesController {
private final String POUND_SYMBOL = "\u00A3 ";
diff --git a/src/controllers/ViewOrdersController.java b/src/main/java/controllers/ViewOrdersController.java
similarity index 100%
rename from src/controllers/ViewOrdersController.java
rename to src/main/java/controllers/ViewOrdersController.java
index 81762bb..824db11 100644
--- a/src/controllers/ViewOrdersController.java
+++ b/src/main/java/controllers/ViewOrdersController.java
@@ -1,5 +1,15 @@
package controllers;
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+import java.util.Objects;
+
import data.ShopContract.OrdersEntry;
import javafx.beans.property.SimpleObjectProperty;
import javafx.collections.FXCollections;
@@ -17,16 +27,6 @@
import service.DbManager;
import service.StageService;
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-import java.util.Objects;
-
public class ViewOrdersController {
private final String POUND_SYMBOL = "\u00A3 ";
diff --git a/src/controllers/ViewProductsController.java b/src/main/java/controllers/ViewProductsController.java
similarity index 95%
rename from src/controllers/ViewProductsController.java
rename to src/main/java/controllers/ViewProductsController.java
index 14b2f71..371dbf3 100644
--- a/src/controllers/ViewProductsController.java
+++ b/src/main/java/controllers/ViewProductsController.java
@@ -1,21 +1,41 @@
package controllers;
-import data.ShopContract.ProductsEntry;
-import javafx.collections.FXCollections;
-import javafx.collections.ObservableList;
-import javafx.event.ActionEvent;
-import javafx.fxml.FXML;
-import javafx.scene.control.*;
-import models.*;
-import service.*;
-
import java.io.IOException;
-import java.sql.*;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
import java.text.DecimalFormat;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
+import data.ShopContract.ProductsEntry;
+import javafx.collections.FXCollections;
+import javafx.collections.ObservableList;
+import javafx.event.ActionEvent;
+import javafx.fxml.FXML;
+import javafx.scene.control.Alert;
+import javafx.scene.control.Button;
+import javafx.scene.control.ButtonType;
+import javafx.scene.control.ComboBox;
+import javafx.scene.control.Label;
+import javafx.scene.control.ListCell;
+import javafx.scene.control.ListView;
+import javafx.scene.control.SelectionMode;
+import models.Clothing;
+import models.Customer;
+import models.Footwear;
+import models.OrderLine;
+import models.Product;
+import models.Staff;
+import service.AlertService;
+import service.ControllerService;
+import service.DbManager;
+import service.ProductList;
+import service.StageService;
+
public class ViewProductsController {
private static final String NO_STOCK_BACKGROUND_COLOUR = "derive(red, 98%)";
diff --git a/src/data/ShopContract.java b/src/main/java/data/ShopContract.java
similarity index 100%
rename from src/data/ShopContract.java
rename to src/main/java/data/ShopContract.java
diff --git a/src/models/Clothing.java b/src/main/java/models/Clothing.java
similarity index 100%
rename from src/models/Clothing.java
rename to src/main/java/models/Clothing.java
diff --git a/src/models/Customer.java b/src/main/java/models/Customer.java
similarity index 100%
rename from src/models/Customer.java
rename to src/main/java/models/Customer.java
diff --git a/src/models/Footwear.java b/src/main/java/models/Footwear.java
similarity index 100%
rename from src/models/Footwear.java
rename to src/main/java/models/Footwear.java
diff --git a/src/models/Order.java b/src/main/java/models/Order.java
similarity index 100%
rename from src/models/Order.java
rename to src/main/java/models/Order.java
diff --git a/src/models/OrderLine.java b/src/main/java/models/OrderLine.java
similarity index 100%
rename from src/models/OrderLine.java
rename to src/main/java/models/OrderLine.java
diff --git a/src/models/Product.java b/src/main/java/models/Product.java
similarity index 100%
rename from src/models/Product.java
rename to src/main/java/models/Product.java
diff --git a/src/models/Staff.java b/src/main/java/models/Staff.java
similarity index 100%
rename from src/models/Staff.java
rename to src/main/java/models/Staff.java
diff --git a/src/models/User.java b/src/main/java/models/User.java
similarity index 100%
rename from src/models/User.java
rename to src/main/java/models/User.java
diff --git a/src/service/AlertService.java b/src/main/java/service/AlertService.java
similarity index 100%
rename from src/service/AlertService.java
rename to src/main/java/service/AlertService.java
index 9804537..aa09801 100644
--- a/src/service/AlertService.java
+++ b/src/main/java/service/AlertService.java
@@ -1,11 +1,11 @@
package service;
+import java.util.Optional;
+
import javafx.scene.control.Alert;
import javafx.scene.control.ButtonType;
import javafx.stage.StageStyle;
-import java.util.Optional;
-
/**
* Popup the JavaFX Alert Dialog.
*/
diff --git a/src/main/java/service/ControllerService.java b/src/main/java/service/ControllerService.java
new file mode 100644
index 0000000..b3f618c
--- /dev/null
+++ b/src/main/java/service/ControllerService.java
@@ -0,0 +1,19 @@
+package service;
+
+/**
+ * Interface that defines the user interface FXML file locations.
+ * Needs to be updated anytime when a new stage is added.
+ */
+public interface ControllerService {
+ String MAIN_MENU = "main_menu.fxml";
+ String STAFF_LOGIN = "staff_login.fxml";
+ String STAFF_HOME = "staff_home.fxml";
+ String VIEW_PRODUCTS = "view_products.fxml";
+ String EDIT_PRODUCTS = "edit_products.fxml";
+ String VIEW_ORDERS = "view_orders.fxml";
+ String VIEW_ORDER_LINES = "view_order_lines.fxml";
+ String CUSTOMER_LOGIN = "customer_login.fxml";
+ String CUSTOMER_HOME = "customer_home.fxml";
+ String CUSTOMER_BASKET = "customer_basket.fxml";
+ String ADD_EDIT_CUSTOMER = "add_edit_customer.fxml";
+}
\ No newline at end of file
diff --git a/src/service/DbManager.java b/src/main/java/service/DbManager.java
similarity index 90%
rename from src/service/DbManager.java
rename to src/main/java/service/DbManager.java
index 9ecef61..e72a72a 100644
--- a/src/service/DbManager.java
+++ b/src/main/java/service/DbManager.java
@@ -29,9 +29,9 @@ public static Connection Connect() {
String OS = (System.getProperty("os.name")).toUpperCase();
if (OS.contains("WIN")) {
- url = "jdbc:sqlite:src\\data\\" + DATABASE_NAME;
+ url = "jdbc:sqlite:data\\" + DATABASE_NAME;
} else {
- url = "jdbc:sqlite:src/data/" + DATABASE_NAME;
+ url = "jdbc:sqlite:data/" + DATABASE_NAME;
}
try {
diff --git a/src/service/LabelStatusService.java b/src/main/java/service/LabelStatusService.java
similarity index 100%
rename from src/service/LabelStatusService.java
rename to src/main/java/service/LabelStatusService.java
diff --git a/src/service/LoginService.java b/src/main/java/service/LoginService.java
similarity index 100%
rename from src/service/LoginService.java
rename to src/main/java/service/LoginService.java
index 4788c23..e65c22e 100644
--- a/src/service/LoginService.java
+++ b/src/main/java/service/LoginService.java
@@ -1,15 +1,15 @@
package service;
-import data.ShopContract.CustomerEntry;
-import data.ShopContract.StaffEntry;
-import models.Customer;
-import models.Staff;
-
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
+import data.ShopContract.CustomerEntry;
+import data.ShopContract.StaffEntry;
+import models.Customer;
+import models.Staff;
+
/**
* Login helper. Manages if user exist in a database.
*/
diff --git a/src/service/ProductList.java b/src/main/java/service/ProductList.java
similarity index 100%
rename from src/service/ProductList.java
rename to src/main/java/service/ProductList.java
index 2a5307c..212f894 100644
--- a/src/service/ProductList.java
+++ b/src/main/java/service/ProductList.java
@@ -1,8 +1,5 @@
package service;
-import data.ShopContract.ProductsEntry;
-import models.Product;
-
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -11,6 +8,9 @@
import java.util.List;
import java.util.Objects;
+import data.ShopContract.ProductsEntry;
+import models.Product;
+
/**
* Get Product list from database (IDs and Names) and add to a List of Products
*/
diff --git a/src/service/StageService.java b/src/main/java/service/StageService.java
similarity index 93%
rename from src/service/StageService.java
rename to src/main/java/service/StageService.java
index 8f910df..4536602 100644
--- a/src/service/StageService.java
+++ b/src/main/java/service/StageService.java
@@ -1,6 +1,19 @@
package service;
-import controllers.*;
+import java.io.IOException;
+
+import static service.ControllerService.*;
+
+import controllers.AddEditCustomerController;
+import controllers.CustomerBasketController;
+import controllers.CustomerHomeController;
+import controllers.CustomerLoginController;
+import controllers.EditProductsController;
+import controllers.StaffHomeController;
+import controllers.Start;
+import controllers.ViewOrderLinesController;
+import controllers.ViewOrdersController;
+import controllers.ViewProductsController;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXMLLoader;
@@ -9,11 +22,11 @@
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.stage.Stage;
-import models.*;
-
-import java.io.IOException;
-
-import static service.ControllerService.*;
+import models.Clothing;
+import models.Customer;
+import models.Footwear;
+import models.OrderLine;
+import models.Staff;
/**
@@ -247,7 +260,7 @@ private void getStage(Parent root, Stage primaryStage) {
primaryStage.setScene(scene);
String TITLE = "ShopOOP - Piotr Przechodzki";
primaryStage.setTitle(TITLE);
- String ICON_URL = "../views/images/store.png";
+ String ICON_URL = "/images/store.png";
primaryStage.getIcons().add(new Image(getClass().getResourceAsStream(ICON_URL)));
primaryStage.setResizable(false);
primaryStage.show();
diff --git a/src/validation/LoginTextField.java b/src/main/java/validation/LoginTextField.java
similarity index 100%
rename from src/validation/LoginTextField.java
rename to src/main/java/validation/LoginTextField.java
diff --git a/src/validation/LoginValidation.java b/src/main/java/validation/LoginValidation.java
similarity index 100%
rename from src/validation/LoginValidation.java
rename to src/main/java/validation/LoginValidation.java
diff --git a/src/validation/NumberTextField.java b/src/main/java/validation/NumberTextField.java
similarity index 100%
rename from src/validation/NumberTextField.java
rename to src/main/java/validation/NumberTextField.java
diff --git a/src/validation/PriceTextField.java b/src/main/java/validation/PriceTextField.java
similarity index 100%
rename from src/validation/PriceTextField.java
rename to src/main/java/validation/PriceTextField.java
diff --git a/src/validation/ProductValidation.java b/src/main/java/validation/ProductValidation.java
similarity index 100%
rename from src/validation/ProductValidation.java
rename to src/main/java/validation/ProductValidation.java
diff --git a/src/validation/RegisterValidation.java b/src/main/java/validation/RegisterValidation.java
similarity index 100%
rename from src/validation/RegisterValidation.java
rename to src/main/java/validation/RegisterValidation.java
diff --git a/src/views/add_edit_customer.fxml b/src/main/resources/controllers/add_edit_customer.fxml
similarity index 100%
rename from src/views/add_edit_customer.fxml
rename to src/main/resources/controllers/add_edit_customer.fxml
diff --git a/src/views/customer_basket.fxml b/src/main/resources/controllers/customer_basket.fxml
similarity index 100%
rename from src/views/customer_basket.fxml
rename to src/main/resources/controllers/customer_basket.fxml
diff --git a/src/views/customer_home.fxml b/src/main/resources/controllers/customer_home.fxml
similarity index 100%
rename from src/views/customer_home.fxml
rename to src/main/resources/controllers/customer_home.fxml
diff --git a/src/views/customer_login.fxml b/src/main/resources/controllers/customer_login.fxml
similarity index 100%
rename from src/views/customer_login.fxml
rename to src/main/resources/controllers/customer_login.fxml
diff --git a/src/views/edit_products.fxml b/src/main/resources/controllers/edit_products.fxml
similarity index 100%
rename from src/views/edit_products.fxml
rename to src/main/resources/controllers/edit_products.fxml
diff --git a/src/views/main_menu.fxml b/src/main/resources/controllers/main_menu.fxml
similarity index 97%
rename from src/views/main_menu.fxml
rename to src/main/resources/controllers/main_menu.fxml
index 30de1c2..d7c9503 100644
--- a/src/views/main_menu.fxml
+++ b/src/main/resources/controllers/main_menu.fxml
@@ -35,7 +35,7 @@
-
+