diff --git a/solution-lab-2.02-maven/order-data/order-data.iml b/solution-lab-2.02-maven/order-data/order-data.iml
new file mode 100644
index 0000000..056f882
--- /dev/null
+++ b/solution-lab-2.02-maven/order-data/order-data.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/solution-lab-2.02-maven/order-data/pom.xml b/solution-lab-2.02-maven/order-data/pom.xml
new file mode 100644
index 0000000..bd41f8c
--- /dev/null
+++ b/solution-lab-2.02-maven/order-data/pom.xml
@@ -0,0 +1,29 @@
+
+
+ 4.0.0
+
+
+ com.ironhack
+ solution-lab-2.02-maven
+ 1.0-SNAPSHOT
+
+
+ order-data
+ jar
+
+ Order Data Module
+
+
+
+ com.google.code.gson
+ gson
+
+
+ org.slf4j
+ slf4j-api
+
+
+
+
\ No newline at end of file
diff --git a/solution-lab-2.02-maven/order-data/src/main/java/Order.java b/solution-lab-2.02-maven/order-data/src/main/java/Order.java
new file mode 100644
index 0000000..30d5931
--- /dev/null
+++ b/solution-lab-2.02-maven/order-data/src/main/java/Order.java
@@ -0,0 +1,51 @@
+import java.util.List;
+
+public class Order {
+ private String orderId;
+ private String customerName;
+ private List items;
+ private double total;
+
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public void setOrderId(String orderId) {
+ this.orderId = orderId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public List getItems() {
+ return items;
+ }
+
+ public void setItems(List items) {
+ this.items = items;
+ }
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ @Override
+ public String toString() {
+ return "Order{" +
+ "orderId='" + orderId + '\'' +
+ ", customerName='" + customerName + '\'' +
+ ", items=" + items +
+ ", total=" + total +
+ '}';
+ }
+}
diff --git a/solution-lab-2.02-maven/order-data/src/main/java/OrderItem.java b/solution-lab-2.02-maven/order-data/src/main/java/OrderItem.java
new file mode 100644
index 0000000..68a0e59
--- /dev/null
+++ b/solution-lab-2.02-maven/order-data/src/main/java/OrderItem.java
@@ -0,0 +1,40 @@
+public class OrderItem {
+ private String productName;
+ private int quantity;
+ private double unitPrice;
+
+ public String getProductName() {
+ return productName;
+ }
+
+ public void setProductName(String productName) {
+ this.productName = productName;
+ }
+
+ public int getQuantity() {
+ return quantity;
+ }
+
+ public void setQuantity(int quantity) {
+ this.quantity = quantity;
+ }
+
+ public double getUnitPrice() {
+ return unitPrice;
+ }
+
+ public void setUnitPrice(double unitPrice) {
+ this.unitPrice = unitPrice;
+ }
+ public double getSubtotal() {
+ return quantity * unitPrice;
+ }
+ @Override
+ public String toString() {
+ return "OrderItem{" +
+ "productName='" + productName + '\'' +
+ ", quantity=" + quantity +
+ ", unitPrice=" + unitPrice +
+ '}';
+ }
+}
\ No newline at end of file
diff --git a/solution-lab-2.02-maven/order-data/src/main/java/OrderProcessor.java b/solution-lab-2.02-maven/order-data/src/main/java/OrderProcessor.java
new file mode 100644
index 0000000..18a0f11
--- /dev/null
+++ b/solution-lab-2.02-maven/order-data/src/main/java/OrderProcessor.java
@@ -0,0 +1,29 @@
+
+
+import com.google.gson.Gson;
+
+public class OrderProcessor {
+ public static void main(String[] args) {
+ String json = """
+ {
+ "orderId": "ORD-2026-0042",
+ "customerName": "revan abusov",
+ "items": [
+ {"productName": "Wireless Mouse", "quantity": 2, "unitPrice": 45.50},
+ {"productName": "Mechanical Keyboard", "quantity": 1, "unitPrice": 120.00},
+ {"productName": "USB-C Hub", "quantity": 3, "unitPrice": 28.75}
+ ],
+ "total": 296.75
+ }
+ """;
+ Gson gson = new Gson();
+ Order order = gson.fromJson(json, Order.class);
+ System.out.println("=== Parsed Order ===");
+ System.out.println(order);
+ System.out.println("\nItems:");
+ for (OrderItem item : order.getItems()) {
+ System.out.printf(" • %s × %d = %.2f $%n",
+ item.getProductName(), item.getQuantity(), item.getSubtotal());
+ }
+ }
+}
\ No newline at end of file
diff --git a/solution-lab-2.02-maven/order-data/target/classes/Order.class b/solution-lab-2.02-maven/order-data/target/classes/Order.class
new file mode 100644
index 0000000..aa8c49d
Binary files /dev/null and b/solution-lab-2.02-maven/order-data/target/classes/Order.class differ
diff --git a/solution-lab-2.02-maven/order-data/target/classes/OrderItem.class b/solution-lab-2.02-maven/order-data/target/classes/OrderItem.class
new file mode 100644
index 0000000..616b5e3
Binary files /dev/null and b/solution-lab-2.02-maven/order-data/target/classes/OrderItem.class differ
diff --git a/solution-lab-2.02-maven/order-data/target/classes/OrderProcessor.class b/solution-lab-2.02-maven/order-data/target/classes/OrderProcessor.class
new file mode 100644
index 0000000..854233d
Binary files /dev/null and b/solution-lab-2.02-maven/order-data/target/classes/OrderProcessor.class differ
diff --git a/solution-lab-2.02-maven/order-data/target/maven-archiver/pom.properties b/solution-lab-2.02-maven/order-data/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..3b8ec5c
--- /dev/null
+++ b/solution-lab-2.02-maven/order-data/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=order-data
+groupId=com.ironhack
+version=1.0-SNAPSHOT
diff --git a/solution-lab-2.02-maven/order-data/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/solution-lab-2.02-maven/order-data/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..a805e65
--- /dev/null
+++ b/solution-lab-2.02-maven/order-data/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,3 @@
+Order.class
+OrderItem.class
+OrderProcessor.class
diff --git a/solution-lab-2.02-maven/order-data/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/solution-lab-2.02-maven/order-data/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..332c012
--- /dev/null
+++ b/solution-lab-2.02-maven/order-data/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,3 @@
+C:\Users\abuso\lab-java-maven\solution-lab-2.02-maven\order-data\src\main\java\Order.java
+C:\Users\abuso\lab-java-maven\solution-lab-2.02-maven\order-data\src\main\java\OrderItem.java
+C:\Users\abuso\lab-java-maven\solution-lab-2.02-maven\order-data\src\main\java\OrderProcessor.java
diff --git a/solution-lab-2.02-maven/order-data/target/order-data-1.0-SNAPSHOT.jar b/solution-lab-2.02-maven/order-data/target/order-data-1.0-SNAPSHOT.jar
new file mode 100644
index 0000000..1588dff
Binary files /dev/null and b/solution-lab-2.02-maven/order-data/target/order-data-1.0-SNAPSHOT.jar differ
diff --git a/solution-lab-2.02-maven/order-logic/pom.xml b/solution-lab-2.02-maven/order-logic/pom.xml
new file mode 100644
index 0000000..8687836
--- /dev/null
+++ b/solution-lab-2.02-maven/order-logic/pom.xml
@@ -0,0 +1,30 @@
+
+
+ 4.0.0
+
+
+ com.ironhack
+ solution-lab-2.02-maven
+ 1.0-SNAPSHOT
+
+
+ order-logic
+ jar
+
+ Order Logic Module
+
+
+
+ az.example
+ order-data
+ ${project.version}
+
+
+ org.slf4j
+ slf4j-api
+
+
+
+
\ No newline at end of file
diff --git a/solution-lab-2.02-maven/order-logic/src/main/java/OrderCalculator.java b/solution-lab-2.02-maven/order-logic/src/main/java/OrderCalculator.java
new file mode 100644
index 0000000..66c4866
--- /dev/null
+++ b/solution-lab-2.02-maven/order-logic/src/main/java/OrderCalculator.java
@@ -0,0 +1,52 @@
+import java.util.List;
+public class OrderCalculator {
+
+ public static void main(String[] args) {
+ Order order = createSampleOrder();
+ System.out.println("=== Order Summary ===");
+ System.out.println("client: "+order.getCustomerName());
+ System.out.println("order no: "+order.getOrderId());
+ double calculatedTotal = 0;
+ int totalItems = 0;
+ System.out.println("\n order details:");
+ for (OrderItem item : order.getItems()) {
+ double subtotal = item.getSubtotal();
+ calculatedTotal += subtotal;
+ totalItems += item.getQuantity();
+ System.out.printf(" • %-22s × %2d=%8.2f $%n",
+ item.getProductName(), item.getQuantity(), subtotal);
+ }
+ System.out.printf("total:%8.2f $%n",calculatedTotal);
+ System.out.printf("JSON total:%8.2f $%n", order.getTotal());
+ System.out.printf("total number:%d number%n",totalItems);
+ if (Math.abs(calculatedTotal - order.getTotal()) > 0.01) {
+ System.out.println("Error: something wrong");
+ } else {
+ System.out.println("Total values is okey");
+ }
+ }
+ private static Order createSampleOrder() {
+ Order order = new Order();
+ order.setOrderId("ORD-2026-0042");
+ order.setCustomerName("revan abusov");
+
+ OrderItem mouse = new OrderItem();
+ mouse.setProductName("Wireless Mouse");
+ mouse.setQuantity(2);
+ mouse.setUnitPrice(45.50);
+
+ OrderItem keyboard = new OrderItem();
+ keyboard.setProductName("Mechanical Keyboard");
+ keyboard.setQuantity(1);
+ keyboard.setUnitPrice(120.00);
+
+ OrderItem hub = new OrderItem();
+ hub.setProductName("USB-C Hub");
+ hub.setQuantity(3);
+ hub.setUnitPrice(28.75);
+ order.setItems(List.of(mouse, keyboard, hub));
+ double total = mouse.getSubtotal() + keyboard.getSubtotal() + hub.getSubtotal();
+ order.setTotal(total);
+ return order;
+ }
+}
\ No newline at end of file
diff --git a/solution-lab-2.02-maven/order-logic/target/classes/OrderCalculator.class b/solution-lab-2.02-maven/order-logic/target/classes/OrderCalculator.class
new file mode 100644
index 0000000..d9b63fe
Binary files /dev/null and b/solution-lab-2.02-maven/order-logic/target/classes/OrderCalculator.class differ
diff --git a/solution-lab-2.02-maven/order-logic/target/maven-archiver/pom.properties b/solution-lab-2.02-maven/order-logic/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..4966a55
--- /dev/null
+++ b/solution-lab-2.02-maven/order-logic/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=order-logic
+groupId=com.ironhack
+version=1.0-SNAPSHOT
diff --git a/solution-lab-2.02-maven/order-logic/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/solution-lab-2.02-maven/order-logic/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..66f66a4
--- /dev/null
+++ b/solution-lab-2.02-maven/order-logic/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1 @@
+OrderCalculator.class
diff --git a/solution-lab-2.02-maven/order-logic/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/solution-lab-2.02-maven/order-logic/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..e3bbb0f
--- /dev/null
+++ b/solution-lab-2.02-maven/order-logic/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1 @@
+C:\Users\abuso\lab-java-maven\solution-lab-2.02-maven\order-logic\src\main\java\OrderCalculator.java
diff --git a/solution-lab-2.02-maven/order-logic/target/order-logic-1.0-SNAPSHOT.jar b/solution-lab-2.02-maven/order-logic/target/order-logic-1.0-SNAPSHOT.jar
new file mode 100644
index 0000000..354cba2
Binary files /dev/null and b/solution-lab-2.02-maven/order-logic/target/order-logic-1.0-SNAPSHOT.jar differ
diff --git a/solution-lab-2.02-maven/pom.xml b/solution-lab-2.02-maven/pom.xml
new file mode 100644
index 0000000..1a89434
--- /dev/null
+++ b/solution-lab-2.02-maven/pom.xml
@@ -0,0 +1,73 @@
+
+
+ 4.0.0
+
+ com.ironhack
+ solution-lab-2.02-maven
+ 1.0-SNAPSHOT
+ pom
+
+ Lab 2.02 - Multi-module Maven Solution
+
+
+ 17
+ UTF-8
+ ${java.version}
+ ${java.version}
+ 2.11.0
+ 2.0.16
+
+
+
+ order-data
+ order-logic
+
+
+
+
+
+ com.google.code.gson
+ gson
+ ${gson.version}
+
+
+ org.slf4j
+ slf4j-api
+ ${slf4j.version}
+
+
+
+
+
+
+ central
+ Maven Central
+ https://repo.maven.apache.org/maven2
+
+
+
+
+
+ central
+ Maven Central
+ https://repo.maven.apache.org/maven2
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.13.0
+
+ ${java.version}
+ ${java.version}
+
+
+
+
+
+
\ No newline at end of file