diff --git a/README.md b/README.md
index 1996b3839aff31240259e18cec8981e8862ab760..cab1befff643c04ca54f1d2300325305ca02f662 100644
--- a/README.md
+++ b/README.md
@@ -12,8 +12,27 @@ Sprint 1
 * Front-End templates
 * Created unit test
 
+Sprint 2
+* Project
+* Project Page dan Links
+* Admin Authorization
+* Todo List
+
+Sprint 3
+* Forum & Comment
+* Notifikasi User
+* Halaman Profile
+
 ## Changes :
 Sprint 1
 * Set up sonarqube
 * Deployment on heroku.com
 * Initial README.md
+* Implementasi Autehtication
+* Implementasi template front end
+
+Sprint 2 
+* Implementasi Project
+* Implementasi Project Page dan Links
+* Implementasi Admin Authorization
+* Implementasi TodoList
\ No newline at end of file
diff --git a/src/main/java/com/id/ui/cs/deadliners/appuser/security/PasswordEncoder.java b/src/main/java/com/id/ui/cs/deadliners/appuser/security/PasswordEncoder.java
index 6d707bc1d44da048fdb278569c5e9a6b140abff5..9896ef7d547ad3d2f854a5d40ee448a459d96027 100644
--- a/src/main/java/com/id/ui/cs/deadliners/appuser/security/PasswordEncoder.java
+++ b/src/main/java/com/id/ui/cs/deadliners/appuser/security/PasswordEncoder.java
@@ -8,7 +8,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 public class PasswordEncoder {
 
     @Bean
-    public BCryptPasswordEncoder bCryptPasswordEncoder() {
+    public static BCryptPasswordEncoder bCryptPasswordEncoder() {
         return new BCryptPasswordEncoder();
     }
 }
diff --git a/src/main/java/com/id/ui/cs/deadliners/projects/controller/JoinProjectController.java b/src/main/java/com/id/ui/cs/deadliners/projects/controller/JoinProjectController.java
index eff1d893b4625ac790ae58d852004a145f524867..f3245af7ebaa2453a5e83352912592d454515abc 100644
--- a/src/main/java/com/id/ui/cs/deadliners/projects/controller/JoinProjectController.java
+++ b/src/main/java/com/id/ui/cs/deadliners/projects/controller/JoinProjectController.java
@@ -1,7 +1,7 @@
 package com.id.ui.cs.deadliners.projects.controller;
 
 import com.id.ui.cs.deadliners.appuser.service.AppUserService;
-import com.id.ui.cs.deadliners.projects.model.request.JoinProjectRequest;
+import com.id.ui.cs.deadliners.projects.model.dto.JoinProjectRequest;
 import com.id.ui.cs.deadliners.projects.service.ProjectService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
diff --git a/src/main/java/com/id/ui/cs/deadliners/projects/controller/ProjectsController.java b/src/main/java/com/id/ui/cs/deadliners/projects/controller/ProjectsController.java
index c224011d6c9f1e932d8e9c2e3acfed80d5b4c607..653c0e7e3da77bfdbd245cfdf89139b8895cdde5 100644
--- a/src/main/java/com/id/ui/cs/deadliners/projects/controller/ProjectsController.java
+++ b/src/main/java/com/id/ui/cs/deadliners/projects/controller/ProjectsController.java
@@ -3,7 +3,7 @@ package com.id.ui.cs.deadliners.Projects.controller;
 import com.id.ui.cs.deadliners.appuser.model.appuser.AppUserDetails;
 import com.id.ui.cs.deadliners.appuser.service.AppUserService;
 import com.id.ui.cs.deadliners.projects.model.Project;
-import com.id.ui.cs.deadliners.projects.model.request.ProjectRequest;
+import com.id.ui.cs.deadliners.projects.model.dto.ProjectRequest;
 import com.id.ui.cs.deadliners.projects.service.ProjectService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
diff --git a/src/main/java/com/id/ui/cs/deadliners/projects/model/request/JoinProjectRequest.java b/src/main/java/com/id/ui/cs/deadliners/projects/model/dto/JoinProjectRequest.java
similarity index 82%
rename from src/main/java/com/id/ui/cs/deadliners/projects/model/request/JoinProjectRequest.java
rename to src/main/java/com/id/ui/cs/deadliners/projects/model/dto/JoinProjectRequest.java
index ff4a7bc3cf3b544020f9ecef91fbf6943badf403..2d1aa57a3b7dd90088387f5370a6c22465297714 100644
--- a/src/main/java/com/id/ui/cs/deadliners/projects/model/request/JoinProjectRequest.java
+++ b/src/main/java/com/id/ui/cs/deadliners/projects/model/dto/JoinProjectRequest.java
@@ -1,4 +1,4 @@
-package com.id.ui.cs.deadliners.projects.model.request;
+package com.id.ui.cs.deadliners.projects.model.dto;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;
diff --git a/src/main/java/com/id/ui/cs/deadliners/projects/model/request/ProjectRequest.java b/src/main/java/com/id/ui/cs/deadliners/projects/model/dto/ProjectRequest.java
similarity index 82%
rename from src/main/java/com/id/ui/cs/deadliners/projects/model/request/ProjectRequest.java
rename to src/main/java/com/id/ui/cs/deadliners/projects/model/dto/ProjectRequest.java
index 548b554dec724c075a472a0ad8d8c13e0a74ae1b..9278cfc494b5d68ffca025e449de61943f19d1f2 100644
--- a/src/main/java/com/id/ui/cs/deadliners/projects/model/request/ProjectRequest.java
+++ b/src/main/java/com/id/ui/cs/deadliners/projects/model/dto/ProjectRequest.java
@@ -1,4 +1,4 @@
-package com.id.ui.cs.deadliners.projects.model.request;
+package com.id.ui.cs.deadliners.projects.model.dto;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;
diff --git a/src/main/java/com/id/ui/cs/deadliners/projects/model/response/Response.java b/src/main/java/com/id/ui/cs/deadliners/projects/model/dto/Response.java
similarity index 73%
rename from src/main/java/com/id/ui/cs/deadliners/projects/model/response/Response.java
rename to src/main/java/com/id/ui/cs/deadliners/projects/model/dto/Response.java
index e6d542d93deca72e7f65e9d9894237617089a31a..58c3392a1f188ba9d95b5f14d81c57e679fdfe2a 100644
--- a/src/main/java/com/id/ui/cs/deadliners/projects/model/response/Response.java
+++ b/src/main/java/com/id/ui/cs/deadliners/projects/model/dto/Response.java
@@ -1,4 +1,4 @@
-package com.id.ui.cs.deadliners.projects.model.response;
+package com.id.ui.cs.deadliners.projects.model.dto;
 
 import lombok.*;
 
diff --git a/src/main/java/com/id/ui/cs/deadliners/projects/service/ProjectService.java b/src/main/java/com/id/ui/cs/deadliners/projects/service/ProjectService.java
index c46cd050fcfb0e05db712cb1d5d824eeea2033ed..0f90d02141c79d7228d4bbc0796763976e032c7a 100644
--- a/src/main/java/com/id/ui/cs/deadliners/projects/service/ProjectService.java
+++ b/src/main/java/com/id/ui/cs/deadliners/projects/service/ProjectService.java
@@ -2,7 +2,7 @@ package com.id.ui.cs.deadliners.projects.service;
 
 import com.id.ui.cs.deadliners.appuser.model.appuser.AppUser;
 import com.id.ui.cs.deadliners.projects.model.Project;
-import com.id.ui.cs.deadliners.projects.model.response.Response;
+import com.id.ui.cs.deadliners.projects.model.dto.Response;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/src/main/java/com/id/ui/cs/deadliners/projects/service/ProjectServiceImpl.java b/src/main/java/com/id/ui/cs/deadliners/projects/service/ProjectServiceImpl.java
index de5d072cb1e2f729754f1623d4ba46da3a891131..4e349b8809ec717dc1dd52fdae8ea78dc1fbed9d 100644
--- a/src/main/java/com/id/ui/cs/deadliners/projects/service/ProjectServiceImpl.java
+++ b/src/main/java/com/id/ui/cs/deadliners/projects/service/ProjectServiceImpl.java
@@ -1,9 +1,9 @@
-package com.id.ui.cs.deadliners.projects.service;
+    package com.id.ui.cs.deadliners.projects.service;
 
 import com.id.ui.cs.deadliners.appuser.model.appuser.AppUser;
 import com.id.ui.cs.deadliners.appuser.service.AppUserService;
 import com.id.ui.cs.deadliners.projects.model.Project;
-import com.id.ui.cs.deadliners.projects.model.response.Response;
+import com.id.ui.cs.deadliners.projects.model.dto.Response;
 import com.id.ui.cs.deadliners.projects.repository.ProjectRepository;
 import lombok.AllArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/test/java/com/id/ui/cs/deadliners/appuser/service/AppUserServiceTest.java b/src/test/java/com/id/ui/cs/deadliners/appuser/service/AppUserServiceTest.java
index 84935981d131ec8c643c83c04989d32550b6660a..cec66e7a04db8f529adc84e3a4aeeaf2d4a21556 100644
--- a/src/test/java/com/id/ui/cs/deadliners/appuser/service/AppUserServiceTest.java
+++ b/src/test/java/com/id/ui/cs/deadliners/appuser/service/AppUserServiceTest.java
@@ -4,6 +4,7 @@ import com.id.ui.cs.deadliners.appuser.model.appuser.AppUser;
 import com.id.ui.cs.deadliners.appuser.model.appuser.AppUserRole;
 import com.id.ui.cs.deadliners.appuser.model.register.RegistrationRequest;
 import com.id.ui.cs.deadliners.appuser.repository.AppUserRepository;
+import com.id.ui.cs.deadliners.appuser.security.PasswordEncoder;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -39,7 +40,7 @@ class AppUserServiceTest {
 
         appUserServiceClass = Class.forName("com.id.ui.cs.deadliners.appuser.service.AppUserService");
 
-        appUserService = new AppUserService(appUserRepository, new BCryptPasswordEncoder());
+        appUserService = new AppUserService(appUserRepository, PasswordEncoder.bCryptPasswordEncoder());
 
         registrationService = new RegistrationService(appUserService);
 
diff --git a/src/test/java/com/id/ui/cs/deadliners/projects/controller/ProjectControllerTest.java b/src/test/java/com/id/ui/cs/deadliners/projects/controller/ProjectControllerTest.java
index e67cceb52a972c01bfb74ba265d6af8b4a32458f..401d6104a9c2dc5a9f30991362297776beab83fa 100644
--- a/src/test/java/com/id/ui/cs/deadliners/projects/controller/ProjectControllerTest.java
+++ b/src/test/java/com/id/ui/cs/deadliners/projects/controller/ProjectControllerTest.java
@@ -33,12 +33,20 @@ public class ProjectControllerTest {
     @MockBean
     private BCryptPasswordEncoder bCryptPasswordEncoder;
 
-    @WithMockUser(username = "official.indramahaarta@gmail.com", roles = {"USER", "ADMIN"})
-    public void whenGetProjectsURLShouldReturnedProjectsPage() throws Exception {
-        when(projectService.getUserProjects("official.indramahaarta@gmail.com")).thenReturn(new ArrayList<>());
-
+//    @Test
+//    @WithMockUser(username = "official.indramahaarta@gmail.com", roles = {"USER", "ADMIN"})
+//    public void whenGetProjectsURLShouldReturnedProjectsPage() throws Exception {
+//        when(projectService.getUserProjects("official.indramahaarta@gmail.com")).thenReturn(new ArrayList<>());
+//
+//        mockMvc.perform(get("/projects"))
+//                .andExpect(MockMvcResultMatchers.status().isOk());
+//    }
+
+    @Test
+    void whenGetProjectsURLShouldReturnedProjectsPage() throws Exception {
         mockMvc.perform(get("/projects"))
-                .andExpect(MockMvcResultMatchers.status().isNotFound());
+                .andExpect((status()).is3xxRedirection())
+                .andExpect(redirectedUrl("http://localhost/login"));
     }
 
 }
diff --git a/src/test/java/com/id/ui/cs/deadliners/projects/model/request/JoinProjectRequestTest.java b/src/test/java/com/id/ui/cs/deadliners/projects/model/dto/JoinProjectRequestTest.java
similarity index 94%
rename from src/test/java/com/id/ui/cs/deadliners/projects/model/request/JoinProjectRequestTest.java
rename to src/test/java/com/id/ui/cs/deadliners/projects/model/dto/JoinProjectRequestTest.java
index e84763b69bb9d58f0b7a3a568b2bcb59f5ed3a53..5cf8ccc62fee6f2c6ebaedcce1421610f2aeacb7 100644
--- a/src/test/java/com/id/ui/cs/deadliners/projects/model/request/JoinProjectRequestTest.java
+++ b/src/test/java/com/id/ui/cs/deadliners/projects/model/dto/JoinProjectRequestTest.java
@@ -1,4 +1,4 @@
-package com.id.ui.cs.deadliners.projects.model.request;
+package com.id.ui.cs.deadliners.projects.model.dto;
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
diff --git a/src/test/java/com/id/ui/cs/deadliners/projects/model/request/ProjectRequestTest.java b/src/test/java/com/id/ui/cs/deadliners/projects/model/dto/ProjectRequestTest.java
similarity index 92%
rename from src/test/java/com/id/ui/cs/deadliners/projects/model/request/ProjectRequestTest.java
rename to src/test/java/com/id/ui/cs/deadliners/projects/model/dto/ProjectRequestTest.java
index 1bdaf534cf3f1764c268508ddf84971ae0d1f3ee..72aa3cef23c56bfa2f9f5c3418e2fbaef6601f74 100644
--- a/src/test/java/com/id/ui/cs/deadliners/projects/model/request/ProjectRequestTest.java
+++ b/src/test/java/com/id/ui/cs/deadliners/projects/model/dto/ProjectRequestTest.java
@@ -1,4 +1,4 @@
-package com.id.ui.cs.deadliners.projects.model.request;
+package com.id.ui.cs.deadliners.projects.model.dto;
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
diff --git a/src/test/java/com/id/ui/cs/deadliners/projects/model/response/ResponseTest.java b/src/test/java/com/id/ui/cs/deadliners/projects/model/response/ResponseTest.java
index e73a053d2897dd927c46aa13c6d4f6b5760fafb1..012b23c58f55796432b3adde3af684fe65bad9a7 100644
--- a/src/test/java/com/id/ui/cs/deadliners/projects/model/response/ResponseTest.java
+++ b/src/test/java/com/id/ui/cs/deadliners/projects/model/response/ResponseTest.java
@@ -1,5 +1,6 @@
 package com.id.ui.cs.deadliners.projects.model.response;
 
+import com.id.ui.cs.deadliners.projects.model.dto.Response;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
diff --git a/src/test/java/com/id/ui/cs/deadliners/projects/service/ProjectsServiceTest.java b/src/test/java/com/id/ui/cs/deadliners/projects/service/ProjectsServiceTest.java
index 46621eeeabade88dff5619cad8373da56b9e0f25..39f6b36c89938a07d4d3a5ce87d80cf7e8fddc23 100644
--- a/src/test/java/com/id/ui/cs/deadliners/projects/service/ProjectsServiceTest.java
+++ b/src/test/java/com/id/ui/cs/deadliners/projects/service/ProjectsServiceTest.java
@@ -4,7 +4,7 @@ import com.id.ui.cs.deadliners.appuser.model.appuser.AppUser;
 import com.id.ui.cs.deadliners.appuser.repository.AppUserRepository;
 import com.id.ui.cs.deadliners.appuser.service.AppUserService;
 import com.id.ui.cs.deadliners.projects.model.Project;
-import com.id.ui.cs.deadliners.projects.model.response.Response;
+import com.id.ui.cs.deadliners.projects.model.dto.Response;
 import com.id.ui.cs.deadliners.projects.repository.ProjectRepository;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;