Index: backend/pom.xml
===================================================================
--- backend/pom.xml	(revision c0d09fa9265acc8e8d81a1199d31c5fe49f38c61)
+++ backend/pom.xml	(revision 70aa2480f28f83be028c176c25c56fe52bd7c80f)
@@ -46,4 +46,13 @@
 			<scope>test</scope>
 		</dependency>
+		<dependency>
+			<groupId>org.postgresql</groupId>
+			<artifactId>postgresql</artifactId>
+			<scope>runtime</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-data-jpa</artifactId>
+		</dependency>
 	</dependencies>
 
Index: backend/requests.http
===================================================================
--- backend/requests.http	(revision 70aa2480f28f83be028c176c25c56fe52bd7c80f)
+++ backend/requests.http	(revision 70aa2480f28f83be028c176c25c56fe52bd7c80f)
@@ -0,0 +1,2 @@
+### GET request to example server
+GET http://localhost:8080
Index: backend/src/main/java/com/shifterwebapp/shifter/model/Course.java
===================================================================
--- backend/src/main/java/com/shifterwebapp/shifter/model/Course.java	(revision c0d09fa9265acc8e8d81a1199d31c5fe49f38c61)
+++ backend/src/main/java/com/shifterwebapp/shifter/model/Course.java	(revision 70aa2480f28f83be028c176c25c56fe52bd7c80f)
@@ -1,4 +1,5 @@
 package com.shifterwebapp.shifter.model;
 
+import jakarta.persistence.*;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -6,5 +7,5 @@
 import lombok.NoArgsConstructor;
 
-import java.util.ArrayList;
+import java.util.List;
 
 @NoArgsConstructor
@@ -12,18 +13,42 @@
 @Data
 @Builder
+@Entity
 public class Course {
+    @Id
+    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "course_seq")
+    @SequenceGenerator(name = "course_seq", sequenceName = "course_sequence", allocationSize = 1)
+    private Integer id;
+    
     private String title;
+    
     private String topic;
+    
     private Difficulty difficulty;
+    
     private Float durationHours;
+    
     private Float price;
+    
     private Float rating;
+    
     private Integer ratingCount;
+    
     private String descriptionShort;
+    
     private String description;
+    
     private String descriptionLong;
-    private ArrayList<String> skillsGained;
-    private ArrayList<String> whatWillBeLearned;
-    private ArrayList<CourseContent> modules;
+    
+    @ElementCollection
+    private List<String> skillsGained;
+
+    @ElementCollection
+    private List<String> whatWillBeLearned;
+    
+    @OneToMany(mappedBy = "course")
+    private List<Enrollment> enrollments;
+
+    @OneToMany(mappedBy = "course")
+    private List<CourseContent> courseContents;
 }
 
Index: backend/src/main/java/com/shifterwebapp/shifter/model/CourseContent.java
===================================================================
--- backend/src/main/java/com/shifterwebapp/shifter/model/CourseContent.java	(revision c0d09fa9265acc8e8d81a1199d31c5fe49f38c61)
+++ backend/src/main/java/com/shifterwebapp/shifter/model/CourseContent.java	(revision 70aa2480f28f83be028c176c25c56fe52bd7c80f)
@@ -1,4 +1,5 @@
 package com.shifterwebapp.shifter.model;
 
+import jakarta.persistence.*;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -10,9 +11,23 @@
 @Data
 @Builder
+@Entity
 public class CourseContent {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "course_seq")
+    @SequenceGenerator(name = "course_seq", sequenceName = "course_sequence", allocationSize = 1)
+    private Integer id;
+
     private String title;
+
     private Integer position;
+
     private String contentURL;
+
     private ContentType contentType;
+
+    @ManyToOne
+    @JoinColumn(name = "course_id")
+    private Course course;
 }
 
Index: backend/src/main/java/com/shifterwebapp/shifter/model/Enrollment.java
===================================================================
--- backend/src/main/java/com/shifterwebapp/shifter/model/Enrollment.java	(revision c0d09fa9265acc8e8d81a1199d31c5fe49f38c61)
+++ backend/src/main/java/com/shifterwebapp/shifter/model/Enrollment.java	(revision 70aa2480f28f83be028c176c25c56fe52bd7c80f)
@@ -1,4 +1,5 @@
 package com.shifterwebapp.shifter.model;
 
+import jakarta.persistence.*;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -12,8 +13,27 @@
 @Data
 @Builder
+@Entity
 public class Enrollment {
+    @Id
+    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "enrollment_seq")
+    @SequenceGenerator(name = "enrollment_seq", sequenceName = "enrollment_sequence", allocationSize = 1)
+    private Integer id;
+
     private EnrollmentStatus enrollmentStatus;
