diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/model/Role.java b/src/main/java/no/ntnu/idi/stud/savingsapp/model/Role.java
deleted file mode 100644
index e9b82c3f56b9faa7b980f0375e9a68e6316107b0..0000000000000000000000000000000000000000
--- a/src/main/java/no/ntnu/idi/stud/savingsapp/model/Role.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package no.ntnu.idi.stud.savingsapp.model;
-
-public enum Role {
-
-  USER,
-
-  ADMIN
-}
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/model/bank/Account.java b/src/main/java/no/ntnu/idi/stud/savingsapp/model/bank/Account.java
new file mode 100644
index 0000000000000000000000000000000000000000..7503fe5fc1a8d9fad314e26914901a03cdac82e7
--- /dev/null
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/model/bank/Account.java
@@ -0,0 +1,26 @@
+package no.ntnu.idi.stud.savingsapp.model.bank;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@Table(name = "account")
+public class Account {
+
+  @Id
+  @GeneratedValue(strategy = GenerationType.IDENTITY)
+  @Column(name = "account_id")
+  private Long id;
+
+
+}
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/model/savings/DailyChallengeProgress.java b/src/main/java/no/ntnu/idi/stud/savingsapp/model/savings/DailyChallengeProgress.java
new file mode 100644
index 0000000000000000000000000000000000000000..cbe32c81d658f4d1608b8deeb55e5f00d03ff3d4
--- /dev/null
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/model/savings/DailyChallengeProgress.java
@@ -0,0 +1,34 @@
+package no.ntnu.idi.stud.savingsapp.model.savings;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
+import java.sql.Timestamp;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.NonNull;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Entity
+@Table(name = "daily_challenge_progresss")
+public class DailyChallengeProgress {
+
+  @Id()
+  @GeneratedValue(strategy = GenerationType.IDENTITY)
+  @Column(name = "daily_challenge_progess_id")
+  private Long id;
+
+  @NonNull
+  @Column(name = "challenge_day", nullable = false)
+  private int challengeDay;
+
+  @NonNull
+  @Column(name = "completed_at", nullable = false)
+  private Timestamp completedAt;
+}
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/model/savings/DifficultyLevel.java b/src/main/java/no/ntnu/idi/stud/savingsapp/model/savings/DifficultyLevel.java
new file mode 100644
index 0000000000000000000000000000000000000000..b4b952ff2ca7013ed8b4cdacb5a7e63d9ac3fedb
--- /dev/null
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/model/savings/DifficultyLevel.java
@@ -0,0 +1,37 @@
+package no.ntnu.idi.stud.savingsapp.model.savings;
+
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import java.util.List;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.NonNull;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@Table(name = "difficulty_level")
+public class DifficultyLevel {
+
+  @Id
+  @GeneratedValue(strategy = GenerationType.IDENTITY)
+  @Column(name = "difficulty_level_id")
+  private Long id;
+
+  @NonNull
+  @Column(name = "difficulty_level_text", nullable = false)
+  private String diffucultyLevelText;
+
+  @OneToMany(cascade = CascadeType.ALL)
+  @JoinColumn(name = "difficulty_level_id")
+  private List<SavingChallenge> savingChallengeList;
+}
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/model/savings/SavingChallenge.java b/src/main/java/no/ntnu/idi/stud/savingsapp/model/savings/SavingChallenge.java
new file mode 100644
index 0000000000000000000000000000000000000000..38f07fd94259145fb5df289403b99d03c043aeb4
--- /dev/null
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/model/savings/SavingChallenge.java
@@ -0,0 +1,44 @@
+package no.ntnu.idi.stud.savingsapp.model.savings;
+
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import java.util.List;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.NonNull;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@Table(name = "saving_challenge")
+public class SavingChallenge {
+
+
+  @Id
+  @GeneratedValue(strategy = GenerationType.IDENTITY)
+  @Column(name = "saving_challenge_id")
+  private Long id;
+
+  @NonNull
+  @Column(name = "saving_challenge_text", nullable = false)
+  private String savingChallengeText;
+
+  @NonNull
+  @Column(name = "potential_saving_amount", nullable = false)
+  private int potentialSavingAmount;
+
+  @NonNull
+  @Column(name = "points", nullable = false)
+  private int points;
+
+  @OneToMany(cascade = CascadeType.ALL)
+  private List<DailyChallengeProgress> dailyChallengeProgressList;
+}
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/model/savings/SavingGoal.java b/src/main/java/no/ntnu/idi/stud/savingsapp/model/savings/SavingGoal.java
new file mode 100644
index 0000000000000000000000000000000000000000..86728fe341a8ddea3e37964c38d1230989f354fc
--- /dev/null
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/model/savings/SavingGoal.java
@@ -0,0 +1,54 @@
+package no.ntnu.idi.stud.savingsapp.model.savings;
+
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import java.sql.Timestamp;
+import java.util.List;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.NonNull;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@Table(name = "saving_goal")
+public class SavingGoal {
+
+  @Id
+  @GeneratedValue(strategy = GenerationType.IDENTITY)
+  @Column(name = "saving_goal_id")
+  private Long id;
+
+  @NonNull
+  @Column(name = "saving_goal_name", nullable = false)
+  private String savingGoalName;
+
+  @NonNull
+  @Column(name = "target_amount", nullable = false)
+  private int targetAmount;
+
+  @NonNull
+  @Column(name = "target_date", nullable = false)
+  private Timestamp targetDate;
+
+  @NonNull
+  @Column(name = "completed_at", nullable = false)
+  private Timestamp completedAt;
+
+  @NonNull
+  @Column(name = "created_at", nullable = false)
+  private Timestamp createdAt;
+
+  @OneToMany(cascade = CascadeType.ALL)
+  @JoinColumn(name = "saving_goal_id")
+  private List<SavingChallenge> savingChallenges;
+}
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/Badge.java b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/Badge.java
new file mode 100644
index 0000000000000000000000000000000000000000..058bda0db574fa5a84c704ba6ec23b853e5bf1ea
--- /dev/null
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/Badge.java
@@ -0,0 +1,39 @@
+package no.ntnu.idi.stud.savingsapp.model.user;
+
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import java.util.List;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.NonNull;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Entity
+@Table(name = "badge")
+public class Badge {
+
+  @Id
+  @GeneratedValue(strategy = GenerationType.IDENTITY)
+  @Column(name = "badge_id")
+  private Long id;
+
+  @NonNull
+  @Column(name = "badge_name", nullable = false)
+  private String badgeName;
+
+  @NonNull
+  @Column(name = "criteria", nullable = false)
+  private String criteria;
+
+  @OneToMany(cascade = CascadeType.ALL, mappedBy = "badge")
+  private List<BadgeUser> badgeUserList;
+}
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/BadgeUser.java b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/BadgeUser.java
new file mode 100644
index 0000000000000000000000000000000000000000..750eb872ba58570641f774960dd3e6b963ba45ed
--- /dev/null
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/BadgeUser.java
@@ -0,0 +1,39 @@
+package no.ntnu.idi.stud.savingsapp.model.user;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.Table;
+import java.sql.Timestamp;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Entity
+@Table(name = "badge_user")
+public class BadgeUser {
+
+  @Id
+  @GeneratedValue(strategy = GenerationType.IDENTITY)
+  @Column(name = "badge_user_id")
+  private Long id;
+
+  @ManyToOne
+  @JoinColumn(name = "badge_id")
+  private Badge badge;
+
+
+  @ManyToOne
+  @JoinColumn(name = "user_id")
+  private User user;
+
+  @Column(name = "earned_at")
+  private Timestamp earnedAt;
+}
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/FriendList.java b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/FriendList.java
new file mode 100644
index 0000000000000000000000000000000000000000..d7371c376cb8950506e4fbf6c3bd2824d504bf7e
--- /dev/null
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/FriendList.java
@@ -0,0 +1,26 @@
+package no.ntnu.idi.stud.savingsapp.model.user;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import java.sql.Timestamp;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.NonNull;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class FriendList {
+
+  @EmbeddedId
+  private FriendListId id;
+
+  @NonNull
+  @Column(name = "status", nullable = false)
+  private String status;
+
+  @NonNull
+  @Column(name = "created_at")
+  private Timestamp createdAt;
+}
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/FriendListId.java b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/FriendListId.java
new file mode 100644
index 0000000000000000000000000000000000000000..5644c8672cfab4821b7fb2524a1cce1d044b450e
--- /dev/null
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/FriendListId.java
@@ -0,0 +1,17 @@
+package no.ntnu.idi.stud.savingsapp.model.user;
+
+import jakarta.persistence.Embeddable;
+import java.io.Serializable;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Embeddable
+public class FriendListId implements Serializable {
+
+  private Long userId;
+  private Long friendId;
+}
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/Point.java b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/Point.java
new file mode 100644
index 0000000000000000000000000000000000000000..c2d1e88753eedb7d024915c32827446fe7947e9b
--- /dev/null
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/Point.java
@@ -0,0 +1,33 @@
+package no.ntnu.idi.stud.savingsapp.model.user;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.OneToOne;
+import jakarta.persistence.Table;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.NonNull;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@Table(name = "points")
+public class Point {
+
+  @Id
+  @OneToOne
+  @JoinColumn(name = "user_id", nullable = false)
+  private User user;
+
+  @NonNull
+  @Column(name = "current_points", nullable = false)
+  private int currentPoints;
+
+  @NonNull
+  @Column(name = "total_earned_points", nullable = false)
+  private int totalEarnedPoints;
+}
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/ProfilePicture.java b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/ProfilePicture.java
new file mode 100644
index 0000000000000000000000000000000000000000..8e413a92113e8bd1a4db4880b21c72f4917b0388
--- /dev/null
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/ProfilePicture.java
@@ -0,0 +1,35 @@
+package no.ntnu.idi.stud.savingsapp.model.user;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.NonNull;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@Table(name = "profile_picture")
+public class ProfilePicture {
+
+  @Id
+  @GeneratedValue(strategy = GenerationType.IDENTITY)
+  @Column(name = "profile_picture_id")
+  private Long id;
+
+  @NonNull
+  @Column(name = "description", nullable = false)
+  private String description;
+
+  @NonNull
+  @Column(name = "price", nullable = false)
+  private int price;
+
+
+}
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/ProfilePictureUser.java b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/ProfilePictureUser.java
new file mode 100644
index 0000000000000000000000000000000000000000..8851762de555bcdf2bb3ed2eed164314666ed2ac
--- /dev/null
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/ProfilePictureUser.java
@@ -0,0 +1,36 @@
+package no.ntnu.idi.stud.savingsapp.model.user;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.Table;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Entity
+@Table(name = "profile_picture_user")
+public class ProfilePictureUser {
+
+  @Id
+  @GeneratedValue(strategy = GenerationType.IDENTITY)
+  @Column(name = "profile_picture_user_id")
+  private Long id;
+
+  @ManyToOne
+  @JoinColumn(name = "user_id")
+  private User user;
+
+  @ManyToOne
+  @JoinColumn(name = "profile_picture_id")
+  private ProfilePicture profilePicture;
+
+  private boolean inUse;
+}
\ No newline at end of file
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/Role.java b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/Role.java
new file mode 100644
index 0000000000000000000000000000000000000000..5f674d0ba74dce0f78fe133a3b0cf420e68f0e44
--- /dev/null
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/Role.java
@@ -0,0 +1,8 @@
+package no.ntnu.idi.stud.savingsapp.model.user;
+
+public enum Role {
+
+  USER,
+
+  ADMIN
+}
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/Streak.java b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/Streak.java
new file mode 100644
index 0000000000000000000000000000000000000000..6212b1a8ad128b2e08092b68931344236b4854d6
--- /dev/null
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/Streak.java
@@ -0,0 +1,47 @@
+package no.ntnu.idi.stud.savingsapp.model.user;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.OneToOne;
+import jakarta.persistence.Table;
+import java.sql.Timestamp;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.NonNull;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@Table(name = "streak")
+public class Streak {
+
+  @Id
+  @OneToOne
+  @JoinColumn(name = "user_id", unique = true)
+  private User user;
+
+  @NonNull
+  @Column(name = "current_streak", nullable = false)
+  private int currentStreak;
+
+  @NonNull
+  @Column(name = "current_streak_created_at", nullable = false)
+  private Timestamp currentStreakCreatedAt;
+
+  @NonNull
+  @Column(name = "current_streak_updated_at", nullable = false)
+  private Timestamp currentStreakUpdatedAt;
+
+  @NonNull
+  @Column(name = "highest_streak", nullable = false)
+  private int highestStreak;
+
+  @NonNull
+  @Column(name = "highest_streak_ended_at")
+  private Timestamp highestStreakEndedAt;
+
+}
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/model/User.java b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/User.java
similarity index 61%
rename from src/main/java/no/ntnu/idi/stud/savingsapp/model/User.java
rename to src/main/java/no/ntnu/idi/stud/savingsapp/model/user/User.java
index d95124ac7857bb9a64f8a397e48d9f4e78104d55..9d2c47d7cbc671346a4623ea99bd461f181faa7c 100644
--- a/src/main/java/no/ntnu/idi/stud/savingsapp/model/User.java
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/User.java
@@ -1,6 +1,6 @@
-package no.ntnu.idi.stud.savingsapp.model;
+package no.ntnu.idi.stud.savingsapp.model.user;
 
