diff --git a/src/main/java/com/example/clientproject/data/events/Events.java b/src/main/java/com/example/clientproject/data/events/Events.java
new file mode 100644
index 0000000000000000000000000000000000000000..9a48c0f240a2a3424636102ebb43032dc90fbdc4
--- /dev/null
+++ b/src/main/java/com/example/clientproject/data/events/Events.java
@@ -0,0 +1,27 @@
+package com.example.clientproject.data.events;
+
+import com.example.clientproject.data.logs.Logs;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.*;
+import java.util.Set;
+
+/**
+ * Entity object for events which trigger a log
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+public class Events {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private long eventId;
+    private String eventName;
+
+    @OneToMany(cascade=CascadeType.ALL, orphanRemoval = true)
+    @JoinColumn(name="Event_Id", nullable = false)
+    private Set<Logs> logs;
+}
diff --git a/src/main/java/com/example/clientproject/data/events/EventsRepo.java b/src/main/java/com/example/clientproject/data/events/EventsRepo.java
new file mode 100644
index 0000000000000000000000000000000000000000..69b5d3e7e6f63065aa47be3b3b4c22f9dc518445
--- /dev/null
+++ b/src/main/java/com/example/clientproject/data/events/EventsRepo.java
@@ -0,0 +1,19 @@
+package com.example.clientproject.data.events;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.Optional;
+
+/**
+ * Repository for the "Events" Entity
+ */
+public interface EventsRepo extends JpaRepository<Events, Long> {
+    /**
+     * Find an event by its name
+     * @param name - the name to search by
+     * @return - the event as an optional
+     */
+    @Query("select e from Events e where e.eventName = ?1")
+    Optional<Events> findByEventName(String name);
+}
diff --git a/src/main/java/com/example/clientproject/data/logs/Logs.java b/src/main/java/com/example/clientproject/data/logs/Logs.java
new file mode 100644
index 0000000000000000000000000000000000000000..190fee8fbbb18c4ad103465226f9b7d8ea95c39b
--- /dev/null
+++ b/src/main/java/com/example/clientproject/data/logs/Logs.java
@@ -0,0 +1,43 @@
+package com.example.clientproject.data.logs;
+
+import com.example.clientproject.data.converters.TinyIntToBoolean;
+import com.example.clientproject.data.events.Events;
+import com.example.clientproject.data.users.Users;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.*;
+
+/**
+ * Entity object for logs
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+public class Logs {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private long logId;
+    private String logDetails;
+    private String logDateTime;
+    @Convert(converter = TinyIntToBoolean.class)
+    private boolean logSuperAdmin;
+
+    @ManyToOne
+    @JoinColumn(name="User_Id", nullable=false)
+    private Users user;
+
+    @ManyToOne
+    @JoinColumn(name="Event_Id", nullable=false)
+    private Events event;
+
+    public Logs(String details, String dateTime, boolean superAdmin, Users aUser, Events aEvent) {
+        logDetails = details;
+        logDateTime = dateTime;
+        logSuperAdmin = superAdmin;
+        user = aUser;
+        event = aEvent;
+    }
+}
diff --git a/src/main/java/com/example/clientproject/data/logs/LogsRepo.java b/src/main/java/com/example/clientproject/data/logs/LogsRepo.java
new file mode 100644
index 0000000000000000000000000000000000000000..7c5921939f46b8b1e27c720ec86bcebd05f78158
--- /dev/null
+++ b/src/main/java/com/example/clientproject/data/logs/LogsRepo.java
@@ -0,0 +1,43 @@
+package com.example.clientproject.data.logs;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.List;
+
+/**
+ * JPA Repo for the Logs entity
+ */
+public interface LogsRepo extends JpaRepository<Logs, Long> {
+    /**
+     * Find all the logs from a specific date time
+     * @param dateTime - the datetime to search by
+     * @return - list of logs from that date time
+     */
+    @Query("select l from Logs l where l.logDateTime like ?1")
+    List<Logs> findByDateTime(String dateTime);
+
+    /**
+     * Find all the logs for a specific event
+     * @param eventId - the id of the event to search by
+     * @return - a list of logs with that event
+     */
+    @Query("select l from Logs l where l.event.eventId = ?1")
+    List<Logs> findByEventId(long eventId);
+
+    /**
+     * Find all the logs for a specific user
+     * @param userId - the id of the user to search by
+     * @return - a list of all the logs for that user
+     */
+    @Query("select l from Logs l where l.user.userId = ?1")
+    List<Logs> findByUserId(long userId);
+
+    /**
+     * Find all the logs by a specific super admin status
+     * @param superAdminStatus - the status to search by
+     * @return - a list of the logs found
+     */
+    @Query("select l from Logs l where l.logSuperAdmin = ?1")
+    List<Logs> findBySuperAdminStatus(boolean superAdminStatus);
+}
diff --git a/src/main/java/com/example/clientproject/data/users/Users.java b/src/main/java/com/example/clientproject/data/users/Users.java
index f5c48347b44bafc85413a54965026fa739ca0a3f..96803f2a5639b05db74eb3b6e8c01ea9e8933e8f 100644
--- a/src/main/java/com/example/clientproject/data/users/Users.java
+++ b/src/main/java/com/example/clientproject/data/users/Users.java
@@ -1,5 +1,6 @@
 package com.example.clientproject.data.users;
 
+import com.example.clientproject.data.logs.Logs;
 import com.example.clientproject.data.shops.Shops;
 import com.example.clientproject.data.userStampBoards.UserStampBoards;
 import com.example.clientproject.data.tags.Tags;
@@ -91,6 +92,10 @@ public class Users {
     )
     private List<Tags> favouriteTags;
 
+    @OneToMany(cascade=CascadeType.ALL, orphanRemoval = true)
+    @JoinColumn(name="User_Id", nullable=false)
+    private Set<Logs> logs;
+
     public String toString(){
         return "User:" + this.getUserFirstName();
     }