+
     private Integer percentCompleted;
+
     private Date date;
+
+    @OneToOne
+    @JoinColumn(name = "payment_id")
+    private Payment payment;
+
+    @OneToOne(mappedBy = "enrollment")
+    private Review review;
+
+    @ManyToOne
+    @JoinColumn(name = "course_id")
+    private Course course;
 }
 
Index: backend/src/main/java/com/shifterwebapp/shifter/model/Payment.java
===================================================================
--- backend/src/main/java/com/shifterwebapp/shifter/model/Payment.java	(revision c0d09fa9265acc8e8d81a1199d31c5fe49f38c61)
+++ backend/src/main/java/com/shifterwebapp/shifter/model/Payment.java	(revision 70aa2480f28f83be028c176c25c56fe52bd7c80f)
@@ -1,4 +1,5 @@
 package com.shifterwebapp.shifter.model;
 
+import jakarta.persistence.*;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -12,9 +13,25 @@
 @Data
 @Builder
-public class Payment  {
+@Entity
+public class Payment {
+    @Id
+    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "payment_seq")
+    @SequenceGenerator(name = "payment_seq", sequenceName = "payment_sequence", allocationSize = 1)
+    private Integer id;
+
     private Float amount;
+
     private Date date;
+
     private PaymentMethod paymentMethod;
+
     private PaymentStatus paymentStatus;
+
+    @ManyToOne
+    @JoinColumn(name = "user_id")
+    private User user;
+
+    @OneToOne(mappedBy = "payment")
+    private Enrollment enrollment;
 }
 
Index: backend/src/main/java/com/shifterwebapp/shifter/model/Review.java
===================================================================
--- backend/src/main/java/com/shifterwebapp/shifter/model/Review.java	(revision c0d09fa9265acc8e8d81a1199d31c5fe49f38c61)
+++ backend/src/main/java/com/shifterwebapp/shifter/model/Review.java	(revision 70aa2480f28f83be028c176c25c56fe52bd7c80f)
@@ -1,4 +1,5 @@
 package com.shifterwebapp.shifter.model;
 
+import jakarta.persistence.*;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -12,8 +13,21 @@
 @Data
 @Builder
+@Entity
 public class Review {
+    @Id
+    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "review_seq")
+    @SequenceGenerator(name = "review_seq", sequenceName = "review_sequence", allocationSize = 1)
+    private Integer id;
+
     private Integer rating;
+
     private String comment;
+
     private Boolean canBeUsedAsTestimonial;
+
     private Date date;
+
+    @OneToOne
+    @JoinColumn(name = "enrollment_id")
+    private Enrollment enrollment;
 }
Index: backend/src/main/java/com/shifterwebapp/shifter/model/User.java
===================================================================
--- backend/src/main/java/com/shifterwebapp/shifter/model/User.java	(revision c0d09fa9265acc8e8d81a1199d31c5fe49f38c61)
+++ backend/src/main/java/com/shifterwebapp/shifter/model/User.java	(revision 70aa2480f28f83be028c176c25c56fe52bd7c80f)
@@ -2,4 +2,5 @@
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
+import jakarta.persistence.*;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -7,5 +8,5 @@
 import lombok.NoArgsConstructor;
 
-import java.util.ArrayList;
+import java.util.List;
 
 @NoArgsConstructor
@@ -13,17 +14,43 @@
 @Data
 @Builder
+@Entity
 public class User {
+    @Id
+    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "user_seq")
+    @SequenceGenerator(name = "user_seq", sequenceName = "user_sequence", allocationSize = 1)
+    private Integer id;
+    
     private String email;
+    
     @JsonIgnore
     private String passwordHash;    // THIS SHOULD BE CHANGED
+
     private String name;
+    
     private Boolean isAdmin;
+    
     private CompanyType companyType;
+    
     private String workPosition;
-    private ArrayList<Interests> interests;
-    private ArrayList<Skills> skills;
-    private ArrayList<Skills> skillGap;
+    
+    @ElementCollection(targetClass = Interests.class)
+    @Enumerated(EnumType.STRING)
+    private List<Interests> interests;
+
+    @ElementCollection(targetClass = Skills.class)
+    @Enumerated(EnumType.STRING)
+    private List<Skills> skills;
+
+    @ElementCollection(targetClass = Skills.class)
+    @Enumerated(EnumType.STRING)
+    private List<Skills> skillGap;
+    
     private Integer points;
-    private ArrayList<Integer> favoriteCourses;
+
+    @ElementCollection
+    private List<Integer> favoriteCourses;
+
+    @OneToMany(mappedBy = "user")
+    private List<Payment> payments;
 }
 
