Index: src/main/java/com/example/moviezone/model/exceptions/PasswordsDoNotMatchException.java
===================================================================
--- src/main/java/com/example/moviezone/model/exceptions/PasswordsDoNotMatchException.java	(revision e097c1c6c43a727b92186eb295379adfa56c8a77)
+++ src/main/java/com/example/moviezone/model/exceptions/PasswordsDoNotMatchException.java	(revision e097c1c6c43a727b92186eb295379adfa56c8a77)
@@ -0,0 +1,8 @@
+package com.example.moviezone.model.exceptions;
+
+ public class PasswordsDoNotMatchException extends RuntimeException {
+
+     public PasswordsDoNotMatchException() {
+         super("Passwords do not match exception.");
+     }
+ }
Index: src/main/java/com/example/moviezone/service/Impl/UserServiceImpl.java
===================================================================
--- src/main/java/com/example/moviezone/service/Impl/UserServiceImpl.java	(revision 6032d442b3648e563c7c5135f50508bd53fa7052)
+++ src/main/java/com/example/moviezone/service/Impl/UserServiceImpl.java	(revision e097c1c6c43a727b92186eb295379adfa56c8a77)
@@ -4,4 +4,5 @@
 import com.example.moviezone.model.User;
 import com.example.moviezone.model.Worker;
+import com.example.moviezone.model.exceptions.PasswordsDoNotMatchException;
 import com.example.moviezone.model.exceptions.UserNotFoundException;
 import com.example.moviezone.repository.UserRepository;
@@ -39,5 +40,8 @@
 
     @Override
-    public User register(String first_name, String last_name, String username, String email, String number, String password, String role) {
+    public User register(String first_name, String last_name, String username, String email, String number, String password,String repeatedPassword, String role) {
+       if(!password.equals(repeatedPassword))
+           throw new PasswordsDoNotMatchException();
+       else
         if(role.equals("worker"))
         {
Index: src/main/java/com/example/moviezone/service/UserService.java
===================================================================
--- src/main/java/com/example/moviezone/service/UserService.java	(revision 6032d442b3648e563c7c5135f50508bd53fa7052)
+++ src/main/java/com/example/moviezone/service/UserService.java	(revision e097c1c6c43a727b92186eb295379adfa56c8a77)
@@ -10,5 +10,5 @@
     User findByUsername(String username);
 
-  User register(String first_name, String last_name,String username, String email, String number, String password, String role);
+  User register(String first_name, String last_name,String username, String email, String number, String password,String repeatedPassword, String role);
     User login(String username,String password);
 }
Index: src/main/java/com/example/moviezone/web/HomeController.java
===================================================================
--- src/main/java/com/example/moviezone/web/HomeController.java	(revision 6032d442b3648e563c7c5135f50508bd53fa7052)
+++ src/main/java/com/example/moviezone/web/HomeController.java	(revision e097c1c6c43a727b92186eb295379adfa56c8a77)
@@ -2,9 +2,16 @@
 
 
+import com.example.moviezone.model.User;
+import com.example.moviezone.model.exceptions.UserNotFoundException;
 import com.example.moviezone.service.FilmService;
+import com.example.moviezone.service.UserService;
 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;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import javax.servlet.http.HttpSession;
 
 @Controller
@@ -13,7 +20,9 @@
 
 private final FilmService filmService;
+private final UserService userService;
 
-    public HomeController(FilmService filmService) {
+    public HomeController(FilmService filmService, UserService userService) {
         this.filmService = filmService;
+        this.userService = userService;
     }
 
@@ -24,5 +33,47 @@
     }
 
-    
+    @GetMapping("/login")
+    public String getLoginPage(Model model)
+    {
+        model.addAttribute("bodyContent", "login");
+        return "master-template";
+    }
+
+    @GetMapping("/register")
+    public String getRegisterPage(Model model)
+    {
+        model.addAttribute("bodyContent", "register");
+        return "master-template";
+    }
+
+    @PostMapping("/login")
+    public String login(@RequestParam String username,@RequestParam String password,Model model, HttpSession session)
+    {
+        User user = null;
+        try {
+            user=userService.login(username,password);
+            session.setAttribute("sessionUser",user);
+            model.addAttribute("user",user);
+            return "redirect:/home";
+
+        }catch (UserNotFoundException e)
+        {
+            model.addAttribute("hasError", true);
+            model.addAttribute("error", e.getMessage());
+            return "login";
+        }
+
+    }
+
+    @PostMapping("register")
+    public String register(@RequestParam String username, @RequestParam String first_name, @RequestParam String last_name,
+                         @RequestParam String password, @RequestParam String repeatedPassword,
+                         @RequestParam String email, @RequestParam String number,
+                         @RequestParam String role)
+    {
+        User user = null;
+            user=userService.register(first_name,last_name,username,email,number,password,repeatedPassword,role);
+            return "redirect:/login";
+    }
 
 }