-import jakarta.annotation.Nonnull;
+import jakarta.persistence.CascadeType;
 import jakarta.persistence.Column;
 import jakarta.persistence.Entity;
 import jakarta.persistence.EnumType;
@@ -8,6 +8,12 @@ import jakarta.persistence.Enumerated;
 import jakarta.persistence.GeneratedValue;
 import jakarta.persistence.GenerationType;
 import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.JoinTable;
+import jakarta.persistence.ManyToMany;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.OneToOne;
+import jakarta.persistence.PrimaryKeyJoinColumn;
 import jakarta.persistence.Table;
 import java.util.Collection;
 import java.util.Date;
@@ -16,6 +22,8 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NonNull;
+import no.ntnu.idi.stud.savingsapp.model.bank.Account;
+import no.ntnu.idi.stud.savingsapp.model.savings.SavingGoal;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.authority.SimpleGrantedAuthority;
 import org.springframework.security.core.userdetails.UserDetails;
@@ -29,6 +37,7 @@ public class User implements UserDetails{
 
   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
+  @Column(name = "user_id")
   private Long id;
 
   @NonNull
@@ -43,17 +52,39 @@ public class User implements UserDetails{
   @Column(name = "email", nullable = false)
   private String email;
 
+  @OneToOne
+  @PrimaryKeyJoinColumn(name = "savings_account")
+  private Account savingsAccount;
+
+  @OneToOne
+  @PrimaryKeyJoinColumn(name = "savings_account")
+  private Account checkingAccount;
+
   @NonNull
   @Column(name = "password", nullable = false)
   private String password;
 
   @NonNull
+  @Column(name = "created_at", nullable = false)
   private Date createdAt;
-  @Nonnull
-  @Enumerated(EnumType.STRING)
 
+  @NonNull
+  @Enumerated(EnumType.STRING)
+  @Column(name = "role", nullable = false)
   private Role role;
 
+  @OneToMany(cascade = CascadeType.ALL)
+  @JoinColumn(name = "user_id")
+  private List<SavingGoal> savingGoal;
+
+  @ManyToMany
+  @JoinTable(name = "badge_user",
+      joinColumns = @JoinColumn(name = "user_id"),
+      inverseJoinColumns = @JoinColumn(name = "badge_id"))
+  private List<Badge> badges;
+
+  @OneToMany(cascade = CascadeType.ALL, mappedBy = "user")
+  private List<BadgeUser> badgeUserList;
   @Override
   public Collection<? extends GrantedAuthority> getAuthorities() {
     return List.of(new SimpleGrantedAuthority(role.name()));
@@ -64,7 +95,6 @@ public class User implements UserDetails{
     return this.email;
   }
 
-
   @Override
   public boolean isAccountNonExpired() {
     return true;
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/configuration/Answer.java b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/configuration/Answer.java
new file mode 100644
index 0000000000000000000000000000000000000000..5781c64b421f3a1486e5a63ec7b5cd3ec08d2369
--- /dev/null
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/configuration/Answer.java
@@ -0,0 +1,29 @@
+package no.ntnu.idi.stud.savingsapp.model.user.configuration;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.NonNull;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@Table(name = "answer")
+public class Answer {
+
+  @Id
+  @GeneratedValue(strategy = GenerationType.IDENTITY)
+  @Column(name = "answer_id")
+  private Long id;
+
+  @NonNull
+  @Column(name = "answer_text", nullable = false)
+  private String answer_text;
+}
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/configuration/Question.java b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/configuration/Question.java
new file mode 100644
index 0000000000000000000000000000000000000000..fef80a403b4f8a494018530d530d1e57e5d13f73
--- /dev/null
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/configuration/Question.java
@@ -0,0 +1,37 @@
+package no.ntnu.idi.stud.savingsapp.model.user.configuration;
+
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import java.util.List;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.NonNull;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@Table(name = "question")
+public class Question {
+
+  @Id
+  @GeneratedValue(strategy = GenerationType.IDENTITY)
+  @Column(name = "question_id")
+  private Long id;
+
+  @NonNull
+  @Column(name = "question_text", nullable = false)
+  private String questionText;
+
+  @OneToMany(cascade = CascadeType.ALL)
+  @JoinColumn(name = "question_id")
+  private List<Answer> answerList;
+}
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/configuration/UserConfiguration.java b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/configuration/UserConfiguration.java
new file mode 100644
index 0000000000000000000000000000000000000000..22c0779fd6a773786fe67ff4f9edc3ec21ae508c
--- /dev/null
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/configuration/UserConfiguration.java
@@ -0,0 +1,25 @@
+package no.ntnu.idi.stud.savingsapp.model.user.configuration;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Table;
+import java.sql.Timestamp;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@Table(name = "user_configuration")
+public class UserConfiguration {
+
+  @EmbeddedId
+  @Column(name = "user_configuration_id")
+  private UserConfigurationId id;
+
+  @Column(name = "updated_at")
+  private Timestamp updatedAt;
+}
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/configuration/UserConfigurationId.java b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/configuration/UserConfigurationId.java
new file mode 100644
index 0000000000000000000000000000000000000000..1eb6394302b899ccd52c7a2a063152ea211672ae
--- /dev/null
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/model/user/configuration/UserConfigurationId.java
@@ -0,0 +1,17 @@
+package no.ntnu.idi.stud.savingsapp.model.user.configuration;
+
+import jakarta.persistence.Embeddable;
+import java.io.Serializable;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Embeddable
+public class UserConfigurationId implements Serializable {
+  private Long userId;
+  private Long questionId;
+  private Long answerId;
+}
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/security/AuthorizationFilter.java b/src/main/java/no/ntnu/idi/stud/savingsapp/security/AuthorizationFilter.java
index 4346b2f96b6e4d60434a81efce43402a3b8f0881..0c92e67b2f39086735b7b6a16fab54a1f9823bca 100644
--- a/src/main/java/no/ntnu/idi/stud/savingsapp/security/AuthorizationFilter.java
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/security/AuthorizationFilter.java
@@ -9,7 +9,7 @@ import jakarta.servlet.FilterChain;
 import jakarta.servlet.ServletException;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
-import no.ntnu.idi.stud.savingsapp.model.Role;
+import no.ntnu.idi.stud.savingsapp.model.user.Role;
 import no.ntnu.idi.stud.savingsapp.properties.TokenProperties;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/utils/TokenUtils.java b/src/main/java/no/ntnu/idi/stud/savingsapp/utils/TokenUtils.java
index 8f63af5e57435077dce77134d4e4502728a317b2..bc74e206f53abb69dc958944df3699133c9d4eb0 100644
--- a/src/main/java/no/ntnu/idi/stud/savingsapp/utils/TokenUtils.java
+++ b/src/main/java/no/ntnu/idi/stud/savingsapp/utils/TokenUtils.java
@@ -2,7 +2,7 @@ package no.ntnu.idi.stud.savingsapp.utils;
 
 import com.auth0.jwt.JWT;
 import com.auth0.jwt.algorithms.Algorithm;
-import no.ntnu.idi.stud.savingsapp.model.User;
+import no.ntnu.idi.stud.savingsapp.model.user.User;
 import no.ntnu.idi.stud.savingsapp.properties.TokenProperties;
 import org.springframework.stereotype.Component;
 
@@ -23,7 +23,7 @@ public final class TokenUtils {
    */
   public static String generateToken(final User user) {
     final Instant now = Instant.now();
-    final Algorithm hmac512 = Algorithm.HMAC512(TokenProperties.SECRET);;
+    final Algorithm hmac512 = Algorithm.HMAC512(TokenProperties.SECRET);
     return JWT.create()
         .withSubject(String.valueOf(user.getId()))
         .withClaim("user_role", user.getRole().name())