diff --git a/JavaTests/src/main/java/Main.java b/JavaTests/src/main/java/Main.java
new file mode 100644
index 0000000000000000000000000000000000000000..8a352abe186ea29ff28e99dae1e637f3bdac8757
--- /dev/null
+++ b/JavaTests/src/main/java/Main.java
@@ -0,0 +1,15 @@
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.util.LinkedList;
+
+public class Main {
+
+    public static void main(String[] args) {
+
+        LinkedList<Integer>
+
+    }
+
+
+}
diff --git a/sth-backend/src/main/java/hdm/mi/sthbackend/SthBackendApplication.java b/sth-backend/src/main/java/hdm/mi/sthbackend/SthBackendApplication.java
index 17abe0de7697134018c5f7375a885dd483304bfc..8d4c0496632e532ecafe1d7f0b94a7ade8463cb4 100644
--- a/sth-backend/src/main/java/hdm/mi/sthbackend/SthBackendApplication.java
+++ b/sth-backend/src/main/java/hdm/mi/sthbackend/SthBackendApplication.java
@@ -22,32 +22,10 @@ public class SthBackendApplication {
 
 	@Autowired
 	ITournamentRepository tournamentRepository;
-	@Autowired
-	IPlayerRepository playerRepository;
-	@Autowired
-	IMatchRepository matchRepository;
-	@Autowired
-	ITeamRepository teamRepository;
 
 	public static void main(String[] args) {
 		SpringApplication.run(SthBackendApplication.class, args);
 
 	}
 
-
-	@Bean
-	public CommandLineRunner demo() {
-		return args -> {
-			// Create SimpleObject instances
-			Player player = new Player( UUID.randomUUID(), "Name"	);
-
-			// Insert objects into MongoDB using insert
-
-			playerRepository.save( player );
-
-			// Retrieve and print all objects from MongoDB
-
-			playerRepository.findAll().forEach(System.out::println);
-		};
-	}
 }
diff --git a/sth-backend/src/main/java/hdm/mi/sthbackend/config/SecurityConfig.java b/sth-backend/src/main/java/hdm/mi/sthbackend/config/SecurityConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..14b0a1e66bd4be9d98c0d0622410a18f4b3bc471
--- /dev/null
+++ b/sth-backend/src/main/java/hdm/mi/sthbackend/config/SecurityConfig.java
@@ -0,0 +1,18 @@
+package hdm.mi.sthbackend.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.security.crypto.password.PasswordEncoder;
+import org.springframework.security.web.SecurityFilterChain;
+
+@Configuration
+@EnableWebSecurity
+public class SecurityConfig {
+    @Bean
+    public PasswordEncoder passwordEncoder(){
+        return new BCryptPasswordEncoder();
+    }
+}
diff --git a/sth-backend/src/main/java/hdm/mi/sthbackend/controller/TournamentController.java b/sth-backend/src/main/java/hdm/mi/sthbackend/controller/TournamentController.java
index c2df70671647a585adbc83a1afbcb58f404cbd9b..049b72b3620bbfd8ba45ba2f786600991624bdf0 100644
--- a/sth-backend/src/main/java/hdm/mi/sthbackend/controller/TournamentController.java
+++ b/sth-backend/src/main/java/hdm/mi/sthbackend/controller/TournamentController.java
@@ -11,6 +11,7 @@ import hdm.mi.sthbackend.types.TeamName;
 import hdm.mi.sthbackend.types.TournamentName;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
+import hdm.mi.sthbackend.dto.TournamentDTO.CreateTournamentDTO;
 
 import java.util.Arrays;
 import java.util.List;
