diff --git a/src/main/java/com/example/clientproject/services/StampboardUpdater.java b/src/main/java/com/example/clientproject/services/StampboardUpdater.java
index a8d790ff6ac5b3cdbe7680748a5ca34aaf69dffa..a6bf36aab18319d343221b13c5111a9a6dfe622a 100644
--- a/src/main/java/com/example/clientproject/services/StampboardUpdater.java
+++ b/src/main/java/com/example/clientproject/services/StampboardUpdater.java
@@ -1,53 +1,93 @@
 package com.example.clientproject.services;
 
+import com.example.clientproject.service.LoggingService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 
+import javax.servlet.http.HttpSession;
 import java.util.Map;
 
 @Service
 public class StampboardUpdater {
-    @Autowired
     JdbcTemplate jdbc;
+    LoggingService loggingService;
+
+    public StampboardUpdater(JdbcTemplate jdbc, LoggingService loggingService) {
+        this.jdbc = jdbc;
+        this.loggingService = loggingService;
+    }
 
     //When using ensure you have validated authority first
 
-    public void updateColour(Integer shopId, String colour){
-        String query = "UPDATE stamp_boards SET Stamp_Board_Colour = '"+ colour +"' WHERE Stamp_Board_Id = (" +
+    public void updateColour(Integer shopId, String colour, HttpSession session){
+        String query = "UPDATE mydb.stamp_boards SET Stamp_Board_Colour = '"+ colour +"' WHERE Stamp_Board_Id = (" +
                 "SELECT stamp_boards.Stamp_Board_Id FROM mydb.stamp_boards INNER JOIN " +
-                "shops on shops.Stamp_Board_Id = stamp_boards.Stamp_Board_Id where shops.Shop_Id = "+ shopId +" limit 1);";
-
+                "mydb.shops on shops.Stamp_Board_Id = stamp_boards.Stamp_Board_Id where shops.Shop_Id = "+ shopId +" limit 1);";
         jdbc.execute(query);
+        // Log the change
+        loggingService.logEvent(
+                "Stamp Board Updated",
+                session,
+                "Stamp Board updated for Shop: " + shopId +
+                        " with field: Stamp_Board_Colour with value: " + colour +
+                        " in StampboardUpdater.updateColour()"
+        );
     }
 
-    public void updateRewards(Integer shopId, Map<String,Object> rewards){
-        String deleteQuery = "delete from rewards where Stamp_Board_Id = (" +
-                "SELECT Stamp_Board_Id from shops where Shop_Id = "+shopId+");";
-
+    public void updateRewards(Integer shopId, Map<String,Object> rewards, HttpSession session){
+        String deleteQuery = "delete from mydb.rewards where Stamp_Board_Id = (" +
+                "SELECT Stamp_Board_Id from mydb.shops where Shop_Id = "+shopId+");";
         jdbc.execute(deleteQuery);
+        // Log the change
+        loggingService.logEvent(
+                "Reward Deleted",
+                session,
+                "Rewards deleted for StampBoard for Shop: " + shopId +
+                        " in StampboardUpdater.updateRewards()"
+        );
 
         rewards.entrySet().forEach(r -> {
-            String insertQuery = "INSERT into rewards (Reward_Name, Reward_Stamp_Location,Stamp_Board_Id) values (\""+r.getValue()+"\", " +
-                    r.getKey()+",(SELECT Stamp_Board_Id from shops where Shop_Id = "+ shopId.toString() +"));";
-
+            String insertQuery = "INSERT into mydb.rewards (Reward_Name, Reward_Stamp_Location,Stamp_Board_Id) values (\""+r.getValue()+"\", " +
+                    r.getKey()+",(SELECT Stamp_Board_Id from mydb.shops where Shop_Id = "+ shopId.toString() +"));";
             jdbc.execute(insertQuery);
+            // Log the change
+            loggingService.logEvent(
+                    "New Reward",
+                    session,
+                    "Reward inserted for StampBoard for Shop: " + shopId +
+                            " in StampboardUpdater.updateRewards()"
+            );
         });
     }
 
-    public void updateStampboardSize(Integer shopId, Integer size){
-        String query = "UPDATE stamp_boards SET Stamp_Board_Size = "+ size +" WHERE Stamp_Board_Id = (" +
+    public void updateStampboardSize(Integer shopId, Integer size, HttpSession session){
+        String query = "UPDATE mydb.stamp_boards SET Stamp_Board_Size = "+ size +" WHERE Stamp_Board_Id = (" +
                 "SELECT stamp_boards.Stamp_Board_Id FROM mydb.stamp_boards INNER JOIN " +
-                "shops on shops.Stamp_Board_Id = stamp_boards.Stamp_Board_Id where shops.Shop_Id = "+ shopId +" limit 1);";
-
+                "mydb.shops on shops.Stamp_Board_Id = stamp_boards.Stamp_Board_Id where shops.Shop_Id = "+ shopId +" limit 1);";
         jdbc.execute(query);
+        // Log the change
+        loggingService.logEvent(
+                "StampBoard Updated",
+                session,
+                "StampBoard updated for Shop: " + shopId +
+                        " with: field Stamp_BoardSize with value:" + size +
+                        " in StampboardUpdater.updateStampboardSize()"
+        );
     }
 
-    public void updateIconURL(Integer shopId, String url){
-        String query = "UPDATE stamp_boards SET Stamp_Board_Icon = '"+ url +"' WHERE Stamp_Board_Id = (" +
+    public void updateIconURL(Integer shopId, String url, HttpSession session){
+        String query = "UPDATE mydb.stamp_boards SET Stamp_Board_Icon = '"+ url +"' WHERE Stamp_Board_Id = (" +
                 "SELECT stamp_boards.Stamp_Board_Id FROM mydb.stamp_boards INNER JOIN " +
-                "shops on shops.Stamp_Board_Id = stamp_boards.Stamp_Board_Id where shops.Shop_Id = "+ shopId +" limit 1);";
-
+                "mydb.shops on shops.Stamp_Board_Id = stamp_boards.Stamp_Board_Id where shops.Shop_Id = "+ shopId +" limit 1);";
         jdbc.execute(query);
+        // Log the change
+        loggingService.logEvent(
+                "StampBoard Updated",
+                session,
+                "StampBoard updated for Shop: " + shopId +
+                        " with: field Stamp_Board_Icon with value:" + url +
+                        " in StampboardUpdater.updateIconURL()"
+        );
     }
 }
diff --git a/src/main/java/com/example/clientproject/web/restControllers/updateStampboard.java b/src/main/java/com/example/clientproject/web/restControllers/updateStampboard.java
index 8c1bdde7b59262864e3edacf3a017fa82bef78f0..b65577bbafbe6251693afe213c5c5f026c0b463b 100644
--- a/src/main/java/com/example/clientproject/web/restControllers/updateStampboard.java
+++ b/src/main/java/com/example/clientproject/web/restControllers/updateStampboard.java
@@ -56,11 +56,11 @@ public class updateStampboard {
             throw new ForbiddenErrorException("Invalid Colour value");
         }
 
-        stampboardUpdater.updateColour(usf.getShopId(), usf.getColour());
-        stampboardUpdater.updateStampboardSize(usf.getShopId(), usf.getStampboardSize());
-        stampboardUpdater.updateRewards(usf.getShopId(), rewardsMap);
+        stampboardUpdater.updateColour(usf.getShopId(), usf.getColour(), session);
+        stampboardUpdater.updateStampboardSize(usf.getShopId(), usf.getStampboardSize(), session);
+        stampboardUpdater.updateRewards(usf.getShopId(), rewardsMap, session);
         if(usf.getIconFilePath().length() > 0){
-            stampboardUpdater.updateIconURL(usf.getShopId(), usf.getIconFilePath());
+            stampboardUpdater.updateIconURL(usf.getShopId(), usf.getIconFilePath(), session);
         }
         return "OK";
     }
diff --git a/src/main/resources/database/schema.sql b/src/main/resources/database/schema.sql
index 88040647853f4df93665480bdcb088cff9b8fe4c..e04c378018061807041b643dc7d18268ce8e6750 100644
--- a/src/main/resources/database/schema.sql
+++ b/src/main/resources/database/schema.sql
@@ -349,3 +349,5 @@ INSERT INTO Events (Event_Name) VALUES ('New Tag');
 INSERT INTO Events (Event_Name) VALUES ('New Shop Tag Link');
 INSERT INTO Events (Event_Name) VALUES ('New Social');
 INSERT INTO Events (Event_Name) VALUES ('New User Permission');
+INSERT INTO Events (Event_Name) VALUES ('Stamp Board Updated');
+INSERT INTO Events (Event_Name) VALUES ('Reward Deleted');