Index: src/main/java/com/example/salonbella/controller/DefaultController.java
===================================================================
--- src/main/java/com/example/salonbella/controller/DefaultController.java	(revision 74af3946a75d5e098b56a553852617e1cea48bee)
+++ src/main/java/com/example/salonbella/controller/DefaultController.java	(revision 74af3946a75d5e098b56a553852617e1cea48bee)
@@ -0,0 +1,13 @@
+package com.example.salonbella.controller;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+
+@Controller
+public class DefaultController {
+
+    @GetMapping("/index")
+    public String getDefaultPage() {
+        return "index";
+    }
+}
Index: src/main/java/com/example/salonbella/controller/login/LoginController.java
===================================================================
--- src/main/java/com/example/salonbella/controller/login/LoginController.java	(revision 74af3946a75d5e098b56a553852617e1cea48bee)
+++ src/main/java/com/example/salonbella/controller/login/LoginController.java	(revision 74af3946a75d5e098b56a553852617e1cea48bee)
@@ -0,0 +1,35 @@
+package com.example.salonbella.controller.login;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.Map;
+
+@Controller
+public class LoginController {
+
+
+    @GetMapping("/login")
+    public String getLoginPage(@RequestParam Map<String, String> allParams, Model model) {
+        for (String s : allParams.keySet()) {
+            if (s.equals("error")) {
+                model.addAttribute("message", "Invalid username/password");
+                return "login";
+            }
+        }
+        return "login";
+    }
+
+    @GetMapping("/userDashboard")
+    public String getUserPage() {
+        return "user-page";
+    }
+
+    @GetMapping("/adminDashboard")
+    public String getAdminPage() {
+        return "admin-page";
+    }
+}
Index: src/main/java/com/example/salonbella/controller/register/RegisterController.java
===================================================================
--- src/main/java/com/example/salonbella/controller/register/RegisterController.java	(revision 74af3946a75d5e098b56a553852617e1cea48bee)
+++ src/main/java/com/example/salonbella/controller/register/RegisterController.java	(revision 74af3946a75d5e098b56a553852617e1cea48bee)
@@ -0,0 +1,41 @@
+package com.example.salonbella.controller.register;
+
+import com.example.salonbella.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+@Controller
+@RequestMapping("/register")
+public class RegisterController {
+
+    private final UserService userService;
+
+    @Autowired
+    public RegisterController(UserService userService) {
+        this.userService = userService;
+    }
+
+    @GetMapping
+    public String getRegisterPage() {
+        return "register";
+    }
+
+    @PostMapping
+    public String registerRequest(RegisterRequest registerRequest, Model model) {
+        if (userService.checkEmailExists(registerRequest.getEmail())) {
+            model.addAttribute("email", "Email already exists");
+            return "register";
+        }
+
+        if (userService.checkUsernameExists(registerRequest.getUsername())) {
+            model.addAttribute("username", "Username already exists");
+            return "register";
+        }
+        userService.registerNewUser(registerRequest);
+        return "redirect:/login";
+    }
+}
Index: src/main/java/com/example/salonbella/controller/register/RegisterRequest.java
===================================================================
--- src/main/java/com/example/salonbella/controller/register/RegisterRequest.java	(revision 74af3946a75d5e098b56a553852617e1cea48bee)
+++ src/main/java/com/example/salonbella/controller/register/RegisterRequest.java	(revision 74af3946a75d5e098b56a553852617e1cea48bee)
@@ -0,0 +1,67 @@
+package com.example.salonbella.controller.register;
+
+public class RegisterRequest {
+    private String name;
+    private String surname;
+    private String number;
+    private String email;
+    private String username;
+    private String password;
+
+    public RegisterRequest(String name, String surname, String number, String email, String username, String password) {
+        this.name = name;
+        this.surname = surname;
+        this.number = number;
+        this.email = email;
+        this.username = username;
+        this.password = password;
+    }
+
+    public String getNumber() {
+        return number;
+    }
+
+    public void setNumber(String number) {
+        this.number = number;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public void setSurname(String surname) {
+        this.surname = surname;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public String getSurname() {
+        return surname;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+}
Index: src/main/java/com/example/salonbella/controller/token/TokenController.java
===================================================================
--- src/main/java/com/example/salonbella/controller/token/TokenController.java	(revision 74af3946a75d5e098b56a553852617e1cea48bee)
+++ src/main/java/com/example/salonbella/controller/token/TokenController.java	(revision 74af3946a75d5e098b56a553852617e1cea48bee)
@@ -0,0 +1,24 @@
+package com.example.salonbella.controller.token;
+
+import com.example.salonbella.service.mail.ConfirmationTokenService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+@Controller
+public class TokenController {
+
+    private final ConfirmationTokenService confirmationTokenService;
+
+    @Autowired
+    public TokenController(ConfirmationTokenService confirmationTokenService) {
+        this.confirmationTokenService = confirmationTokenService;
+    }
+
+    @GetMapping("/confirm")
+    public String confirmToken(@RequestParam("token") String token) throws Exception {
+        confirmationTokenService.confirmToken(token);
+        return "redirect:/login";
+    }
+}