@@ -108,8 +109,8 @@ public class TournamentController {
     @PostMapping("/tournaments")
     public Tournament createTournament(@RequestBody CreateTournamentDTO tournament) {
 
-        String tournamentName = tournament.getTournamentName();
-        List<String> teamNames = tournament.getTeamNames();
+        String tournamentName = tournament.tournamentName();
+        List<String> teamNames = tournament.teamNames();
 
         return service.createTournament( new Tournament(tournamentName, teamNames) );
     }
diff --git a/sth-backend/src/main/java/hdm/mi/sthbackend/controller/UserController.java b/sth-backend/src/main/java/hdm/mi/sthbackend/controller/UserController.java
new file mode 100644
index 0000000000000000000000000000000000000000..1c398db624d3232faf9fe993dd3503dad058c413
--- /dev/null
+++ b/sth-backend/src/main/java/hdm/mi/sthbackend/controller/UserController.java
@@ -0,0 +1,36 @@
+package hdm.mi.sthbackend.controller;
+
+import hdm.mi.sthbackend.service.UserService;
+import hdm.mi.sthbackend.types.UserType.UserSignUpType;
+import lombok.AllArgsConstructor;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController("/api/v1/user")
+@AllArgsConstructor
+public class UserController {
+
+    private final Logger log = LogManager.getLogger(this.getClass().getSimpleName());
+    private final UserService userService;
+
+    @PostMapping("/signup")
+    public void signUpUser(@RequestBody UserSignUpType userSignUpType) {
+        log.debug("Signing up user: " + userSignUpType);
+        userService.signUpUser(userSignUpType);
+    }
+    @PostMapping("/signin")
+    public void signInUser() {
+
+    }
+    public void confirmUser() {
+
+    }
+    public void deleteUser() {
+
+    }
+
+}
diff --git a/sth-backend/src/main/java/hdm/mi/sthbackend/dto/CreateTournamentDTO.java b/sth-backend/src/main/java/hdm/mi/sthbackend/dto/CreateTournamentDTO.java
deleted file mode 100644
index 849a47d882e90db86d32bd0f24f3a7dcfb87f139..0000000000000000000000000000000000000000
--- a/sth-backend/src/main/java/hdm/mi/sthbackend/dto/CreateTournamentDTO.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package hdm.mi.sthbackend.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.List;
-
-@Getter
-@Setter
-@AllArgsConstructor
-public class CreateTournamentDTO {
-
-    private String tournamentName;
-    private List<String> teamNames;
-
-}
diff --git a/sth-backend/src/main/java/hdm/mi/sthbackend/dto/TournamentDTO.java b/sth-backend/src/main/java/hdm/mi/sthbackend/dto/TournamentDTO.java
index b51fb0d9514ae236057144584261d5d8f97f2112..8007c2caa78b76fbb12a6d00f6536f90f602f6b6 100644
--- a/sth-backend/src/main/java/hdm/mi/sthbackend/dto/TournamentDTO.java
+++ b/sth-backend/src/main/java/hdm/mi/sthbackend/dto/TournamentDTO.java
@@ -20,4 +20,7 @@ public class TournamentDTO {
     private String tournamentName;
     private Map<UUID, MatchDTO> matches;
     private Map<UUID, TeamDTO> teams;
+
+    public record CreateTournamentDTO( String tournamentName, List<String> teamNames) {}
+
 }
diff --git a/sth-backend/src/main/java/hdm/mi/sthbackend/model/ConfirmationToken.java b/sth-backend/src/main/java/hdm/mi/sthbackend/model/ConfirmationToken.java
new file mode 100644
index 0000000000000000000000000000000000000000..0b139ce321cea7200f515e0f7ed007443daecc47
--- /dev/null
+++ b/sth-backend/src/main/java/hdm/mi/sthbackend/model/ConfirmationToken.java
@@ -0,0 +1,6 @@
+package hdm.mi.sthbackend.model;
+
+public class ConfirmationToken {
+
+
+}
diff --git a/sth-backend/src/main/java/hdm/mi/sthbackend/model/User.java b/sth-backend/src/main/java/hdm/mi/sthbackend/model/User.java
index 238a06111a99a553f8d72be5068c77d9b970ed0e..5e074d1f23384fea8bd5cdf0b7ef3606eed0569e 100644
--- a/sth-backend/src/main/java/hdm/mi/sthbackend/model/User.java
+++ b/sth-backend/src/main/java/hdm/mi/sthbackend/model/User.java
@@ -1,16 +1,28 @@
 package hdm.mi.sthbackend.model;
 
+import lombok.AllArgsConstructor;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.springframework.data.mongodb.core.mapping.Document;
 
+import java.time.LocalDateTime;
+import java.util.Date;
 import java.util.Map;
 import java.util.UUID;
 
+@Document("User")
+@AllArgsConstructor
 public class User {
     private final Logger log = LogManager.getLogger("User");
 
     private UUID userId;
-    private String name;
+    private String username;
+    private String email;
+    private String password;
+    private boolean valid;
+    private LocalDateTime creationDate;
+    private LocalDateTime lastLoginDate;
+    private String sessionToken;
     private Map<UUID, Tournament> tournaments;
 
 }
diff --git a/sth-backend/src/main/java/hdm/mi/sthbackend/model/UserProfile.java b/sth-backend/src/main/java/hdm/mi/sthbackend/model/UserProfile.java
new file mode 100644
index 0000000000000000000000000000000000000000..efbcbb2cca07a1505741e60e9cd6074340f0c3f7
--- /dev/null
+++ b/sth-backend/src/main/java/hdm/mi/sthbackend/model/UserProfile.java
@@ -0,0 +1,11 @@
+package hdm.mi.sthbackend.model;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+public class UserProfile {
+    private String firstName;
+    private String lastName;
+    private String profilePicture;
+
+}
diff --git a/sth-backend/src/main/java/hdm/mi/sthbackend/repository/IConfirmationTokenRepository.java b/sth-backend/src/main/java/hdm/mi/sthbackend/repository/IConfirmationTokenRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..c1717e1d866e7a4a2a4359b88dac9d29f5729ae5
--- /dev/null
+++ b/sth-backend/src/main/java/hdm/mi/sthbackend/repository/IConfirmationTokenRepository.java
@@ -0,0 +1,9 @@
+package hdm.mi.sthbackend.repository;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+public class IConfirmationTokenRepository {
+
+
+}
diff --git a/sth-backend/src/main/java/hdm/mi/sthbackend/repository/IUserRepository.java b/sth-backend/src/main/java/hdm/mi/sthbackend/repository/IUserRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..e1e13784a4d1f1d0164ff08dfbd886351cfd1823
--- /dev/null
+++ b/sth-backend/src/main/java/hdm/mi/sthbackend/repository/IUserRepository.java
@@ -0,0 +1,11 @@
+package hdm.mi.sthbackend.repository;
+
+import hdm.mi.sthbackend.model.User;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.stereotype.Repository;
+
+import java.util.UUID;
+
+@Repository
+public interface IUserRepository extends MongoRepository<User, UUID> {
+}
diff --git a/sth-backend/src/main/java/hdm/mi/sthbackend/service/ConfirmationTokenService.java b/sth-backend/src/main/java/hdm/mi/sthbackend/service/ConfirmationTokenService.java
new file mode 100644
index 0000000000000000000000000000000000000000..3fc4a5bb2c59823543c4d7f447e953db2d5d57b0
--- /dev/null
+++ b/sth-backend/src/main/java/hdm/mi/sthbackend/service/ConfirmationTokenService.java
@@ -0,0 +1,11 @@
+package hdm.mi.sthbackend.service;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ConfirmationTokenService {
+
+
+}
diff --git a/sth-backend/src/main/java/hdm/mi/sthbackend/service/EmailService.java b/sth-backend/src/main/java/hdm/mi/sthbackend/service/EmailService.java
new file mode 100644
index 0000000000000000000000000000000000000000..40f1ddec1b21efa244abea66aa051f83ba3e5781
--- /dev/null
+++ b/sth-backend/src/main/java/hdm/mi/sthbackend/service/EmailService.java
@@ -0,0 +1,22 @@
+package hdm.mi.sthbackend.service;
+
+import lombok.AllArgsConstructor;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.stereotype.Service;
+
+@AllArgsConstructor
+@Service
+public class EmailService implements IEmailService{
+
+    private final Logger log = LogManager.getLogger(this.getClass()
+            .getSimpleName());
+
+    public void send(String to, String subject, String body) {
+        log.debug("Sending email to: " + to);
+        log.debug("Subject: " + subject);
+        log.debug("Body: " + body);
+    }
+
+
+}
diff --git a/sth-backend/src/main/java/hdm/mi/sthbackend/service/IEmailService.java b/sth-backend/src/main/java/hdm/mi/sthbackend/service/IEmailService.java
new file mode 100644
index 0000000000000000000000000000000000000000..6ff3176690771d84466fc2e826c8638555db7973
--- /dev/null
+++ b/sth-backend/src/main/java/hdm/mi/sthbackend/service/IEmailService.java
@@ -0,0 +1,8 @@
+package hdm.mi.sthbackend.service;
+
+import org.springframework.context.annotation.Bean;
+
+public interface IEmailService {
+
+    void send(String to, String subject, String body);
+}
diff --git a/sth-backend/src/main/java/hdm/mi/sthbackend/service/UserService.java b/sth-backend/src/main/java/hdm/mi/sthbackend/service/UserService.java
new file mode 100644
index 0000000000000000000000000000000000000000..8140192f88b22566d10d651dddc82cd10ddd655f
--- /dev/null
+++ b/sth-backend/src/main/java/hdm/mi/sthbackend/service/UserService.java
@@ -0,0 +1,45 @@
+package hdm.mi.sthbackend.service;
+
+import hdm.mi.sthbackend.model.User;
+import hdm.mi.sthbackend.repository.IUserRepository;
+import hdm.mi.sthbackend.types.UserType.UserSignUpType;
+import lombok.AllArgsConstructor;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.security.crypto.password.PasswordEncoder;
+import org.springframework.stereotype.Service;
+
+@Service
+@AllArgsConstructor
+public class UserService {
+
+    private final Logger log = LogManager.getLogger(this.getClass()
+            .getSimpleName());
+
+    private final IUserRepository userRepository;
+    private final PasswordEncoder passwordEncoder;
+    private final IEmailService emailService;
+    private final ConfirmationTokenService confirmationTokenService;
+
+
+    public void signUpUser(UserSignUpType user){
+
+
+    }
+    public void signInUser(User user){
+
+    }
+    public void confirmToken(String token){
+
+    }
+    public void deleteUser(User user){
+
+    }
+    public void verifyUser(User user){
+
+    }
+
+
+
+
+}
diff --git a/sth-backend/src/main/java/hdm/mi/sthbackend/types/UserType.java b/sth-backend/src/main/java/hdm/mi/sthbackend/types/UserType.java
new file mode 100644
index 0000000000000000000000000000000000000000..a9e0ce8c76cc2e33f27ccd441824b4ff664e99f6
--- /dev/null
+++ b/sth-backend/src/main/java/hdm/mi/sthbackend/types/UserType.java
@@ -0,0 +1,12 @@
+package hdm.mi.sthbackend.types;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+public record UserType(String email) {
+    public record UserSignUpType(String email, String password){}
+
+
+
+}
+