diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java
index c86b8aa6d5db95159640747c314b4ba141c0fbae..e644878dcdff5f89c64804e3974f9b3d2e91d477 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java
@@ -1,5 +1,6 @@
 package unipotsdam.gf.core.management;
 
+import sun.misc.IOUtils;
 import unipotsdam.gf.core.database.mysql.MysqlConnect;
 import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
 import unipotsdam.gf.core.management.group.Group;
@@ -15,6 +16,9 @@ import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
 import javax.annotation.ManagedBean;
 import javax.annotation.Resource;
 import javax.inject.Singleton;
+import java.io.File;
+import java.io.FileInputStream;
+import java.sql.Blob;
 import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.List;
@@ -171,8 +175,10 @@ public class ManagementImpl implements Management {
         String adminPassword = vereinfachtesResultSet.getString("adminpassword");
         String token = vereinfachtesResultSet.getString("token");
         String phase = vereinfachtesResultSet.getString("phase");
-
-        return new Project(id, password, active, timestamp, author, adminPassword, token);
+        Project project = new Project(id, password, active, timestamp, author, adminPassword, token);
+        ProjectPhase projectPhase = ProjectPhase.valueOf(phase);
+        project.setPhase(projectPhase);
+        return project;
     }
 
     private Group getGroupFromResultSet(VereinfachtesResultSet vereinfachtesResultSet) {
@@ -236,6 +242,9 @@ public class ManagementImpl implements Management {
 
     @Override
     public Project getProjectById(String id) {
+        if (id == null){
+            return null;
+        }
         MysqlConnect connect = new MysqlConnect();
         connect.connect();
         String mysqlRequest = "SELECT * FROM projects where id = ?";
@@ -309,4 +318,13 @@ public class ManagementImpl implements Management {
         ProjectConfigurationDAO projectConfigurationDAO = new ProjectConfigurationDAO();
         return projectConfigurationDAO.loadProjectConfiguration(project);
     }
+
+    public String saveProfilePicture(FileInputStream image, String studentId){
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        Blob blobbedImage= (Blob) image;
+        String mysqlRequest = "INSERT INTO `profilepicture`(`studentId`, `image`) VALUES (?,?)";
+        connect.issueInsertOrDeleteStatement(mysqlRequest, studentId, blobbedImage);
+        return "success";
+    }
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/Menu.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/Menu.java
new file mode 100644
index 0000000000000000000000000000000000000000..894babb0db1b7e6ba876ae5f0c700a9a0065792a
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/Menu.java
@@ -0,0 +1,112 @@
+package unipotsdam.gf.core.management.pageAppearance;
+
+import unipotsdam.gf.core.management.ManagementImpl;
+import unipotsdam.gf.core.management.user.User;
+import unipotsdam.gf.core.states.ProjectPhase;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspWriter;
+import javax.servlet.jsp.PageContext;
+import javax.servlet.jsp.tagext.SimpleTagSupport;
+import java.io.IOException;
+
+public class Menu extends SimpleTagSupport {
+    public void doTag() throws IOException {
+        PageContext pageContext = (PageContext) getJspContext();
+        HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
+        String token = request.getParameter("token");
+        String projectId = request.getParameter("projectId");
+        ManagementImpl management = new ManagementImpl();
+        ProjectPhase projectPhase;
+        try{
+            projectPhase = management.getProjectById(projectId).getPhase();
+        }catch(Exception e){
+            projectPhase = null;
+        }
+        JspWriter out = getJspContext().getOut();
+        if (token!=null){
+            User user =  management.getUserByToken(token);
+            Boolean isStudent = user.getStudent();
+            if (isStudent){
+                String menuString = "<div id=\"sidebar-wrapper\">\n" +
+                        "        <ul class=\"sidebar-nav\">\n" +
+                        "            <li class=\"sidebar-brand\"><a href=\"overview-student.jsp?token="+token+"&projectId="+projectId+"\">overview</a></li>\n" +
+                        "            <li><a href=\"profile.jsp?token="+token+"&projectId="+projectId+"\">Profil</a></li>\n";
+                if (projectPhase!=null){
+                    if (projectPhase.equals(ProjectPhase.CourseCreation)){
+                        menuString += "      <li><p>Quizfrage</p></li>\n" +
+                                "            <li><a href=\"eportfolio.jsp?token="+token+"&projectId="+projectId+"\">ePortfolio</a></li>\n" +
+                                "            <li><p>Beitrag</p></li>\n" +
+                                "            <li><p>Bewertung</p></li>\n";
+                    }
+                    if (projectPhase.equals(ProjectPhase.GroupFormation)){
+                        menuString += "      <li><p>Quizfrage</p></li>\n" +
+                                "            <li><a href=\"eportfolio.jsp?token="+token+"&projectId="+projectId+"\">ePortfolio</a></li>\n" +
+                                "            <li><p>Beitrag</p></li>\n" +
+                                "            <li><p>Bewertung</p></li>\n";
+                    }
+                    if (projectPhase.equals(ProjectPhase.DossierFeedback)){
+                        menuString += "      <li><p>Quizfrage</p></li>\n" +
+                                "            <li><a href=\"eportfolio.jsp?token="+token+"&projectId="+projectId+"\">ePortfolio</a></li>\n" +
+                                "            <li><a href=\"researchReportTitle.jsp?token="+token+"&projectId="+projectId+"\">Beitrag</a></li>\n" +
+                                "            <li><p>Bewertung</p></li>\n";
+                    }
+                    if (projectPhase.equals(ProjectPhase.Execution)){
+                        menuString += "      <li><a href=\"Quiz.jsp?token="+token+"&projectId="+projectId+"\">Quizfrage</a></li>\n" +
+                                "            <li><a href=\"eportfolio.jsp?token="+token+"&projectId="+projectId+"\">ePortfolio</a></li>\n" +
+                                "            <li><a href=\"researchReportTitle.jsp?token="+token+"&projectId="+projectId+"\">Beitrag</a></li>\n" +
+                                "            <li><p>Bewertung</p></li>\n";
+                    }
+                    if (projectPhase.equals(ProjectPhase.Assessment)){
+                        menuString += "      <li><p>Quizfrage</p></li>\n" +
+                                "            <li><p>ePortfolio</p></li>\n" +
+                                "            <li><p>Beitrag</p></li>\n" +
+                                "            <li><a id=\"assessment\" style=\"cursor:pointer\">Bewertung</a></li>\n";
+                    }
+                }
+
+                menuString +="<li>" +
+                        "<a id=\"logout\" style=\"cursor:pointer\">Logout</a></li>\n" +
+                        "</ul>\n" +
+                        "    </div>";
+                out.println(menuString);
+                out.println("<p id=\"userRole\" hidden>isStudent</p>");
+            } else {
+                String menuString ="<div id=\"sidebar-wrapper\">\n" +
+                        "        <ul class=\"sidebar-nav\">\n" +
+                        "            <li class=\"sidebar-brand\"><a href=\"overview-docent.jsp?token="+token+"&projectId="+projectId+"\">overview</a></li>\n";
+                if (projectPhase!=null) {
+                    if (!projectPhase.equals(ProjectPhase.GroupFormation)) {
+                        menuString += "<li><a href=\"Quiz-docent.jsp?token="+token+"&projectId="+projectId+"\">Quizfrage</a></li>\n" +
+                                "      <li><p>Gruppen erstellen</p></li>\n" +
+                                "      <li><a href=\"changePhase.jsp?token="+token+"&projectId="+projectId+"\">Projektphase ändern</a></li>\n";
+                    }else {
+                        menuString += "<li><a href=\"Quiz-docent.jsp?token="+token+"&projectId="+projectId+"\">Quizfrage</a></li>\n" +
+                                "      <li><a href=\"createGroups.jsp?token="+token+"&projectId="+projectId+"\">Gruppen erstellen</a></li>\n" +
+                                "      <li><a href=\"changePhase.jsp?token="+token+"&projectId="+projectId+"\">Projektphase ändern</a></li>\n";
+                    }
+                }
+                menuString +="<li><a id=\"logout\" style=\"cursor:pointer\">Logout</a></li>\n" +
+                        "</ul>\n" +
+                        "    </div>";
+                out.println(menuString);
+                out.println("<p id=\"userRole\" hidden>isDocent</p>");
+            }
+        }else{
+            out.println("<div class='alert alert-warning'>" +
+                    "You probably did not give the token to the url" +
+                    "</div>");
+            //in active System this will be the point to redirect to index.jsp, because token is "wrong"
+        }
+        if (projectId!=null)
+            out.println("<p id=\"projectId\" hidden>"+projectId+"</p>");
+        User user = management.getUserByToken(token);
+        if (user != null)
+            out.println("<p id=\"user\" hidden>"+user.getName()+"</p>");
+
+
+
+    }
+
+
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/footer.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/footer.java
new file mode 100644
index 0000000000000000000000000000000000000000..29d366cb5ad8af659610937da34707c4c70d6628
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/footer.java
@@ -0,0 +1,54 @@
+package unipotsdam.gf.core.management.pageAppearance;
+
+import unipotsdam.gf.core.management.ManagementImpl;
+import unipotsdam.gf.core.states.ProjectPhase;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspWriter;
+import javax.servlet.jsp.PageContext;
+import javax.servlet.jsp.tagext.SimpleTagSupport;
+import java.io.IOException;
+
+public class footer extends SimpleTagSupport {
+    public void doTag() throws IOException {
+        PageContext pageContext = (PageContext) getJspContext();
+        HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
+        String projectId = request.getParameter("projectId");
+        ManagementImpl management = new ManagementImpl();
+        ProjectPhase projectPhase;
+        try {
+            projectPhase = management.getProjectById(projectId).getPhase();
+        } catch (Exception e) {
+            projectPhase = null;
+        }
+        JspWriter out = getJspContext().getOut();
+        String footerString = "<footer>\n" +
+                "        <div class=\"container\">\n";
+        if (projectPhase != null) {
+            footerString += "        <div class=\"progress\">\n" +
+                    "                <div class=\"progress-bar pg-" + projectPhase.toString().trim() + "\" role=\"progressbar\" id=\"progressbar\">\n" +
+                    "                </div>\n" +
+                    "                <div>\n";
+            if (projectPhase.equals(ProjectPhase.GroupFormation))
+                footerString +="  GroupFormation\n";
+            if (projectPhase.equals(ProjectPhase.Execution))
+                footerString +="  Execution\n";
+            if (projectPhase.equals(ProjectPhase.Assessment))
+                footerString +="  Assessment\n";
+            if (projectPhase.equals(ProjectPhase.DossierFeedback))
+                footerString +="  DossierFeedback\n";
+            if (projectPhase.equals(ProjectPhase.Projectfinished))
+                footerString +="  Projectfinished\n";
+            footerString +="        </div>\n" +
+                    "                <div class=\"progress-bar pg-rest\" role=\"progressbar\">\n" +
+                    "                </div>\n" +
+                    "            </div>\n";
+        }
+
+        footerString += "<button id=\"btnUnstructuredUpload\" class=\"btn btn-light\">Unstrukturierte Abgabe</button>\n" +
+                "<button id=\"footerBack\" class=\"btn btn-light\">zurück</button>\n" +
+                "        </div>\n" +
+                "    </footer>";
+        out.println(footerString);
+    }
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/headLine.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/headLine.java
similarity index 95%
rename from gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/headLine.java
rename to gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/headLine.java
index 087a26f8dfd29728abc9de226ef1511a26c59c82..36f2e74bcc9ebd0708ee4225d60a6c54a0a22a52 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/headLine.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/headLine.java
@@ -1,16 +1,16 @@
-package unipotsdam.gf.core.management.user;
+package unipotsdam.gf.core.management.pageAppearance;
 
 import unipotsdam.gf.core.management.ManagementImpl;
+import unipotsdam.gf.core.management.user.User;
 
 import javax.servlet.http.HttpServletRequest;
-import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.JspWriter;
 import javax.servlet.jsp.PageContext;
 import javax.servlet.jsp.tagext.SimpleTagSupport;
 import java.io.IOException;
 
 public class headLine extends SimpleTagSupport {
-    public void doTag() throws JspException, IOException {
+    public void doTag() throws IOException {
         PageContext pageContext = (PageContext) getJspContext();
         HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
         String projectId = request.getParameter("projectId");
@@ -58,6 +58,4 @@ public class headLine extends SimpleTagSupport {
                 "            </table>\n" +
                 "        </div>");
     }
-
-
-};
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/omniDependencies.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/omniDependencies.java
similarity index 73%
rename from gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/omniDependencies.java
rename to gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/omniDependencies.java
index e4b3272b2dac3479a79f5271598981a0e04db3d6..ac6ce6fcd31cfc5ae79f42c26bc644404077970d 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/omniDependencies.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/omniDependencies.java
@@ -1,17 +1,11 @@
-package unipotsdam.gf.core.management.user;
+package unipotsdam.gf.core.management.pageAppearance;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.JspWriter;
-import javax.servlet.jsp.PageContext;
 import javax.servlet.jsp.tagext.SimpleTagSupport;
 import java.io.IOException;
 
 public class omniDependencies extends SimpleTagSupport {
-    public void doTag() throws JspException, IOException {
-        PageContext pageContext = (PageContext) getJspContext();
-        HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
-        String projectId = request.getParameter("projectId");
+    public void doTag() throws IOException {
         JspWriter out = getJspContext().getOut();
         out.println("<meta charset=\"utf-8\">\n" +
                 "    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n" +
@@ -28,8 +22,6 @@ public class omniDependencies extends SimpleTagSupport {
                 "    <script src=\"../assets/js/utility.js\"></script>\n" +
                 "    <script src=\"../assets/js/footer.js\"></script>\n" +
                 "    <link rel=\"stylesheet\" href=\"https://use.fontawesome.com/releases/v5.1.0/css/all.css\"\n" +
-                "          integrity=\"sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt\" crossorigin=\"anonymous\">");
+                "      integrity=\"sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt\" crossorigin=\"anonymous\">");
     }
-
-
-};
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java
index 2fb7b840289b1b9056c7da73329bb2bbef6de38d..b329533304fc335bc6c0ccf69d8d8d577e15ad09 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java
@@ -19,7 +19,7 @@ public class Project {
     private String adminPassword;
     private String token;
     // using enum ProjectPhase
-    private String phase;
+    private ProjectPhase phase;
 
     public Project() {
     }
@@ -35,7 +35,7 @@ public class Project {
         this.setPhase(ProjectPhase.CourseCreation);
     }
 
-    public String getPhase() {
+    public ProjectPhase getPhase() {
         return phase;
     }
 
@@ -44,7 +44,7 @@ public class Project {
      * @param phase
      */
     public void setPhase(ProjectPhase phase) {
-        this.phase = phase.name();
+        this.phase = phase;
     }
 
     public Project(String id, String password, Boolean active, String author, String adminPassword, String token) {
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java
index d08c07de61e40d362e06bfa2ca3fa2f66b0e73c7..2c8ef86655468bdb480a69bdf52f9c8c8d24324c 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java
@@ -29,7 +29,7 @@ public class Menu extends SimpleTagSupport {
                         "            <li><a href=\"profile.jsp?token="+token+"&projectId="+projectId+"\">Profil</a></li>\n" +
                         "            <li><a href=\"Quiz.jsp?token="+token+"&projectId="+projectId+"\">Quizfrage</a></li>\n" +
                         "            <li><a href=\"eportfolio.jsp?token="+token+"&projectId="+projectId+"\">ePortfolio</a></li>\n" +
-                        "            <li><a href=\"researchReportTitle.jsp?token="+token+"&projectId="+projectId+"\">Beitrag</a></li>\n" +
+                        "            <li><a href=\"researchReportOverview.jsp?token="+token+"&projectId="+projectId+"\">Beitrag</a></li>\n" +
                         "            <li><a href=\"finalAssessments.jsp?token="+token+"&projectId="+projectId+"\">Bewertung</a></li>\n" +
                         "            <li><a href=\"../index.jsp\">Logout</a></li>\n" +
                         "        </ul>\n" +
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserService.java
index c457c47cbc5f6e5a115d7d44fc9fe4cb59858e12..d5ecb66497c7e4d5588e945c3bc04de7c69019ae 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserService.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserService.java
@@ -1,17 +1,20 @@
 package unipotsdam.gf.core.management.user;
 
+import org.glassfish.grizzly.streams.BufferedInput;
 import unipotsdam.gf.core.management.ManagementImpl;
+import unipotsdam.gf.core.states.ProjectPhase;
 import unipotsdam.gf.interfaces.ICommunication;
 import unipotsdam.gf.modules.communication.service.CommunicationDummyService;
 
 import javax.annotation.ManagedBean;
 import javax.inject.Inject;
-import javax.ws.rs.FormParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
+import javax.ws.rs.*;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
+import java.awt.image.BufferedImage;
+import java.awt.image.BufferedImageOp;
+import java.io.File;
+import java.io.FileInputStream;
 import java.net.URI;
 import java.net.URISyntaxException;
 
@@ -72,7 +75,20 @@ public class UserService {
         } else {
             return loginError();
         }
+    }
 
+    @POST
+    @Produces(MediaType.TEXT_PLAIN)
+    @Path("/student/{studentId}")
+    public String getQuiz(@FormParam("image") File file, @PathParam("studentId") String studentId) {
+        ManagementImpl management = new ManagementImpl();
+        try{
+            FileInputStream fis = new FileInputStream(file);
+
+            return management.saveProfilePicture(fis, studentId);
+        }catch(Exception e){
+            return e.toString();
+        }
 
     }
 
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesImpl.java
index 7bcf8a20fdb75120b33e7dae2b5cba48013ec3d7..ed289b311cfa75b30f22102953bd3ea80d17b49e 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesImpl.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesImpl.java
@@ -46,16 +46,16 @@ public class PhasesImpl implements IPhases {
     }
 
     @Override
-    public void endPhase(ProjectPhase currentPhase, Project project) {
-        switch (currentPhase) {
+    public void endPhase(ProjectPhase changeToPhase, Project project) {
+        switch (changeToPhase) {
             case CourseCreation:
                 // saving the state
-                saveState(project,getNextPhase(currentPhase));
+                saveState(project,changeToPhase);
                 break;
             case GroupFormation:
                 // inform users about the formed groups, optionally giving them a hint on what happens next
                 iCommunication.sendMessageToUsers(project, Messages.GroupFormation(project));
-                saveState(project,getNextPhase(currentPhase));
+                saveState(project,changeToPhase);
                 break;
             case DossierFeedback:
                 // check if everybody has uploaded a dossier
@@ -65,7 +65,7 @@ public class PhasesImpl implements IPhases {
                 } else {
                     // send a message to the users informing them about the start of the new phase
                     iCommunication.sendMessageToUsers(project, Messages.NewFeedbackTask(project));
-                    saveState(project,getNextPhase(currentPhase));
+                    saveState(project,changeToPhase);
                 }
                 break;
             case Execution:
@@ -74,7 +74,7 @@ public class PhasesImpl implements IPhases {
                 if (portfoliosReady) {
                     // inform users about the end of the phase
                     iCommunication.sendMessageToUsers(project, Messages.AssessmentPhaseStarted(project));
-                    saveState(project,getNextPhase(currentPhase));
+                    saveState(project,changeToPhase);
                 } else {
                     iJournal.assignMissingPortfolioTasks(project);
                 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesService.java
index e3ad42205b6ae45070ae70f643a9f6e662757a18..c0d45a7532c298206bfd8a3ef371cfd5ae4381a0 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesService.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesService.java
@@ -1,6 +1,7 @@
 package unipotsdam.gf.core.states;
 
 import unipotsdam.gf.core.management.Management;
+import unipotsdam.gf.core.management.ManagementImpl;
 import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.interfaces.IPhases;
 
@@ -15,11 +16,9 @@ import javax.ws.rs.core.MediaType;
 @Path("/phases")
 public class PhasesService  {
 
-    @Inject
-    private IPhases phases;
+    private IPhases phases = new PhasesImpl();
 
-    @Inject
-    private Management management;
+    private Management management = new ManagementImpl();
 
     /**
      * end phase
@@ -38,10 +37,10 @@ public class PhasesService  {
      * @param projectId
      * @return
      */
-    @Path("/{projectPhase}/projects/{projectId}")
+    @Path("/projects/{projectId}")
     @GET
-    @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+    @Produces({MediaType.TEXT_PLAIN})
     public String getCurrentPhase(@PathParam("projectId") String projectId) {
-        return management.getProjectById(projectId).getPhase();
+        return management.getProjectById(projectId).getPhase().toString();
     }
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/ProjectPhase.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/ProjectPhase.java
index 328b415f28a8379e81258b79eb671e16614e0417..ba8bffad7c29716ddfd9bbb5f049e3f19b0241c4 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/ProjectPhase.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/ProjectPhase.java
@@ -2,5 +2,5 @@ package unipotsdam.gf.core.states;
 
 public enum ProjectPhase {
     CourseCreation, GroupFormation, DossierFeedback, Execution, Assessment,
-    Projectfinished;
+    Projectfinished
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/configPhaseShift.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/configPhaseShift.java
new file mode 100644
index 0000000000000000000000000000000000000000..b988f6f75f45b5bc04929a0cfe2d93b2fabd85a1
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/configPhaseShift.java
@@ -0,0 +1,11 @@
+package unipotsdam.gf.core.states;
+
+public class configPhaseShift {
+    Boolean DossierWritten;
+    Integer FeedbackCount =1;
+    Integer QuizCount =10;
+    Integer JournalCount=5;
+    Boolean DossierFinalized;
+    Boolean JournalFinalized;
+    Boolean AssessmentDone;
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/Feedback.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/Feedback.java
index 5f70b51d18b5b423a9e419294622668040fcee19..773103d2bff7c333fe4ece1983d8e21f420c4341 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/Feedback.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/Feedback.java
@@ -1,7 +1,7 @@
 package unipotsdam.gf.interfaces;
 import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.core.management.user.User;
-import unipotsdam.gf.modules.peer2peerfeedback.Peer2PeerFeedback;
+import unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Model.Peer2PeerFeedback;
 import unipotsdam.gf.modules.researchreport.ResearchReport;
 
 import java.io.File;
@@ -17,12 +17,20 @@ public interface Feedback {
     /**
      * create Peer2PeerFeedback Object
      *
-     * @param feedbackuser: The student who is creating the feedback
-     * @param selectedstudent: The student who receive the feedback
-     * @param document: The selected document to give feedback about
+     * @param feedback:
      * @return Returns the Peer2PeerFeedback Object
      */
 
+    Peer2PeerFeedback createPeer2PeerFeedback (Peer2PeerFeedback feedback);
+    //(String id, String reciever, String sender, String text, Category category, String filename);
+
+    /**
+     * create Peer2PeerFeedback Object
+     *
+    * @param feedbackuser:
+    * @param selectedstudent:
+    * @param document:
+     * **/
     Peer2PeerFeedback createPeer2PeerFeedbackmask(User feedbackuser, User selectedstudent, File document);
 
     /**
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IJournal.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IJournal.java
index 1750b873a33a184cee3e9a1b911ab48ea53c4762..e53ddc887eac0127b51f629a31e14e7fc76586d6 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IJournal.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IJournal.java
@@ -3,13 +3,10 @@ package unipotsdam.gf.interfaces;
 
 import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.core.management.user.User;
-import unipotsdam.gf.assignments.NotImplementedLogger;
-import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
-import unipotsdam.gf.modules.journal.model.EPorfolio;
+import unipotsdam.gf.modules.journal.model.EPortfolio;
 import unipotsdam.gf.modules.journal.model.Journal;
 import unipotsdam.gf.modules.researchreport.ResearchReport;
 
-import javax.swing.text.html.HTML;
 import java.io.File;
 import java.util.List;
 
@@ -19,13 +16,6 @@ import java.util.List;
 
 public interface IJournal {
 
-    /**
-     * Exports the learning journal
-     * @param student StudentIdentifier
-     * @return the journal as String (may change)
-     */
-    String exportJournal (StudentIdentifier student) ;
-
     /**
      * check if all students have prepared their portfolios to be evaluated
      * @return
@@ -64,5 +54,5 @@ public interface IJournal {
      * @return EPortfolio (containing Report, ProjectDescription and Journal)
      */
 
-    EPorfolio getFinalPortfolioForAssessment(Project project, User user) ;
+    EPortfolio getFinalPortfolioForAssessment(Project project, User user) ;
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java
index d2109728546943d36eed575156a7af37f5e3309b..b07b990870b655615e72a1447eb09df9df642e98 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java
@@ -1,6 +1,5 @@
 package unipotsdam.gf.interfaces;
 
-import unipotsdam.gf.modules.assessment.QuizAnswer;
 import unipotsdam.gf.modules.assessment.controller.model.*;
 
 import java.util.ArrayList;
@@ -19,7 +18,7 @@ public interface IPeerAssessment {
      */
     void addAssessmentDataToDB(Assessment assessment);
 
-    Quiz getQuiz(String projectId, String groupId, String author);
+    Quiz getQuiz(String projectId, String quizId, String author);
     /**
      * will return a saved assessment from the DB
      *
@@ -76,7 +75,14 @@ public interface IPeerAssessment {
      */
     void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId);
 
-    void postContributionRating(StudentIdentifier student,
+    /**
+     *
+     * @param student
+     * @return
+     */
+    Integer whichGroupToRate(StudentIdentifier student);
+
+    void postContributionRating(String groupId,
                                 String fromPeer,
                                 Map<String, Integer> contributionRating);
 
@@ -88,5 +94,6 @@ public interface IPeerAssessment {
     void answerQuiz(Map<String, List<String>> questions, StudentIdentifier student);
     void deleteQuiz(String quizId);
 
+    String whatToRate(StudentIdentifier student);
     Map<StudentIdentifier, Double> calculateAssessment(String projectId, String method);
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Categories.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Categories.java
index 2937b2e3766b6fc3a15fd4595e2878d540dea5cd..66608a7d713d6dde0db06566e77a13313f7ed80b 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Categories.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Categories.java
@@ -16,8 +16,7 @@ public class Categories {
     );
     public static final List<String> contributionRatingCategories = Collections.unmodifiableList(
             new ArrayList<String>() {{
-                add("Dossier");
-                add("eJournal");
+                add("dossier");
                 add("research");
             }}
     );
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Performance.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Performance.java
index c5bdd8cb17e438fcfc4865cb9e97de9476b7a325..4f97bdb7384a3e37deb26bf85e60d31573c027d4 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Performance.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Performance.java
@@ -1,6 +1,5 @@
 package unipotsdam.gf.modules.assessment.controller.model;
 
-import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java
index c5e803245536598c1664156205fb56e1067eb4b2..5f05a39f3c6c9920be80265daa497acbbba0e849 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java
@@ -36,6 +36,15 @@ class AssessmentDBCommunication {
         return result;
     }
 
+    Boolean getWorkRating(StudentIdentifier student, String fromStudent){
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "SELECT * FROM `workrating` WHERE `projectId`=? AND `studentId`=? AND `fromPeer`=?";
+        VereinfachtesResultSet vereinfachtesResultSet =
+                connect.issueSelectStatement(mysqlRequest, student.getProjectId(), student.getStudentId(), fromStudent);
+        return vereinfachtesResultSet.next();
+    }
+
     List<String> getStudents(String projectID) {
         List<String> result = new ArrayList<>();
         MysqlConnect connect = new MysqlConnect();
@@ -51,13 +60,40 @@ class AssessmentDBCommunication {
         return result;
     }
 
-    ArrayList<Map<String, Double>> getContributionRating(StudentIdentifier student) {
-        ArrayList<Map<String, Double>> result = new ArrayList<>();
+    Integer getGroupByStudent(StudentIdentifier student) {
+        Integer result;
         MysqlConnect connect = new MysqlConnect();
         connect.connect();
-        String mysqlRequest = "SELECT * FROM `contributionrating` WHERE `projectId`=? AND `studentId`=?";
+        String mysqlRequest = "SELECT groupId FROM `groupuser` WHERE `projectId`=? AND `studentId`=?";
         VereinfachtesResultSet vereinfachtesResultSet =
                 connect.issueSelectStatement(mysqlRequest, student.getProjectId(), student.getStudentId());
+        vereinfachtesResultSet.next();
+        result = vereinfachtesResultSet.getInt("groupId");
+        return result;
+    }
+
+    ArrayList<String> getStudentsByGroupAndProject(Integer groupId, String projectId){
+        ArrayList<String> result = new ArrayList<>();
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "SELECT * FROM `groupuser` WHERE `groupId`=? AND `projectId`=?";
+        VereinfachtesResultSet vereinfachtesResultSet =
+                connect.issueSelectStatement(mysqlRequest, groupId, projectId);
+        Boolean next = vereinfachtesResultSet.next();
+        while (next){
+            result.add(vereinfachtesResultSet.getString("studentId"));
+            next = vereinfachtesResultSet.next();
+        }
+        return result;
+    }
+
+    ArrayList<Map<String, Double>> getContributionRating(Integer groupId) {
+        ArrayList<Map<String, Double>> result = new ArrayList<>();
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "SELECT * FROM `contributionrating` WHERE `groupId`=?";
+        VereinfachtesResultSet vereinfachtesResultSet =
+                connect.issueSelectStatement(mysqlRequest, groupId);
         boolean next = vereinfachtesResultSet.next();
         while (next) {
             Map<String, Double> contributionRating = new HashMap<>();
@@ -71,6 +107,15 @@ class AssessmentDBCommunication {
         return result;
     }
 
+    Boolean getContributionRating(Integer groupId, String fromStudent) {
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "SELECT * FROM `contributionrating` WHERE `groupId`=? AND `fromPeer`=?";
+        VereinfachtesResultSet vereinfachtesResultSet =
+                connect.issueSelectStatement(mysqlRequest, groupId, fromStudent);
+        return vereinfachtesResultSet.next();
+    }
+
     ArrayList<Integer> getAnsweredQuizzes(StudentIdentifier student) {
         ArrayList<Integer> result = new ArrayList<>();
         MysqlConnect connect = new MysqlConnect();
@@ -122,23 +167,49 @@ class AssessmentDBCommunication {
         connect.close();
     }
 
-    void writeContributionRatingToDB(StudentIdentifier student, String fromStudent, Map<String, Integer> contributionRating) {
+    Integer getWhichGroupToRate(StudentIdentifier student){
+        Integer result;
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest1 = "SELECT groupId FROM `groupuser` WHERE `projectId`=? AND `studentId`=? ";
+        VereinfachtesResultSet vereinfachtesResultSet1 =
+                connect.issueSelectStatement(mysqlRequest1, student.getProjectId(),student.getStudentId());
+        vereinfachtesResultSet1.next();
+        Integer groupId = vereinfachtesResultSet1.getInt("groupId");
+
+        String mysqlRequest2 = "SELECT DISTINCT groupId FROM `groupuser` WHERE `projectId`=? ";
+        VereinfachtesResultSet vereinfachtesResultSet2 =
+                connect.issueSelectStatement(mysqlRequest2, student.getProjectId());
+        Boolean next = vereinfachtesResultSet2.next();
+        result = vereinfachtesResultSet2.getInt("groupId");
+        while(next){
+            if (vereinfachtesResultSet2.getInt("groupId") == groupId){
+                next = vereinfachtesResultSet2.next();
+                if (next){
+                    result = vereinfachtesResultSet2.getInt("groupId");
+                }
+            }else{
+                next = vereinfachtesResultSet2.next();
+            }
+
+        }
+        connect.close();
+        return result;
+    }
+
+    void writeContributionRatingToDB(String groupId, String fromStudent, Map<String, Integer> contributionRating) {
         MysqlConnect connect = new MysqlConnect();
         connect.connect();
         String mysqlRequest = "INSERT INTO `contributionrating`(" +
-                "`studentId`, " +
-                "`projectId`, " +
+                "`groupId`, " +
                 "`fromPeer`, " +
                 "`dossier`, " +
-                "`eJournal`, " +
                 "`research`) " +
-                "VALUES (?,?,?,?,?,?)";
+                "VALUES (?,?,?,?)";
         connect.issueInsertOrDeleteStatement(mysqlRequest,
-                student.getStudentId(),
-                student.getProjectId(),
+                groupId,
                 fromStudent,
                 contributionRating.get("dossier"),
-                contributionRating.get("eJournal"),
                 contributionRating.get("research")
         );
         connect.close();
@@ -156,7 +227,7 @@ class AssessmentDBCommunication {
         connect.close();
     }
 
-    public Map<String, Boolean> getAnswers(String projectId, String question) {
+    Map<String, Boolean> getAnswers(String projectId, String question) {
         MysqlConnect connect = new MysqlConnect();
         connect.connect();
         Map<String, Boolean> result = new HashMap<>();
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java
index ef9dd768e6d5890a7790156a62a5aa6b44986c30..8283f9a231c6c558032e108968a4386d379d9b8c 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java
@@ -1,6 +1,5 @@
 package unipotsdam.gf.modules.assessment.controller.service;
 
-import unipotsdam.gf.modules.assessment.QuizAnswer;
 import unipotsdam.gf.modules.assessment.controller.model.*;
 
 import java.util.ArrayList;
@@ -61,7 +60,12 @@ public class FBAssessement extends AssessmentDAO {
     }
 
     @Override
-    public void postContributionRating(StudentIdentifier student, String fromStudent, Map<String, Integer> contributionRating) {
+    public Integer whichGroupToRate(StudentIdentifier student) {
+        return null;
+    }
+
+    @Override
+    public void postContributionRating(String groupId, String fromStudent, Map<String, Integer> contributionRating) {
 
     }
 
@@ -75,6 +79,11 @@ public class FBAssessement extends AssessmentDAO {
 
     }
 
+    @Override
+    public String whatToRate(StudentIdentifier student) {
+        return null;
+    }
+
     @Override
     public Map<StudentIdentifier, Double> calculateAssessment(String projectId, String method) {
         return null;
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java
index 820adb76b897dc5028f45c13e8aba944aa6a09fc..d65c047ccced3756dd13292542eac5f58f09f901 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java
@@ -1,8 +1,6 @@
 package unipotsdam.gf.modules.assessment.controller.service;
 
-import unipotsdam.gf.core.management.user.User;
 import unipotsdam.gf.interfaces.IPeerAssessment;
-import unipotsdam.gf.modules.assessment.QuizAnswer;
 import unipotsdam.gf.modules.assessment.controller.model.*;
 
 import java.util.*;
@@ -38,6 +36,29 @@ public class PeerAssessment implements IPeerAssessment {
         new QuizDBCommunication().deleteQuiz(quizId);
     }
 
+    @Override
+    public String whatToRate(StudentIdentifier student) {
+        Integer groupId = new AssessmentDBCommunication().getGroupByStudent(student);
+        ArrayList<String> groupMembers = new AssessmentDBCommunication().getStudentsByGroupAndProject(groupId, student.getProjectId());
+        for (String peer: groupMembers){
+            if (!peer.equals(student.getStudentId())){
+                StudentIdentifier groupMember = new StudentIdentifier(student.getProjectId(), peer);
+                if (!new AssessmentDBCommunication().getWorkRating(groupMember, student.getStudentId())){
+                    return "workRating";
+                }
+            }
+        }
+        ArrayList<Integer> answers = new AssessmentDBCommunication().getAnsweredQuizzes(student);
+        if (answers==null){
+            return "quiz";
+        }
+        Integer groupToRate = new AssessmentDBCommunication().getWhichGroupToRate(student);
+        if (!new AssessmentDBCommunication().getContributionRating(groupToRate, student.getStudentId())){
+            return "contributionRating";
+        }
+        return "done";
+    }
+
     @Override
     public Map<StudentIdentifier, Double> calculateAssessment(ArrayList<Performance> totalPerformance) {
         Map<StudentIdentifier, Double> quizMean = new HashMap<>(quizGrade(totalPerformance));
@@ -64,11 +85,14 @@ public class PeerAssessment implements IPeerAssessment {
         List<String> students = new AssessmentDBCommunication().getStudents(projectId);
         //for each student
         for (String student : students) {
+            Integer groupId;
             Performance performance = new Performance();
             StudentIdentifier studentIdentifier = new StudentIdentifier(projectId, student);
+            groupId = new AssessmentDBCommunication().getGroupByStudent(studentIdentifier);
             List<Integer> answeredQuizzes = new AssessmentDBCommunication().getAnsweredQuizzes(studentIdentifier);
             ArrayList<Map<String, Double>> workRating = new AssessmentDBCommunication().getWorkRating(studentIdentifier);
-            ArrayList<Map<String, Double>> contributionRating = new AssessmentDBCommunication().getContributionRating(studentIdentifier);
+            ArrayList<Map<String, Double>> contributionRating =
+                    new AssessmentDBCommunication().getContributionRating(groupId);
             performance.setStudentIdentifier(studentIdentifier);
             performance.setQuizAnswer(answeredQuizzes);
             performance.setWorkRating(cheatChecker(workRating, cheatCheckerMethods.variance));
@@ -208,10 +232,15 @@ public class PeerAssessment implements IPeerAssessment {
     }
 
     @Override
-    public void postContributionRating(StudentIdentifier student,
+    public Integer whichGroupToRate(StudentIdentifier student) {
+        return new AssessmentDBCommunication().getWhichGroupToRate(student);
+    }
+
+    @Override
+    public void postContributionRating(String groupId,
                                        String fromStudent,
                                        Map<String, Integer> contributionRating) {
-        new AssessmentDBCommunication().writeContributionRatingToDB(student, fromStudent, contributionRating);
+        new AssessmentDBCommunication().writeContributionRatingToDB(groupId, fromStudent, contributionRating);
     }
 
     @Override
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java
index 78291cecd72583f82ec78bc02859cbf36ec4a01b..74bac433e2e831ea9fe23b6d18a754c66490e517 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java
@@ -3,7 +3,6 @@ package unipotsdam.gf.modules.assessment.controller.service;
 import unipotsdam.gf.assignments.Assignee;
 import unipotsdam.gf.assignments.NotImplementedLogger;
 import unipotsdam.gf.interfaces.IPeerAssessment;
-import unipotsdam.gf.modules.assessment.QuizAnswer;
 import unipotsdam.gf.modules.assessment.controller.model.*;
 
 import java.util.*;
@@ -66,7 +65,12 @@ public class PeerAssessmentDummy implements IPeerAssessment {
     }
 
     @Override
-    public void postContributionRating(StudentIdentifier student, String fromStudent, Map<String, Integer> contributionRating) {
+    public Integer whichGroupToRate(StudentIdentifier student) {
+        return null;
+    }
+
+    @Override
+    public void postContributionRating(String groupId, String fromStudent, Map<String, Integer> contributionRating) {
 
     }
 
@@ -80,6 +84,11 @@ public class PeerAssessmentDummy implements IPeerAssessment {
 
     }
 
+    @Override
+    public String whatToRate(StudentIdentifier student) {
+        return null;
+    }
+
     @Override
     public Map<StudentIdentifier, Double> calculateAssessment(String projectId, String method) {
         return null;
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java
index e41b15a6dda0f0a60aa833c0682112d82e3edc4a..1a484981db9ba3e13241412482670db23acd32af 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java
@@ -1,10 +1,14 @@
 package unipotsdam.gf.modules.assessment.controller.view;
 
+import unipotsdam.gf.core.management.Management;
+import unipotsdam.gf.core.management.ManagementImpl;
 import unipotsdam.gf.interfaces.IPeerAssessment;
+import unipotsdam.gf.interfaces.IPhases;
 import unipotsdam.gf.modules.assessment.QuizAnswer;
 import unipotsdam.gf.modules.assessment.controller.model.*;
 import unipotsdam.gf.modules.assessment.controller.service.PeerAssessment;
 
+import javax.inject.Inject;
 import javax.ws.rs.*;
 import javax.ws.rs.core.MediaType;
 import java.io.IOException;
@@ -39,6 +43,7 @@ public class QuizView {
     }
     //////////////////////////////////////////funktioniert///////////////////////////////////////
 
+
     @POST
     @Consumes(MediaType.APPLICATION_JSON)
     @Path("/peerRating/project/{projectId}")
@@ -46,15 +51,22 @@ public class QuizView {
         peer.postPeerRating(peerRatings, projectId);
     }
 
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    @Path("/groupRate/project/{projectId}/student/{studentId}")
+    public Integer whichGroupToRate(@PathParam("projectId") String projectId, @PathParam("studentId") String studentId)
+    {
+        StudentIdentifier student = new StudentIdentifier(projectId,studentId);
+        return peer.whichGroupToRate(student);
+    }
+
     @POST
     @Consumes(MediaType.APPLICATION_JSON)
-    @Path("/contributionRating/projectId/{projectId}/studentId/{studentId}/fromPeer/{fromPeer}")
+    @Path("/contributionRating/group/{groupId}/fromPeer/{fromPeer}")
     public void postContributionRating(Map<String, Integer> contributionRatings,
-                                       @PathParam("projectId") String projectId,
-                                       @PathParam("studentId") String studentId,
+                                       @PathParam("groupId") String groupId,
                                        @PathParam("fromPeer") String fromPeer) throws IOException {
-        StudentIdentifier student = new StudentIdentifier(projectId, studentId);
-        peer.postContributionRating(student, fromPeer, contributionRatings);
+        peer.postContributionRating(groupId, fromPeer, contributionRatings);
     }
 
     @POST
@@ -77,6 +89,15 @@ public class QuizView {
         }
     }
 
+    @GET
+    @Produces(MediaType.TEXT_HTML)
+    @Path("/whatToRate/project/{projectId}/student/{studentId}")
+    public String whatToRate(@PathParam("projectId") String projectId, @PathParam("studentId") String studentId)
+    {
+        StudentIdentifier student = new StudentIdentifier(projectId,studentId);
+        return peer.whatToRate(student);
+    }
+
     @POST
     @Produces(MediaType.TEXT_PLAIN)
     @Consumes(MediaType.APPLICATION_JSON)
@@ -140,7 +161,7 @@ public class QuizView {
         return getTotalAssessment(studentIdentifier);
     }  //////////dummy/////////////funktioniert wie geplant//////////////////////////////////
 
-    public ArrayList<Performance> getTotalAssessment(StudentIdentifier studentIdentifier) {
+    private ArrayList<Performance> getTotalAssessment(StudentIdentifier studentIdentifier) {
         return peer.getTotalAssessment(studentIdentifier);
     }  /////////dummy/////////////funktioniert wie geplant//////////////////////////////////
 
@@ -193,5 +214,4 @@ public class QuizView {
         result.add(pf2);
         return result;
     }  /////////dummy////////////returns what i expect it to return!!!!!//////////////////////////////////
-
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/GroupfindingImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/GroupfindingImpl.java
index 8987f63c3863e21673bbf067fccced65dbff08ed..78f8621f3d2b9ba1fbaffc207a8970e05b56cb17 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/GroupfindingImpl.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/GroupfindingImpl.java
@@ -3,7 +3,11 @@ package unipotsdam.gf.modules.groupfinding;
 import unipotsdam.gf.core.management.group.Group;
 import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.interfaces.IGroupFinding;
+import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
+import unipotsdam.gf.modules.groupfinding.service.GroupCreationService;
+import unipotsdam.gf.modules.groupfinding.service.GroupDAO;
 
+import java.util.ArrayList;
 import java.util.List;
 
 public class GroupfindingImpl implements IGroupFinding {
@@ -27,4 +31,8 @@ public class GroupfindingImpl implements IGroupFinding {
     public void formGroups(GroupFormationMechanism groupFindingMechanism) {
 
     }
+
+    public ArrayList<String> getStudentsInSameGroup(StudentIdentifier student){
+        return new GroupDAO().getStudentsInSameGroupAs(student);
+    }
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/service/GroupDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/service/GroupDAO.java
new file mode 100644
index 0000000000000000000000000000000000000000..ffa94b4e83f1e00ff63e59692c956bc19e70403d
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/service/GroupDAO.java
@@ -0,0 +1,34 @@
+package unipotsdam.gf.modules.groupfinding.service;
+
+import unipotsdam.gf.core.database.mysql.MysqlConnect;
+import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
+import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
+
+import java.util.ArrayList;
+
+public class GroupDAO {
+
+    public ArrayList<String> getStudentsInSameGroupAs(StudentIdentifier student) {
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        ArrayList<String> result = new ArrayList<>();
+        Integer groupId;
+        String mysqlRequest1 = "SELECT groupId FROM `groupuser` WHERE `projectId`=? AND `studentId`=?";
+        VereinfachtesResultSet vereinfachtesResultSet1 =
+                connect.issueSelectStatement(mysqlRequest1, student.getProjectId(), student.getStudentId());
+        vereinfachtesResultSet1.next();
+        groupId = vereinfachtesResultSet1.getInt("groupId");
+        String mysqlRequest2 = "SELECT * FROM `groupuser` WHERE `groupId`=?";
+        VereinfachtesResultSet vereinfachtesResultSet2 =
+                connect.issueSelectStatement(mysqlRequest2, groupId);
+        boolean next2 = vereinfachtesResultSet2.next();
+        while(next2){
+            String peer = vereinfachtesResultSet2.getString("studentId");
+            if (!peer.equals( student.getStudentId()))
+                result.add(peer);
+            next2=vereinfachtesResultSet2.next();
+        }
+        connect.close();
+        return result;
+    }
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/view/GroupView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/view/GroupView.java
new file mode 100644
index 0000000000000000000000000000000000000000..0a9f8c6602e980ec97825126b7f322cad1bb9719
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/view/GroupView.java
@@ -0,0 +1,24 @@
+package unipotsdam.gf.modules.groupfinding.view;
+
+import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
+import unipotsdam.gf.modules.groupfinding.GroupfindingImpl;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import java.io.IOException;
+import java.util.ArrayList;
+
+@Path("/group")
+public class GroupView {
+    private GroupfindingImpl groupfinding = new GroupfindingImpl();
+
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    @Path("/project/{projectId}/student/{studentId}")
+    public ArrayList<String> getStudentsInSameGroup(@PathParam("projectId") String projectId, @PathParam("studentId") String studentId) throws IOException {
+        //peer.postPeerRating(peerRatings, projectId);
+        StudentIdentifier student = new StudentIdentifier(projectId, studentId);
+        return groupfinding.getStudentsInSameGroup(student);
+    }
+
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/DummyJournalImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/DummyJournalImpl.java
deleted file mode 100644
index 50da0c81b96dd2a5501eab940ce84682ac2d72c8..0000000000000000000000000000000000000000
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/DummyJournalImpl.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package unipotsdam.gf.modules.journal;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import unipotsdam.gf.core.management.project.Project;
-import unipotsdam.gf.core.management.user.User;
-import unipotsdam.gf.assignments.Assignee;
-import unipotsdam.gf.assignments.NotImplementedLogger;
-import unipotsdam.gf.interfaces.IJournal;
-import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
-import unipotsdam.gf.modules.journal.model.EPorfolio;
-import unipotsdam.gf.modules.journal.model.Journal;
-import unipotsdam.gf.modules.researchreport.ResearchReport;
-
-import javax.swing.text.html.HTML;
-import java.io.File;
-import java.util.List;
-
-public class DummyJournalImpl implements IJournal {
-
-
-    private Logger log = LoggerFactory.getLogger(DummyJournalImpl.class);
-
-    @Override
-    public String exportJournal(StudentIdentifier student)  {
-        NotImplementedLogger.logAssignment(Assignee.THOMAS, IJournal.class);
-        return null;
-    }
-
-    @Override
-    public Boolean getPortfoliosForEvaluationPrepared(Project project)  {
-        NotImplementedLogger.logAssignment(Assignee.THOMAS, IJournal.class);
-        return false;
-    }
-
-    @Override
-    public void assignMissingPortfolioTasks(Project project) {
-        NotImplementedLogger.logAssignment(Assignee.THOMAS, IJournal.class);
-    }
-
-    @Override
-    public void uploadJournalEntry(Journal journalEntry, User student) {
-        NotImplementedLogger.logAssignment(Assignee.THOMAS, IJournal.class);
-    }
-
-    @Override
-    public void uploadFinalPortfolio(
-            Project project, List<Journal> journalEntries, ResearchReport finalResearchReport, File presentation,
-            User user)  {
-        NotImplementedLogger.logAssignment(Assignee.THOMAS, IJournal.class);
-    }
-
-    @Override
-    public EPorfolio getFinalPortfolioForAssessment(
-            Project project, User user)  {
-        NotImplementedLogger.logAssignment(Assignee.THOMAS, IJournal.class);
-        return null;
-    }
-}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/EPorfolio.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/EPortfolio.java
similarity index 61%
rename from gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/EPorfolio.java
rename to gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/EPortfolio.java
index 1377afb417a9b58a14ef68d4c0524daf2aa63f9a..be23df134dd8e3f8f8c56d6c04f5e118fba3bf01 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/EPorfolio.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/EPortfolio.java
@@ -9,21 +9,21 @@ import java.util.ArrayList;
  * Class for passing e-portfolio to assessment
  */
 
-public class EPorfolio {
+public class EPortfolio {
 
-    StudentIdentifier student;
-    ProjectDescription descrition;
-    ArrayList<Journal> journals;
-    ResearchReport report;
-    //TODO mehr?
+    private StudentIdentifier student;
+    private ProjectDescription description;
+    private ArrayList<Journal> journals;
+    private ResearchReport report;
 
 
-    public EPorfolio() {
+
+    public EPortfolio() {
     }
 
-    public EPorfolio(StudentIdentifier student, ProjectDescription descrition, ArrayList<Journal> journals, ResearchReport report) {
+    public EPortfolio(StudentIdentifier student, ProjectDescription description, ArrayList<Journal> journals, ResearchReport report) {
         this.student = student;
-        this.descrition = descrition;
+        this.description = description;
         this.journals = journals;
         this.report = report;
     }
@@ -36,12 +36,12 @@ public class EPorfolio {
         this.student = student;
     }
 
-    public ProjectDescription getDescrition() {
-        return descrition;
+    public ProjectDescription getDescription() {
+        return description;
     }
 
-    public void setDescrition(ProjectDescription descrition) {
-        this.descrition = descrition;
+    public void setDescription(ProjectDescription description) {
+        this.description = description;
     }
 
     public ArrayList<Journal> getJournals() {
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java
index 499c53d55036a3618d391d74052d0524c1d3be19..7c098dbb1aac9b0aa9f9a7aca2db9b54ab889d28 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java
@@ -9,7 +9,7 @@ import java.util.Date;
 import static unipotsdam.gf.view.MarkdownUtils.convertMarkdownToHtml;
 
 /**
- * Model Class for the learnig journal of the e-portfolio
+ * Model Class for the learning journal of the e-portfolio
  */
 public class Journal {
 
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Link.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Link.java
index 2a4b7e63cb02c70f5f58bfe78f519e5d4b2298da..1d7d8006da568b5e497305f3b19f48328e308715 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Link.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Link.java
@@ -2,10 +2,10 @@ package unipotsdam.gf.modules.journal.model;
 
 public class Link {
 
-    String id;
-    String projectDescription;
-    String name;
-    String link;
+    private String id;
+    private String projectDescription;
+    private String name;
+    private String link;
 
     public Link() {
     }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescription.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescription.java
index d1e0558be5e4e8fe473137a497be85416c13c8a9..aad24cdcafd882b5dc7288323e7a7358c8400535 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescription.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescription.java
@@ -1,10 +1,9 @@
 package unipotsdam.gf.modules.journal.model;
 
-import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
 
 import java.util.ArrayList;
-import java.util.Map;
+import java.util.Date;
 
 import static unipotsdam.gf.view.MarkdownUtils.convertMarkdownToHtml;
 
@@ -20,34 +19,32 @@ public class ProjectDescription {
     private String descriptionMD;
     private boolean open;
     private ArrayList<Link> links;
-    private ArrayList<String> group;
     private long timestamp;
 
     public ProjectDescription() {
     }
 
-    public ProjectDescription(String id, String name, String description, String project, ArrayList<Link> links, ArrayList<String> group, long timestamp) {
+    public ProjectDescription(String id, String name, String description, String project, ArrayList<Link> links) {
         this.id = id;
-        this.student = new StudentIdentifier(project,name);
+        this.student = new StudentIdentifier(project, name);
         this.descriptionHTML = convertMarkdownToHtml(description);
-        this.descriptionMD =description;
+        this.descriptionMD = description;
         this.links = links;
-        this.group = group;
-        this.timestamp = timestamp;
-        this.open =true;
+        this.timestamp = new Date().getTime();
+        this.open = true;
     }
-    public ProjectDescription(String id, String name, String description, String project, ArrayList<Link> links, ArrayList<String> group, long timestamp, boolean open) {
+
+    public ProjectDescription(String id, String name, String description, String project, ArrayList<Link> links, long timestamp, boolean open) {
         this.id = id;
-        this.student = new StudentIdentifier(project,name);
+        this.student = new StudentIdentifier(project, name);
         this.descriptionHTML = convertMarkdownToHtml(description);
-        this.descriptionMD =description;
+        this.descriptionMD = description;
         this.links = links;
-        this.group = group;
         this.timestamp = timestamp;
         this.open = open;
     }
 
-    public void setDescription (String description){
+    public void setDescription(String description) {
         this.descriptionMD = description;
         this.descriptionHTML = convertMarkdownToHtml(description);
     }
@@ -100,14 +97,6 @@ public class ProjectDescription {
         this.links = links;
     }
 
-    public ArrayList<String> getGroup() {
-        return group;
-    }
-
-    public void setGroup(ArrayList<String> group) {
-        this.group = group;
-    }
-
     public long getTimestamp() {
         return timestamp;
     }
@@ -125,7 +114,6 @@ public class ProjectDescription {
                 ", descriptionMD='" + descriptionMD + '\'' +
                 ", open=" + open +
                 ", links=" + links +
-                ", group=" + group +
                 ", timestamp=" + timestamp +
                 '}';
     }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/JournalDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/JournalDAO.java
index f9ff960168c8515ae8c188aa2e3d87bb85d74be6..56a0943a832f092b74676dc6a5133f573404df7b 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/JournalDAO.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/JournalDAO.java
@@ -1,5 +1,6 @@
 package unipotsdam.gf.modules.journal.model.dao;
 
+import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.modules.journal.model.Journal;
 import unipotsdam.gf.modules.journal.model.JournalFilter;
 
@@ -16,10 +17,11 @@ public interface JournalDAO {
 
     Journal getJournal(String id);
 
-    ArrayList<Journal> getAllByProject(String project);
+    ArrayList<Journal> getAllByProject(String project, String student);
 
     ArrayList<Journal> getAllByProjectAndFilter(String project, String student, JournalFilter filter);
 
     void closeJournal(String id);
 
+    ArrayList<String> getOpenJournals(Project project);
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImpl.java
index 1c5ce831a639be436e37f2cbc7dce58bd1eebc34..0ea368909eb9cdb4679bf36b77d51ea11dc490e6 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImpl.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImpl.java
@@ -2,6 +2,7 @@ package unipotsdam.gf.modules.journal.model.dao;
 
 import unipotsdam.gf.core.database.mysql.MysqlConnect;
 import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
+import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
 import unipotsdam.gf.modules.journal.model.Journal;
 import unipotsdam.gf.modules.journal.model.JournalFilter;
@@ -95,7 +96,7 @@ public class JournalDAOImpl implements JournalDAO {
     }
 
     @Override
-    public ArrayList<Journal> getAllByProject(String project) {
+    public ArrayList<Journal> getAllByProject(String project, String student) {
 
         ArrayList<Journal> journals = new ArrayList<>();
 
@@ -104,8 +105,8 @@ public class JournalDAOImpl implements JournalDAO {
         connection.connect();
 
         // build and execute request
-        String request = "SELECT * FROM journals WHERE project= ?;";
-        VereinfachtesResultSet rs = connection.issueSelectStatement(request, project);
+        String request = "SELECT * FROM journals WHERE project= ? AND (author = ? OR visibility = \"ALL\" or visibility = \"GROUP\");";
+        VereinfachtesResultSet rs = connection.issueSelectStatement(request, project, student);
 
         while (rs.next()) {
             journals.add(getJournalFromResultSet(rs));
@@ -144,7 +145,7 @@ public class JournalDAOImpl implements JournalDAO {
     @Override
     public ArrayList<Journal> getAllByProjectAndFilter(String project, String student, JournalFilter filter) {
         if (filter == JournalFilter.ALL) {
-            return getAllByProject(project);
+            return getAllByProject(project, student);
         } else {
             return getAllByStudent(student);
         }
@@ -165,6 +166,29 @@ public class JournalDAOImpl implements JournalDAO {
         connection.close();
     }
 
+    @Override
+    public ArrayList<String> getOpenJournals(Project project) {
+        ArrayList<String> userIds = new ArrayList<>();
+
+        // establish connection
+        MysqlConnect connection = new MysqlConnect();
+        connection.connect();
+
+        // build and execute request
+        String request = "SELECT * FROM journals WHERE project = ? AND open = ?;";
+        VereinfachtesResultSet rs = connection.issueSelectStatement(request, project.getId(), true);
+
+        while (rs.next()) {
+            userIds.add(getJournalFromResultSet(rs).getStudentIdentifier().getStudentId());
+        }
+
+        // close connection
+        connection.close();
+
+        return userIds;
+
+    }
+
     /**
      * extracts a journal from VereinfachtesResultSet
      *
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImpl.java
index f78a69f71a2db188392b540104f1c1e430785d13..3b7ff8613a52c7c616b82cc91be9ba514dba42e5 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImpl.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImpl.java
@@ -36,7 +36,7 @@ public class LinkDAOImpl implements LinkDAO{
         MysqlConnect connection = new MysqlConnect();
         connection.connect();
 
-        // build and execute requestxam
+        // build and execute request stream
         String request = "DELETE FROM links WHERE id = ?;";
         connection.issueInsertOrDeleteStatement(request, linkId);
 
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionDAO.java
index 3137a9fe0be906f35f38e23115190f14b3a0576a..0ebb749d4cf824e02a95646123595c3b2b0fc1b0 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionDAO.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionDAO.java
@@ -1,8 +1,11 @@
 package unipotsdam.gf.modules.journal.model.dao;
 
+import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
 import unipotsdam.gf.modules.journal.model.ProjectDescription;
 
+import java.util.ArrayList;
+
 public interface ProjectDescriptionDAO {
 
     void createDescription(ProjectDescription projectDescription);
@@ -12,4 +15,6 @@ public interface ProjectDescriptionDAO {
     ProjectDescription getDescription(String id);
     void deleteDescription(StudentIdentifier projectDescription);
     void closeDescription(String projectDescriptionId);
+
+    ArrayList<String> getOpenDescriptions(Project project);
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionDAOImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionDAOImpl.java
index ec76a9622ddbc43270f0ffefc0016aed8265bd9b..c0b07344e684abc9a2912d02f8be0b2486e12d06 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionDAOImpl.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionDAOImpl.java
@@ -4,6 +4,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import unipotsdam.gf.core.database.mysql.MysqlConnect;
 import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
+import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
 import unipotsdam.gf.modules.journal.model.ProjectDescription;
 import unipotsdam.gf.modules.journal.util.JournalUtils;
@@ -13,8 +14,6 @@ import java.util.UUID;
 
 public class ProjectDescriptionDAOImpl implements ProjectDescriptionDAO {
 
-    private final Logger log = LoggerFactory.getLogger(ProjectDescriptionDAOImpl.class);
-
 
     @Override
     public void createDescription(ProjectDescription projectDescription) {
@@ -114,7 +113,7 @@ public class ProjectDescriptionDAOImpl implements ProjectDescriptionDAO {
         connection.connect();
 
         // build and execute request
-        String request = "DELETE FROM projectdescription WHERE WHERE author = ? AND project = ?;";
+        String request = "DELETE FROM projectdescription WHERE author = ? AND project = ?;";
         connection.issueInsertOrDeleteStatement(request, studentIdentifier.getStudentId(),studentIdentifier.getProjectId());
 
         // close connection
@@ -137,6 +136,28 @@ public class ProjectDescriptionDAOImpl implements ProjectDescriptionDAO {
         connection.close();
     }
 
+    @Override
+    public ArrayList<String> getOpenDescriptions(Project project) {
+        ArrayList<String> userIds = new ArrayList<>();
+
+        // establish connection
+        MysqlConnect connection = new MysqlConnect();
+        connection.connect();
+
+        // build and execute request
+        String request = "SELECT * FROM projectdescription WHERE project = ? AND open = ?;";
+        VereinfachtesResultSet rs = connection.issueSelectStatement(request, project.getId(), true);
+
+        while (rs.next()) {
+            userIds.add(getDescriptionFromResultSet(rs).getStudent().getStudentId());
+        }
+
+        // close connection
+        connection.close();
+
+        return userIds;
+    }
+
     private ProjectDescription getDescriptionFromResultSet(VereinfachtesResultSet rs) {
         String id = rs.getString("id");
         long timestamp = rs.getTimestamp(2).getTime();
@@ -145,7 +166,7 @@ public class ProjectDescriptionDAOImpl implements ProjectDescriptionDAO {
         String text = rs.getString("text");
         boolean open = rs.getBoolean("open");
 
-        return new ProjectDescription(id,author,text,project,new ArrayList<>(),new ArrayList<>(),timestamp, open);
+        return new ProjectDescription(id,author,text,project,new ArrayList<>(), timestamp, open);
     }
 
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/IJournalImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/IJournalImpl.java
index 15ca144ac8807f6b12522242395d571b0118e99e..d4e9d8a8e99438365fa13c1b2ddad1c30c3d7957 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/IJournalImpl.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/IJournalImpl.java
@@ -1,69 +1,79 @@
 package unipotsdam.gf.modules.journal.service;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.core.management.user.User;
 import unipotsdam.gf.interfaces.IJournal;
 import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
-import unipotsdam.gf.modules.journal.model.EPorfolio;
+import unipotsdam.gf.modules.journal.model.EPortfolio;
 import unipotsdam.gf.modules.journal.model.Journal;
 import unipotsdam.gf.modules.researchreport.ResearchReport;
 
-import javax.swing.text.html.HTML;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
 public class IJournalImpl implements IJournal {
 
-    JournalService journalService = new JournalServiceImpl();
-    ProjectDescriptionService descriptionService = new ProjectDescriptionImpl();
+    private final Logger log = LoggerFactory.getLogger(IJournalImpl.class);
+
+    private final JournalService journalService = new JournalServiceImpl();
+    private final ProjectDescriptionService descriptionService = new ProjectDescriptionImpl();
+
 
     @Override
-    public String exportJournal(StudentIdentifier student) {
-        return null;
+    public Boolean getPortfoliosForEvaluationPrepared(Project project) {
+        return descriptionService.checkIfAllDescriptionsClosed(project) && journalService.checkIfAllJournalClosed(project);
     }
 
+
     @Override
-    public Boolean getPortfoliosForEvaluationPrepared(Project project) {
-        //Teilnehmer suchen
+    public void assignMissingPortfolioTasks(Project project) {
 
-        //Hat jeder Teilnehmer ein geschlossenenes Portfolio
+        ArrayList<User> descUser = descriptionService.getOpenUserByProject(project);
 
-        //Hat jeder die nötigen Journal
+        for(User user : descUser){
 
-        return null;
-    }
+            log.debug("Send close description message to user {}", user.getId());
+            //TODO send message when implemented
 
-    @Override
-    public void assignMissingPortfolioTasks(Project project) {
-        //Teilnehmer suchen
+        }
+
+        ArrayList<User> journalUser = journalService.getOpenUserByProject(project);
+
+        for(User user : journalUser){
+
+            log.debug("Send close journal message to user {}", user.getId());
+            //TODO send message when implemented
 
-        //Hat jeder Teilnehmer ein geschlossenenes Portfolio
+        }
 
-        //Hat jeder die nötigen Journal
 
     }
 
     @Override
     public void uploadJournalEntry(Journal journalEntry, User student) {
-
+        //TODO
     }
 
     @Override
     public void uploadFinalPortfolio(Project project, List<Journal> journalEntries, ResearchReport finalResearchReport, File presentation, User user) {
-
+        //TODO
     }
 
     @Override
-    public EPorfolio getFinalPortfolioForAssessment(Project project, User user) {
+    public EPortfolio getFinalPortfolioForAssessment(Project project, User user) {
 
-        EPorfolio result = new EPorfolio();
+        EPortfolio result = new EPortfolio();
         StudentIdentifier studentIdentifier = new StudentIdentifier(project.getId(),user.getId());
 
-        result.setDescrition(descriptionService.getProjectbyStudent(studentIdentifier));
+        result.setDescription(descriptionService.getProjectByStudent(studentIdentifier));
         result.setJournals(journalService.getAllJournals(user.getId(),project.getId()));
         //TODO result.setReport(...);
 
         return result;
     }
+
+
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalService.java
index 755b1cf594ca1fb3516d4096567bbc2eba522b8f..be8dc781a90624f648196f0a74a55203ae053215 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalService.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalService.java
@@ -1,5 +1,7 @@
 package unipotsdam.gf.modules.journal.service;
 
+import unipotsdam.gf.core.management.project.Project;
+import unipotsdam.gf.core.management.user.User;
 import unipotsdam.gf.modules.journal.model.Journal;
 import unipotsdam.gf.modules.journal.model.JournalFilter;
 
@@ -54,4 +56,8 @@ public interface JournalService {
 
 
     void closeJournal(String journal);
+
+    boolean checkIfAllJournalClosed(Project project);
+
+    ArrayList<User> getOpenUserByProject(Project project);
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalServiceImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalServiceImpl.java
index 79bf05ed35a80df31fdf7f4c1cb93ad5a16c62c0..e6367199fb8ecea4fc583389ca7cef4b553027d1 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalServiceImpl.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalServiceImpl.java
@@ -2,6 +2,9 @@ package unipotsdam.gf.modules.journal.service;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import unipotsdam.gf.core.management.ManagementImpl;
+import unipotsdam.gf.core.management.project.Project;
+import unipotsdam.gf.core.management.user.User;
 import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
 import unipotsdam.gf.modules.journal.model.Journal;
 import unipotsdam.gf.modules.journal.model.JournalFilter;
@@ -15,7 +18,7 @@ import java.util.ArrayList;
 public class JournalServiceImpl implements JournalService {
 
     private final Logger log = LoggerFactory.getLogger(JournalServiceImpl.class);
-    JournalDAO journalDAO = new JournalDAOImpl();
+    private final JournalDAO journalDAO = new JournalDAOImpl();
 
     @Override
     public Journal getJournal(String id) {
@@ -42,7 +45,6 @@ public class JournalServiceImpl implements JournalService {
                 }
 
                 //If Visibility Group, show if student is in group and filter allows it
-                //TODO: project != Group, for testing ok, change for real Service
                 if (j.getVisibility() == Visibility.GROUP && j.getStudentIdentifier().getProjectId().equals(project) && filter == JournalFilter.ALL) {
                     result.add(j);
                 }
@@ -60,7 +62,7 @@ public class JournalServiceImpl implements JournalService {
     public ArrayList<Journal> getAllJournals(String student, String project) {
         log.debug(">> get all journals(" + student + "," + project + ")");
 
-        return journalDAO.getAllByProject(project);
+        return journalDAO.getAllByProject(project, student);
     }
 
     @Override
@@ -96,6 +98,23 @@ public class JournalServiceImpl implements JournalService {
         log.debug("<<< close journal");
     }
 
-    //TODO Export for assessment
-}
+    @Override
+    public boolean checkIfAllJournalClosed(Project project) {
+        return (journalDAO.getOpenJournals(project).size() == 0);
+    }
+
+    @Override
+    public ArrayList<User> getOpenUserByProject(Project project) {
+
+        ManagementImpl management = new ManagementImpl();
+
+        ArrayList<String> userId = journalDAO.getOpenJournals(project);
+        ArrayList<User> users = new ArrayList<>();
+
+        for(String id : userId){
+            users.add(management.getUserByToken(id));
+        }
+        return users;
+    }
 
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImpl.java
index 77ed95bb2febbf0a04a3cb6399493e657ba68125..22ca2a4b63429bdda422f3be7547439caa8c1f0d 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImpl.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImpl.java
@@ -1,5 +1,8 @@
 package unipotsdam.gf.modules.journal.service;
 
+import unipotsdam.gf.core.management.ManagementImpl;
+import unipotsdam.gf.core.management.project.Project;
+import unipotsdam.gf.core.management.user.User;
 import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
 import unipotsdam.gf.modules.journal.model.Link;
 import unipotsdam.gf.modules.journal.model.ProjectDescription;
@@ -8,20 +11,19 @@ import unipotsdam.gf.modules.journal.model.dao.LinkDAOImpl;
 import unipotsdam.gf.modules.journal.model.dao.ProjectDescriptionDAO;
 import unipotsdam.gf.modules.journal.model.dao.ProjectDescriptionDAOImpl;
 
-import java.util.Date;
+import java.util.ArrayList;
 
 public class ProjectDescriptionImpl implements ProjectDescriptionService {
 
-    ProjectDescriptionDAO descriptionDAO = new ProjectDescriptionDAOImpl();
-    LinkDAO linkDAO = new LinkDAOImpl();
+    private final ProjectDescriptionDAO descriptionDAO = new ProjectDescriptionDAOImpl();
+    private final LinkDAO linkDAO = new LinkDAOImpl();
 
     @Override
-    public ProjectDescription getProjectbyStudent(StudentIdentifier studentIdentifier) {
+    public ProjectDescription getProjectByStudent(StudentIdentifier studentIdentifier) {
 
-        //if no description exists, create a new
+        //if no description exists (when page is opened for the first time), create a new one
         if(descriptionDAO.getDescription(studentIdentifier)==null){
-            //TODO richtige Daten, standartwerte über config?
-            ProjectDescription description = new ProjectDescription("0", studentIdentifier.getStudentId(), "Hier soll ein Turtorialtext stehen", studentIdentifier.getProjectId(), null, null, new Date().getTime());
+            ProjectDescription description = new ProjectDescription("0", studentIdentifier.getStudentId(), "Hier soll ein Turtorialtext stehen", studentIdentifier.getProjectId(), null);
             descriptionDAO.createDescription(description);
         }
 
@@ -32,7 +34,7 @@ public class ProjectDescriptionImpl implements ProjectDescriptionService {
     }
 
     @Override
-    public ProjectDescription getProjectbyId(String id) {
+    public ProjectDescription getProjectById(String id) {
         ProjectDescription returnDesc = descriptionDAO.getDescription(id);
         returnDesc.setLinks(linkDAO.getAllLinks(returnDesc.getId()));
         return returnDesc;
@@ -41,7 +43,7 @@ public class ProjectDescriptionImpl implements ProjectDescriptionService {
     @Override
     public void saveProjectText(StudentIdentifier studentIdentifier, String text) {
 
-        ProjectDescription desc = getProjectbyStudent(studentIdentifier);
+        ProjectDescription desc = getProjectByStudent(studentIdentifier);
         desc.setDescription(text);
         descriptionDAO.updateDescription(desc);
     }
@@ -61,4 +63,22 @@ public class ProjectDescriptionImpl implements ProjectDescriptionService {
     public void closeDescription(String projectDescrID) {
         descriptionDAO.closeDescription(projectDescrID);
     }
+
+    @Override
+    public boolean checkIfAllDescriptionsClosed(Project project) {
+        return (descriptionDAO.getOpenDescriptions(project).size() == 0);
+    }
+
+    @Override
+    public ArrayList<User> getOpenUserByProject(Project project) {
+        ManagementImpl management = new ManagementImpl();
+
+        ArrayList<String> userId = descriptionDAO.getOpenDescriptions(project);
+        ArrayList<User> users = new ArrayList<>();
+
+        for(String id : userId){
+            users.add(management.getUserByToken(id));
+        }
+        return users;
+    }
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionService.java
index 2d76e6c454b6c745611742a95b734f9a9d7212a6..a99aef7d96d10670e5e6b580481b5df727a543cf 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionService.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionService.java
@@ -1,8 +1,12 @@
 package unipotsdam.gf.modules.journal.service;
 
+import unipotsdam.gf.core.management.project.Project;
+import unipotsdam.gf.core.management.user.User;
 import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
 import unipotsdam.gf.modules.journal.model.ProjectDescription;
 
+import java.util.ArrayList;
+
 /**
  * Service for learning Journal
  */
@@ -10,9 +14,9 @@ import unipotsdam.gf.modules.journal.model.ProjectDescription;
 public interface ProjectDescriptionService {
 
 
-    ProjectDescription getProjectbyStudent(StudentIdentifier studentIdentifier);
+    ProjectDescription getProjectByStudent(StudentIdentifier studentIdentifier);
 
-    ProjectDescription getProjectbyId(String id);
+    ProjectDescription getProjectById(String id);
     void saveProjectText(StudentIdentifier studentIdentifier, String text);
 
     void addLink(String project, String link, String name);
@@ -20,4 +24,8 @@ public interface ProjectDescriptionService {
     void deleteLink(String link);
 
     void closeDescription(String projectDescriptionId);
+
+    boolean checkIfAllDescriptionsClosed(Project project);
+
+    ArrayList<User> getOpenUserByProject(Project project);
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/util/JournalUtils.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/util/JournalUtils.java
index d38cf359ae62c553574bce825ea6b17abce99118..4133b81fc2b406d71f03ab56d3c4e9fd6f365744 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/util/JournalUtils.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/util/JournalUtils.java
@@ -15,7 +15,7 @@ public class JournalUtils {
     public static final Logger log = LoggerFactory.getLogger(JournalUtils.class);
 
     /**
-     * Coverts a strirng to enum category
+     * Coverts a string to enum category
      *
      * @param category string
      * @return category, TITLE if string does not match
@@ -30,7 +30,7 @@ public class JournalUtils {
         } catch (IllegalArgumentException e) {
             c = Category.TITEL;
             //TODO extra Category for fail?
-            JournalUtils.log.debug("Illegal argument for visibility, default to TITLR");
+            JournalUtils.log.debug("Illegal argument for visibility, default to TITLE");
         }
         return c;
     }
@@ -67,10 +67,9 @@ public class JournalUtils {
         connection.connect();
 
         // build and execute request
-        //TODO Formatstring
         String request = "SELECT COUNT(*) > 0 AS `exists` FROM " + table+ " WHERE id = ?;";
         VereinfachtesResultSet rs = connection.issueSelectStatement(request,id);
-        log.debug("querry: " + rs.toString());
+        JournalUtils.log.debug("query: " + rs.toString());
         if (rs.next()) {
             // save the response
             int count = rs.getInt("exists");
@@ -79,11 +78,7 @@ public class JournalUtils {
             connection.close();
 
             // return true if we found the id
-            if (count < 1) {
-                return false;
-            } else {
-                return true;
-            }
+            return count >= 1;
         }
 
         // something happened
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/JournalView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/JournalView.java
index 68059e911c2c6e91921895d1cc26bb9a837bd3ea..d85291ced130bb3ec0108c8f05e56d238b42c1b4 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/JournalView.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/JournalView.java
@@ -60,8 +60,8 @@ public class JournalView {
 
         log.debug(">>> getJournals: student=" + student + " project=" + project +" filter="  + filter  );
 
-        JournalFilter filt = (filter.equals("ALL")) ? JournalFilter.ALL:JournalFilter.OWN;
-        ArrayList<Journal> result = journalService.getAllJournals(student,project,filt);
+        JournalFilter journalFilter = (filter.equals("ALL")) ? JournalFilter.ALL:JournalFilter.OWN;
+        ArrayList<Journal> result = journalService.getAllJournals(student,project,journalFilter);
 
         log.debug(">>> getJournals: size=" + result.size());
 
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java
index 2b9fe312ee621cfb9ce686deeccfcce77f16c8e1..a8cb61a98d5c351f52b87ab03e817cd4d098de64 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java
@@ -32,7 +32,7 @@ public class ProjectDescriptionView {
     public Response getProjectDescription(@PathParam("project") String project, @PathParam("student") String student){
         log.debug(">>> getProjectDescription: " + project + "/" + student);
 
-        ProjectDescription result = descriptionService.getProjectbyStudent(new StudentIdentifier(project, student));
+        ProjectDescription result = descriptionService.getProjectByStudent(new StudentIdentifier(project, student));
 
         log.debug(">>> getProjectDescription");
         return Response.ok(result).build();
@@ -71,7 +71,7 @@ public class ProjectDescriptionView {
     public Response addLink(@FormParam("link") String link, @FormParam("name") String name, @FormParam("projectdescriptionId") String project){
         log.debug(">>> addLink: " + name + ":" + link);
 
-        ProjectDescription desc = descriptionService.getProjectbyId(project);
+        ProjectDescription desc = descriptionService.getProjectById(project);
         descriptionService.addLink(project,link, name );
 
 
@@ -122,7 +122,7 @@ public class ProjectDescriptionView {
     public Response closeDescription(String desc){
         log.debug(">>> closeDescription: " + desc);
 
-        StudentIdentifier student = descriptionService.getProjectbyId(desc).getStudent();
+        StudentIdentifier student = descriptionService.getProjectById(desc).getStudent();
         descriptionService.closeDescription(desc);
         try {
             URI location = new URI("../pages/eportfolio.jsp?token=" + student.getStudentId() + "&projectId=" + student.getProjectId());
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/DummyFeedback.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/DummyFeedback.java
index b8098bebafa5b556b4403ef1ac256b7ac1450d2b..443ce212400945a30640d7b3213233a3ed4e6e1f 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/DummyFeedback.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/DummyFeedback.java
@@ -1,6 +1,5 @@
 package unipotsdam.gf.modules.peer2peerfeedback;
 
-import org.mockito.Mockito;
 import uk.co.jemos.podam.api.PodamFactory;
 import uk.co.jemos.podam.api.PodamFactoryImpl;
 import unipotsdam.gf.assignments.Assignee;
@@ -8,6 +7,7 @@ import unipotsdam.gf.assignments.NotImplementedLogger;
 import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.core.management.user.User;
 import unipotsdam.gf.interfaces.Feedback;
+import unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Model.Peer2PeerFeedback;
 import unipotsdam.gf.modules.researchreport.ResearchReport;
 
 import java.io.File;
@@ -33,6 +33,8 @@ public class DummyFeedback implements Feedback {
         return null;
     }
 
+    public Peer2PeerFeedback createPeer2PeerFeedback (Peer2PeerFeedback feedback){return null; }
+
     @Override
     public Boolean giveFeedback(Peer2PeerFeedback feedback, ResearchReport document) {
         return null;
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/ExampleFeedback.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/ExampleFeedback.java
deleted file mode 100644
index 9b44f2d2e81a8ca1133da2917cfb47ba69bfdb7d..0000000000000000000000000000000000000000
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/ExampleFeedback.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package unipotsdam.gf.modules.peer2peerfeedback;
-
-import unipotsdam.gf.core.management.user.User;
-
-import java.io.File;
-
-/**
- Peer2PeerFeedback example
- created by Katharina
- */
-
-public class ExampleFeedback {
-
-    String feedbacktopic = "Vorschlag zur Methodik";
-    String feedbacktype = "Text";
-    Category feedbackcategory = Category.METHODIK;
-    User feedbackrec = new User();
-    User feedbacksend = new User();
-    File file = new File("src/main/resources/example.txt"); //gibt erstmal nur einen Pfad an
-    //String path = file.getAbsolutePath();
-
-
-    public Peer2PeerFeedback examplePeerFeedback (){
-
-        Peer2PeerFeedback example = new Peer2PeerFeedback(feedbacktopic, feedbacktype,
-                feedbackcategory, file, feedbacksend, feedbackrec);
-
-        return example;
-    }
-}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/Peer2PeerFeedback.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/Peer2PeerFeedback.java
deleted file mode 100644
index 55bd0e9dad14bc9e1954f223599ebdb4587f0dd6..0000000000000000000000000000000000000000
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/Peer2PeerFeedback.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package unipotsdam.gf.modules.peer2peerfeedback;
-
-import unipotsdam.gf.core.management.user.User;
-
-import java.io.File;
-
-/**
- Peer2PeerFeedback Object
- created by Katharina
- */
-
-public class Peer2PeerFeedback{
-
-
-    private String feedbacktopic;
-    private String feedbacktype;
-    private Category feedbackcategory;
-    private File document;
-    private User feedbacksender;
-    private User feedbackreceiver;
-
-    public Peer2PeerFeedback(String feedbacktopic, String feedbacktype, Category feedbackcategory, File document, User feedbacksender, User feedbackreceiver) {
-        this.feedbacktopic = feedbacktopic;
-        this.feedbacktype = feedbacktype;
-        this.feedbackcategory = feedbackcategory;
-        this.document = document;
-        this.feedbacksender = feedbacksender;
-        this.feedbackreceiver = feedbackreceiver;
-    }
-
-    public String getFeedbacktopic() {
-
-        return feedbacktopic;
-    }
-
-    public void setFeedbacktopic(String feedbacktopic) {
-
-        this.feedbacktopic = feedbacktopic;
-    }
-
-
-    public String getFeedbacktype() {
-
-        return feedbacktype;
-    }
-
-    public void setFeedbacktype(String feedbacktype) {
-
-        this.feedbacktype = feedbacktype;
-    }
-
-
-
-    public Category getFeedbackcategory() {
-        return feedbackcategory;
-    }
-
-    public void setFeedbackcategory(Category feedbackcategory) {
-        this.feedbackcategory = feedbackcategory;
-    }
-
-
-    public File getDocument() {
-
-        return document;
-    }
-
-    public void setDocument(File document) {
-
-        this.document = document;
-    }
-
-
-    public User getFeedbacksender() {
-        return feedbacksender;
-    }
-
-    public void setFeedbacksender(User feedbacksender) {
-        this.feedbacksender = feedbacksender;
-    }
-
-    public User getFeedbackreceiver() {
-        return feedbackreceiver;
-    }
-
-    public void setFeedbackreceiver(User feedbackreceiver) {
-        this.feedbackreceiver = feedbackreceiver;
-    }
-
-    
-    @Override
-    public String toString() {
-        return "Peer2PeerFeedback{" +
-                "feedbacktopic=" + feedbacktopic +
-                ", feedbacktype=" + feedbacktype +
-                ", feedbackreference=" + feedbackcategory +
-                ", feedbacksender='" + feedbacksender +
-                ", feedbackreceiver=" + feedbackreceiver +
-                ", document=" + document.toString() +
-                '}';
-    }
-
-
-}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/PeerFeedbackService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/PeerFeedbackService.java
new file mode 100644
index 0000000000000000000000000000000000000000..60a1f82710a3e27b29d1cb402ff8a58fa9b567b4
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/PeerFeedbackService.java
@@ -0,0 +1,5 @@
+package unipotsdam.gf.modules.peer2peerfeedback;
+
+public interface PeerFeedbackService {
+
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/Controller/PeerFeedbackController.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/Controller/PeerFeedbackController.java
new file mode 100644
index 0000000000000000000000000000000000000000..f7b899b487b07220779ccf5674bd0d1d8d259b23
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/Controller/PeerFeedbackController.java
@@ -0,0 +1,112 @@
+package unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Controller;
+
+import unipotsdam.gf.core.database.mysql.MysqlConnect;
+import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
+import unipotsdam.gf.modules.peer2peerfeedback.Category;
+import unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Model.Peer2PeerFeedback;
+
+import java.util.ArrayList;
+import java.util.UUID;
+
+public class PeerFeedbackController {
+
+    //@Override
+    public void createPeer2PeerFeedback(Peer2PeerFeedback feedback) {
+
+        // create a new id if we found no id.
+        String uuid = UUID.randomUUID().toString();
+        // while (existsfeedbackId(uuid)) {            //Todo: existsfeedbackId
+        //     uuid = UUID.randomUUID().toString();
+        //  }
+
+        // establish connection
+        MysqlConnect connection = new MysqlConnect();
+        connection.connect();
+
+        // build and execute request
+        String request = "INSERT INTO peerfeedback (`id`, `reciever`, `sender`, `text`, `category`, `filename`) VALUES (?,?,?,?,?,?);";
+        connection.issueInsertOrDeleteStatement(request, uuid, feedback.getFeedbackreceiver(), feedback.getFeedbacksender(), feedback.getText(), feedback.getFeedbackcategory(), feedback.getFilename());
+
+        // close connection
+        connection.close();
+
+        // build response annotation
+        //Annotation annotationResponse = getAnnotation(uuid);
+
+        // return Response.ok().build();
+        //return null;
+
+    }
+
+    //@Override
+    public Peer2PeerFeedback getPeer2PeerFeedback(String id) {
+
+        // establish connection
+        MysqlConnect connection = new MysqlConnect();
+        connection.connect();
+
+        // build and execute request
+        String request = "SELECT * FROM peerfeedback WHERE id = ?;";
+        VereinfachtesResultSet rs = connection.issueSelectStatement(request, id);
+        System.out.print(rs);
+
+        if (rs.next()) {
+
+            // save annotation
+            Peer2PeerFeedback feedback = getPeerfeedbackFromResultSet(rs);
+
+            // close connection
+            connection.close();
+            System.out.print(feedback);
+
+            return feedback;
+       } else {
+
+            // close connection
+            connection.close();
+           System.out.print("null");
+           return null;
+       }
+
+    }
+
+    public ArrayList<Peer2PeerFeedback> getAllFeedbacks(String sender) {
+
+        ArrayList<Peer2PeerFeedback> feedbacks = new ArrayList<>();
+
+        // establish connection
+        MysqlConnect connection = new MysqlConnect();
+        connection.connect();
+
+        // build and execute request
+        String request = "SELECT * FROM peerfeedback WHERE sender= ?;";
+        VereinfachtesResultSet rs = connection.issueSelectStatement(request, sender);
+
+        while (rs.next()) {
+            feedbacks.add(getPeerfeedbackFromResultSet(rs));
+        }
+
+        // close connection
+        connection.close();
+        System.out.print(feedbacks);
+        return feedbacks;
+
+    }
+
+
+    private Peer2PeerFeedback getPeerfeedbackFromResultSet(VereinfachtesResultSet rs) {
+
+        String id = rs.getString("id");
+        long timestamp = rs.getTimestamp(2).getTime();
+        String reciever = rs.getString("reciever");
+        String sender = rs.getString("sender");
+        String text = rs.getString("text");
+        Object category = rs.getObject("category");
+        String filename = rs.getString("filename");
+
+        //AnnotationBody body = new AnnotationBody(title, comment, startCharacter, endCharacter);
+
+        //return new Peer2PeerFeedback("id", 1234, Category.TITEL, "reciever", "sender", "test", "filename");
+        return new Peer2PeerFeedback(id,timestamp,Category.TITEL,reciever, sender, text, filename);
+    }
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/Model/Peer2PeerFeedback.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/Model/Peer2PeerFeedback.java
new file mode 100644
index 0000000000000000000000000000000000000000..3974138735cb7cba9b824310fcdad5b2eee9e079
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/Model/Peer2PeerFeedback.java
@@ -0,0 +1,94 @@
+package unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Model;
+
+import unipotsdam.gf.core.management.user.User;
+import unipotsdam.gf.modules.peer2peerfeedback.Category;
+import static unipotsdam.gf.view.MarkdownUtils.convertMarkdownToHtml;
+
+import java.io.File;
+
+/**
+ Peer2PeerFeedback Object
+ created by Katharina
+ */
+
+public class Peer2PeerFeedback{
+
+
+    private String id;
+    private long timestamp;
+    private Category category;
+    private String text;
+    private String sender;
+    private String receiver;
+    private String filename;
+
+    public Peer2PeerFeedback(String id, long timestamp, Category category, String text, String sender, String receiver, String filename) {
+        this.id = id;
+        this.timestamp = timestamp;
+        this.category = category;
+        this.text = convertMarkdownToHtml(text);
+        this.sender = sender;
+        this.receiver = receiver;
+        this.filename = filename;
+    }
+
+    public Peer2PeerFeedback(){
+
+    }
+
+    public String getID() { return id; }
+
+    public void setID(String id) { this.id = id; }
+
+    public long getTimestamp() { return timestamp; }
+
+    public void setTimestamp(long timestamp) { this.timestamp = timestamp; }
+
+    public Category getFeedbackcategory() {
+        return category;
+    }
+
+    public void setFeedbackcategory(Category category) {
+        this.category = category;
+    }
+
+    public String getText() { return text; }
+
+    public void setText(String text) { this.text = text; }
+
+    public String getFilename() { return filename; }
+
+    public void setFilename(String filename) { this.filename = filename; }
+
+    public String getFeedbacksender() {
+        return sender;
+    }
+
+    public void setFeedbacksender(String feedbacksender) {
+        this.sender = sender;
+    }
+
+    public String getFeedbackreceiver() {
+        return receiver;
+    }
+
+    public void setFeedbackreceiver(String feedbackreceiver) {
+        this.receiver = receiver;
+    }
+
+    
+    @Override
+    public String toString() {
+        return "Peer2PeerFeedback{" +
+                "id=" + id +
+                ", timestamp=" + timestamp +
+                ", category=" + category +
+                ", sender='" + sender +
+                ", receiver=" + receiver +
+                ", text=" + text +
+                ", filename=" + filename +
+                '}';
+    }
+
+
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/View/PeerFeedbackView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/View/PeerFeedbackView.java
new file mode 100644
index 0000000000000000000000000000000000000000..90f0f0519bb334fce5818a3c1fd12220cdb96536
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/View/PeerFeedbackView.java
@@ -0,0 +1,57 @@
+package unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.View;
+
+import com.sun.tools.xjc.model.Model;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import unipotsdam.gf.modules.peer2peerfeedback.Category;
+import unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Model.Peer2PeerFeedback;
+import unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Controller.PeerFeedbackController;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.util.ArrayList;
+
+@Path("/peerfeedback")
+//@Consumes({"application/json"})
+//@Produces({"application/json"})
+//@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+//@Produces(MediaType.TEXT_PLAIN)
+@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+@Produces(MediaType.APPLICATION_JSON)
+public class PeerFeedbackView {
+
+    //private final Logger log = LoggerFactory.getLogger(PeerFeedbackView.class);
+
+    @POST
+    @Path("/save")
+    public Response createPeerfeedback(@FormParam("text") String text, @FormParam("student") String student, @FormParam("id") String id, @FormParam("reciever") String reciever,
+                                        @FormParam("sender") String sender, @FormParam("filename") String filename, @FormParam("category") Category category, @FormParam("timestamp") Long timestamp) {
+
+        // save peerfeedback request in database and receive the new peerfeedback object
+        //PeerFeedbackController controller = new PeerFeedbackController();
+        //Peer2PeerFeedback pf = controller.createPeer2PeerFeedback(feedback);
+        //return Response.ok(pf).build();
+
+        String message = text + student;
+        Peer2PeerFeedback feedback = new Peer2PeerFeedback("id", 1234, Category.TITEL, "reciever", "sender", text, "filename");
+        PeerFeedbackController controller = new PeerFeedbackController();
+        controller.createPeer2PeerFeedback(feedback);
+
+
+        return Response.ok().build(); //feedback
+
+    }
+
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    @Path("{sender}")
+    public Response getPeerfeedback(@PathParam("sender") String sender){
+
+        PeerFeedbackController controller = new PeerFeedbackController();
+        ArrayList<Peer2PeerFeedback> fd = controller.getAllFeedbacks(sender);
+        return Response.ok(fd).build();
+    }
+
+
+}
diff --git a/gemeinsamforschen/src/main/webapp/assets/css/footer.css b/gemeinsamforschen/src/main/webapp/assets/css/footer.css
index 2e2c0e2201dbb15067036094d7b3347845b22d96..beb5cbc6a2d2f0a9015b498d756e4a0531d77ca8 100644
--- a/gemeinsamforschen/src/main/webapp/assets/css/footer.css
+++ b/gemeinsamforschen/src/main/webapp/assets/css/footer.css
@@ -2,42 +2,37 @@
     background:#DDDDDD;
 }
 
-.pg-enrollment {
+.pg-CourseCreation {
     background: #777777;
     width:5%;
 }
 
-.pg-groups {
+.pg-GroupFormation {
     background: #AAAA77;
     width:15%;
 }
 
-.pg-dossier {
+.pg-test {
+    background: #4F3A3E;
+    width: 50%;
+}
+
+.pg-DossierFeedback {
     background: #AA77AA;
     width:30%;
 }
 
-.pg-feedback {
+.pg-Execution {
     background: #77AAAA;
-    width:45%;
-}
-
-.pg-reflection {
-    background: #55AA55;
-    width:60%;
-}
-
-.pg-presentation {
-    background: #5555AA;
-    width:70%;
+    width:55%;
 }
 
-.pg-assessment {
+.pg-Assessment {
     background: #AA5555;
-    width:85%;
+    width:75%;
 }
 
-.pg-done {
+.pg-Projectfinished {
     background: #34DD44;
     width:100%;
 }
diff --git a/gemeinsamforschen/src/main/webapp/assets/css/researchReport.css b/gemeinsamforschen/src/main/webapp/assets/css/researchReport.css
index bd132c97584a6d2df270969e785a565d28f9c3d6..d9074aad2960cacb3b11921b1aefbdede8bad780 100644
--- a/gemeinsamforschen/src/main/webapp/assets/css/researchReport.css
+++ b/gemeinsamforschen/src/main/webapp/assets/css/researchReport.css
@@ -1,5 +1,5 @@
-/*
-html, body
+/*Uncompiled for Codepen
+body, html
     width: 100%
     height: 100%
     margin: 0
@@ -11,90 +11,67 @@ html, body
 .researchReportForm
     width: 100%
     display: grid
-    grid-template-rows: 5rem 90vh 5rem
-    grid-template-columns: 15% 85%
-    grid-template-areas:   "sidebar header header" "sidebar editor editor" "sidebar buttons ." "sidebar progress ."
-
-
-
-
-.researchReportMenu
-    background: black
-    color: white
-    grid-area: sidebar
-    nav
-        font-size: 1.5rem
-        menu
-            menuitem
-                a
-                    color: White
-                    text-decoration: none
-                    margin: 0 0 0 1rem
-
-
-.researchReportTitlebar
-    background: #003f60
-    color: White
-    grid-area: header
-    display: flex
-    justify-content: center
-    align-items: center
-
-
-.researchReportEditor
-    grid-area: editor
-    background: gray
-    color: black
-    display: flex
-    justify-content: Left
-    align-items: Center
-    .editor-inhalt
-            margin: 6rem
+    grid-template-rows: 5rem 100vh 7rem 5rem
+    grid-template-columns: 1fr 1fr 1fr 1fr 1fr
+    grid-template-areas: "header header header header header" "editor editor editor editor editor" ". . buttons upload ." "progress progress progress progress progress"
+    .researchReportTitlebar
+        grid-area: header
+        background-color: #003f60
+        color: white
+        display: flex
+        justify-content: center
+        align-items: center
+
+    .researchReportEditor
+        grid-area: editor
+        background: gray
+        color: black
+        display: flex
+        justify-content: Center
+        align-items: Center
+
+        .editor-inhalt
+            margin: 10rem
             padding: 6rem
             font-size: 2rem
             color: #fff
             text-align: Left
             width: 10%
 
-
-
-.researchReportProgress
-    background: #003f60
-    color: red
-    grid-area: progress
-    display: flex
-    justify-content: center
-    align-items: center
-    nav
-    font-size: 1.2rem
-    menu
-            menuitem
-                a
-                    color: white
-                    text-decoration: none
-                    margin: 0 0 0 0rem
-                    cursor: pointer
-
-
-
-
-
-.researchReportButtons
-    background-color: #4CAF50
-    border: 1.8px solid black
-    color: black
-    padding: 15px 25px
-    text-align: center
-    font-size: 16px
-    cursor: pointer
-
-*/
-
-
-
-
-
-html, body {
+    .researchReportButtons
+        background-color: #4CAF50
+        border: 1.8px solid black
+        color: gray
+        grid-area: buttons
+        padding: 15px 25px
+        text-align: Center
+        font-size: 16px
+        cursor: pointer
+
+
+    .researchReportUpload
+        grid-area: upload
+
+
+    .researchReportProgress
+        background: #003f60
+        color: red
+        grid-area: progress
+        display: flex
+        justify-content: center
+        align-items: center
+        nav
+            font-size: 1.5rem
+            menu
+                menuitem
+                    a
+                        color: White
+                        text-decoration: none
+                        margin: 0 0 0 1rem
+                        cursor: pointer
+ */
+
+body, html {
   width: 100%;
   height: 100%;
   margin: 0;
@@ -107,52 +84,48 @@ html, body {
 .researchReportForm {
   width: 100%;
   display: grid;
-  grid-template-rows: 5rem 90vh 5rem;
-  grid-template-columns: 15% 85%;
-  grid-template-areas: "sidebar header header" "sidebar editor editor" "sidebar . buttons " "sidebar progress .";
-}
-
-.researchReportMenu {
-  background: black;
-  color: white;
-  grid-area: sidebar;
-}
-.researchReportMenu nav {
-  font-size: 1.5rem;
+  grid-template-rows: 5rem 100vh 7rem 5rem;
+  grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
+  grid-template-areas: "header header header header header" "editor editor editor editor editor" ". . buttons upload ." "progress progress progress progress progress";
 }
-.researchReportMenu nav menu menuitem a {
-  color: White;
-  text-decoration: none;
-  margin: 0 0 0 1rem;
-}
-
-.researchReportTitlebar {
-  background: #003f60;
-  color: White;
+.researchReportForm .researchReportTitlebar {
   grid-area: header;
+  background-color: #003f60;
+  color: white;
   display: flex;
   justify-content: center;
   align-items: center;
 }
-
-.researchReportEditor {
+.researchReportForm .researchReportEditor {
   grid-area: editor;
   background: gray;
   color: black;
   display: flex;
-  justify-content: Left;
+  justify-content: Center;
   align-items: Center;
 }
-.researchReportEditor .editor-inhalt {
-  margin: 6rem;
+.researchReportForm .researchReportEditor .editor-inhalt {
+  margin: 10rem;
   padding: 6rem;
   font-size: 2rem;
   color: #fff;
   text-align: Left;
   width: 10%;
 }
-
-.researchReportProgress {
+.researchReportForm .researchReportButtons {
+  background-color: #4CAF50;
+  border: 1.8px solid black;
+  color: gray;
+  grid-area: buttons;
+  padding: 15px 25px;
+  text-align: Center;
+  font-size: 16px;
+  cursor: pointer;
+}
+.researchReportForm .researchReportUpload {
+  grid-area: upload;
+}
+.researchReportForm .researchReportProgress {
   background: #003f60;
   color: red;
   grid-area: progress;
@@ -160,23 +133,12 @@ html, body {
   justify-content: center;
   align-items: center;
 }
-.researchReportProgress nav {
+.researchReportForm .researchReportProgress nav {
   font-size: 1.5rem;
 }
-.researchReportProgress nav menu menuitem a {
+.researchReportForm .researchReportProgress nav menu menuitem a {
   color: White;
   text-decoration: none;
   margin: 0 0 0 1rem;
   cursor: pointer;
 }
-
-.researchReportButtons {
-  background-color: #4CAF50;
-  border: 1.8px solid black;
-  color: black;
-  padding: 15px 25px;
-  text-align: center;
-  font-size: 16px;
-  cursor: pointer;
-}
-
diff --git a/gemeinsamforschen/src/main/webapp/assets/css/researchReportOverview.css b/gemeinsamforschen/src/main/webapp/assets/css/researchReportOverview.css
new file mode 100644
index 0000000000000000000000000000000000000000..b4fbd6ef76562af9044476a5994be84fcff8e3dd
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/css/researchReportOverview.css
@@ -0,0 +1,149 @@
+/*
+Uncompiled for Codepen
+
+body, html
+    width: 100%
+    height: 100%
+    margin: 0
+    padding: 0
+    font-size: 15px
+    font-family: 'Roboto', sans-serif
+    background-color: gray
+
+.researchReportOverview
+    width: 100%
+    display: grid
+    grid-template-rows: 3rem 50vh 1rem 50vh
+    grid-template-columns: 1fr 1fr 1fr 1fr 1fr
+    grid-template-areas: "header header header header header" "report report report report report" ". . upload . ." "feed feed feed feed feed"
+
+    .researchReportTitlebar
+        grid-area: header
+        background-color: #003f60
+        color: white
+        display: flex
+        justify-content: center
+        align-items: center
+
+    table
+        table-layout: auto
+        width: 100%
+        border-collapse: collapse
+        overflow: scroll
+
+
+
+    th
+        border: 1px solid #999
+        padding: 0.5rem
+        text-align: center
+
+    td
+        border: 1px solid #999
+        padding: 0.5rem
+        text-align: left
+
+    .reports
+        grid-area: report
+        margin: auto
+        width: 50%
+        border: 3px solid #003f60
+        padding: 10px
+        background-color: white
+
+    tr:hover
+        background-color: #c0eef1
+
+    .feedbacks
+        grid-area: feed
+        margin: auto
+        width: 50%
+        border: 3px solid #003f60
+        padding: 10px
+        background-color: white
+
+
+
+    .researchReportUpload
+        grid-area: upload
+
+
+
+ */
+
+body, html {
+    width: 100%;
+    height: 100%;
+    margin: 0;
+    padding: 0;
+    font-size: 15px;
+    font-family: "Roboto", sans-serif;
+    background-color: gray;
+}
+
+.researchReportOverview {
+    width: 100%;
+    display: grid;
+    grid-template-rows: 4rem 50vh 2rem 50vh;
+    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
+    grid-template-areas: "header header header header header" "report report report report report" ". . buttons . ." "feed feed feed feed feed";
+}
+.researchReportOverview .researchReportTitlebar {
+    grid-area: header;
+    background-color: #003f60;
+    color: white;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+}
+.researchReportOverview table {
+    table-layout: auto;
+    width: 100%;
+    border-collapse: collapse;
+    overflow: scroll;
+}
+.researchReportOverview th {
+    border: 1px solid #999;
+    padding: 0.5rem;
+    text-align: center;
+}
+.researchReportOverview td {
+    border: 1px solid #999;
+    padding: 0.5rem;
+    text-align: left;
+}
+.researchReportOverview .reports {
+    grid-area: report;
+    margin: auto;
+    width: 50%;
+    border: 3px solid #003f60;
+    padding: 10px;
+    background-color: white;
+}
+.researchReportOverview tr:hover {
+    background-color: #c0eef1;
+}
+.researchReportOverview .feedbacks {
+    grid-area: feed;
+    margin: auto;
+    width: 50%;
+    border: 3px solid #003f60;
+    padding: 10px;
+    background-color: white;
+}
+.researchReportOverview .researchReportUpload {
+    grid-area: upload;
+
+
+}
+
+.researchReportOverview .researchReportButtons {
+    background-color: #4CAF50;
+    border: 1.8px solid black;
+    color: gray;
+    grid-area: buttons;
+    padding: 15px 25px;
+    text-align: Center;
+    font-size: 16px;
+    cursor: pointer;
+}
diff --git a/gemeinsamforschen/src/main/webapp/assets/css/viewfeedback.css b/gemeinsamforschen/src/main/webapp/assets/css/viewfeedback.css
new file mode 100644
index 0000000000000000000000000000000000000000..625f097619306e338664716c6fd15adac0e219c8
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/css/viewfeedback.css
@@ -0,0 +1,42 @@
+.feedback-container {
+    border: 2px solid #dedede;
+    background-color: #f1f1f1;
+    border-radius: 5px;
+    padding: 10px;
+    margin: 10px 0;
+}
+
+.darker {
+    border-color: #ccc;
+    background-color: #ddd;
+}
+
+.feedback-container::after {
+    content: "";
+    clear: both;
+    display: table;
+}
+
+.feedback-container img {
+    float: left;
+    max-width: 60px;
+    width: 100%;
+    margin-right: 20px;
+    border-radius: 50%;
+}
+
+.feedback-container img.right {
+    float: right;
+    margin-left: 20px;
+    margin-right:0;
+}
+
+.time-right {
+    float: right;
+    color: #aaa;
+}
+
+.time-left {
+    float: left;
+    color: #999;
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/img/noImg.png b/gemeinsamforschen/src/main/webapp/assets/img/noImg.png
new file mode 100644
index 0000000000000000000000000000000000000000..efc3eb6959ce4f5badd7802c54bccfeccbf2ecf3
Binary files /dev/null and b/gemeinsamforschen/src/main/webapp/assets/img/noImg.png differ
diff --git a/gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/package.json b/gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/package.json
index 8195019e54e4fea3eedb6e13ab4ff95686722e7f..09d867b21f51f370d2a4298fa4f050e6eaaf9bf4 100644
--- a/gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/package.json
+++ b/gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/package.json
@@ -20,15 +20,17 @@
   },
   "homepage": "https://github.com/xoxco/jQuery-Tags-Input",
   "devDependencies": {
+    "filepond": "^1.8.6",
+    "filepond-plugin-image-preview": "^1.0.10",
     "glob": "^4.3.1",
     "grunt": "^0.4.5",
+    "grunt-cli": "^0.1.13",
     "grunt-contrib-cssmin": "^0.10.0",
     "grunt-contrib-uglify": "^0.6.0",
     "grunt-contrib-watch": "^0.6.1",
     "grunt-newer": "^0.8.0",
     "jit-grunt": "^0.8.0",
     "load-grunt-tasks": "^0.6.0",
-    "time-grunt": "^0.4.0",
-    "grunt-cli": "^0.1.13"
+    "time-grunt": "^0.4.0"
   }
 }
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/changePhase.js b/gemeinsamforschen/src/main/webapp/assets/js/changePhase.js
new file mode 100644
index 0000000000000000000000000000000000000000..d35d4ceb258534952e37a952450705f2c0f24b4d
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/changePhase.js
@@ -0,0 +1,58 @@
+$(document).ready(function () {
+    let projectId = $('#projectId').html().trim();
+    $.ajax({
+        url: '../rest/phases/projects/'+projectId,
+        headers: {
+            "Content-Type": "application/json",
+            "Cache-Control": "no-cache"
+        },
+        type: 'GET',
+        success: function (response) {
+            let phaseDiv = $('#'+response);
+            if (phaseDiv !== null){
+                phaseDiv.toggleClass('alert-info');
+            } else {
+                $('#end').toggleClass('alert-info');
+            }
+        },
+        error: function (a) {
+
+        }
+    });
+    $('#btnAssessment').on('click', function(){
+        changePhase('Assessment');
+    });
+    $('#btnExecution').on('click', function(){
+        changePhase('Execution');
+    });
+    $('#btnGroupformation').on('click', function(){
+        changePhase('GroupFormation');
+    });
+    $('#btnCourseCreation').on('click', function(){
+        changePhase('CourseCreation');
+    });
+    $('#btnDossierFeedback').on('click', function(){
+        changePhase('DossierFeedback');
+    });
+    $('#btnProjectfinished').on('click', function(){
+        changePhase('Projectfinished');
+    });
+});
+
+function changePhase(toPhase){
+    let projectId = $('#projectId').html().trim();
+    $.ajax({
+        url: '../rest/phases/'+toPhase+'/projects/'+projectId,
+        headers: {
+            "Content-Type": "application/json",
+            "Cache-Control": "no-cache"
+        },
+        type: 'POST',
+        success: function () {
+            location.href="#"
+        },
+        error: function (a) {
+
+        }
+    });
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/createProject.js b/gemeinsamforschen/src/main/webapp/assets/js/createProject.js
index 409171b0173bbcbd105b0d9955123fc78570d606..696572480960c61746fcf08f4f70d407a9037d95 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/createProject.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/createProject.js
@@ -2,4 +2,25 @@ $(document).ready(function(){
     $('#submit').on('click', function(){
         location.href="specificRequirement.jsp?token="+getUserTokenFromUrl();
     });
+    let projectId = $('#projectId').html().trim();
+    $.ajax({
+        url: '../rest/phases/projects/'+projectId,
+        headers: {
+            "Content-Type": "application/json",
+            "Cache-Control": "no-cache"
+        },
+        type: 'GET',
+        success: function (response) {
+            let phaseDiv = $('#'+response);
+            if (phaseDiv !== null){
+                phaseDiv.toggleClass('alert','alert-info');
+            } else {
+                $('#end').addClass('alert-info');
+            }
+
+        },
+        error: function (a) {
+
+        }
+    });
 });
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/createQuiz.js b/gemeinsamforschen/src/main/webapp/assets/js/createQuiz.js
index b8e097d0a5e1ae22d441c4cc3ac79d3d04c21ab6..37413173379a5a73600abf21938d1ef9be06dede 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/createQuiz.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/createQuiz.js
@@ -1,34 +1,34 @@
 $(document).ready(function () {
     $('#addCorrectAnswer').on('click', function(){
-        var divCorrectAnswer = document.getElementById('correctAnswers');
-        var i = divCorrectAnswer.children.length;
-        var inputCorrectAnswer = document.createElement('INPUT');
+        let divCorrectAnswer = document.getElementById('correctAnswers');
+        let i = divCorrectAnswer.children.length;
+        let inputCorrectAnswer = document.createElement('INPUT');
         inputCorrectAnswer.id='correctAnswer'+i;
         divCorrectAnswer.appendChild(inputCorrectAnswer);
     });
 
     $('#addIncorrectAnswer').on('click', function(){
-        var divIncorrectAnswer = document.getElementById('incorrectAnswers');
-        var i = divIncorrectAnswer.children.length;
-        var inputIncorrectAnswer = document.createElement('INPUT');
+        let divIncorrectAnswer = document.getElementById('incorrectAnswers');
+        let i = divIncorrectAnswer.children.length;
+        let inputIncorrectAnswer = document.createElement('INPUT');
         inputIncorrectAnswer.id='incorrectAnswer'+i;
         divIncorrectAnswer.appendChild(inputIncorrectAnswer);
     });
 
     $('#deleteCorrectAnswer').on('click', function(){
-        var divCorrectAnswer = document.getElementById('correctAnswers');
+        let divCorrectAnswer = document.getElementById('correctAnswers');
         divCorrectAnswer.removeChild(divCorrectAnswer.lastChild);
     });
 
     $('#deleteIncorrectAnswer').on('click', function(){
-        var divIncorrectAnswer = document.getElementById('incorrectAnswers');
+        let divIncorrectAnswer = document.getElementById('incorrectAnswers');
         divIncorrectAnswer.removeChild(divIncorrectAnswer.lastChild);
     });
 
     $("#save").on('click', function () {
-        var correctAnswers= [];
-        var incorrectAnswers= [];
-        var shuttleList = document.getElementById('correctAnswers');
+        let correctAnswers= [];
+        let incorrectAnswers= [];
+        let shuttleList = document.getElementById('correctAnswers');
         for (var i=0; i<shuttleList.children.length; i++)
         {
             correctAnswers.push(shuttleList.children[i].value.trim())
@@ -38,17 +38,17 @@ $(document).ready(function () {
         {
             incorrectAnswers.push(shuttleList.children[i].value.trim())
         }
-        var quiz = {
+        let quiz = {
             question: $('#question').val().trim(),
             type: 'mc',
             correctAnswers: correctAnswers,
             incorrectAnswers: incorrectAnswers
         };
-        var studentIdentifier = {
+        let studentIdentifier = {
             studentId: $('#user').html().trim(),
             projectId: $('#projectId').html().trim()
         };
-        var data = JSON.stringify({
+        let data = JSON.stringify({
             studentIdentifier: studentIdentifier,
             quiz: quiz
         });
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/createReportBibo.js b/gemeinsamforschen/src/main/webapp/assets/js/createReportBibo.js
new file mode 100644
index 0000000000000000000000000000000000000000..f081bae605541728a5ca619aa6b5a8b792133d20
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/createReportBibo.js
@@ -0,0 +1,17 @@
+var student = getQueryVariable("token");
+var project = getQueryVariable("projectId");
+
+$(document).ready(function() {
+    $('#student').val(student);
+    $('#project').val(project);
+    $('#backLink').on('click', function(){
+        location.href = "createReportOverview.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+
+    $('#forwardLink').on('click', function(){
+        location.href = "researchReportResearch.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+
+})
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/createReportConcept.js b/gemeinsamforschen/src/main/webapp/assets/js/createReportConcept.js
new file mode 100644
index 0000000000000000000000000000000000000000..f081bae605541728a5ca619aa6b5a8b792133d20
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/createReportConcept.js
@@ -0,0 +1,17 @@
+var student = getQueryVariable("token");
+var project = getQueryVariable("projectId");
+
+$(document).ready(function() {
+    $('#student').val(student);
+    $('#project').val(project);
+    $('#backLink').on('click', function(){
+        location.href = "createReportOverview.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+
+    $('#forwardLink').on('click', function(){
+        location.href = "researchReportResearch.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+
+})
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/createReportDo.js b/gemeinsamforschen/src/main/webapp/assets/js/createReportDo.js
new file mode 100644
index 0000000000000000000000000000000000000000..f081bae605541728a5ca619aa6b5a8b792133d20
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/createReportDo.js
@@ -0,0 +1,17 @@
+var student = getQueryVariable("token");
+var project = getQueryVariable("projectId");
+
+$(document).ready(function() {
+    $('#student').val(student);
+    $('#project').val(project);
+    $('#backLink').on('click', function(){
+        location.href = "createReportOverview.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+
+    $('#forwardLink').on('click', function(){
+        location.href = "researchReportResearch.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+
+})
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/createReportEvaluation.js b/gemeinsamforschen/src/main/webapp/assets/js/createReportEvaluation.js
new file mode 100644
index 0000000000000000000000000000000000000000..f081bae605541728a5ca619aa6b5a8b792133d20
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/createReportEvaluation.js
@@ -0,0 +1,17 @@
+var student = getQueryVariable("token");
+var project = getQueryVariable("projectId");
+
+$(document).ready(function() {
+    $('#student').val(student);
+    $('#project').val(project);
+    $('#backLink').on('click', function(){
+        location.href = "createReportOverview.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+
+    $('#forwardLink').on('click', function(){
+        location.href = "researchReportResearch.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+
+})
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/createReportMethod.js b/gemeinsamforschen/src/main/webapp/assets/js/createReportMethod.js
new file mode 100644
index 0000000000000000000000000000000000000000..f081bae605541728a5ca619aa6b5a8b792133d20
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/createReportMethod.js
@@ -0,0 +1,17 @@
+var student = getQueryVariable("token");
+var project = getQueryVariable("projectId");
+
+$(document).ready(function() {
+    $('#student').val(student);
+    $('#project').val(project);
+    $('#backLink').on('click', function(){
+        location.href = "createReportOverview.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+
+    $('#forwardLink').on('click', function(){
+        location.href = "researchReportResearch.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+
+})
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/createReportOverview.js b/gemeinsamforschen/src/main/webapp/assets/js/createReportOverview.js
new file mode 100644
index 0000000000000000000000000000000000000000..1c28d5e60c9e92d28fa0955d73310f5f63fb10c3
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/createReportOverview.js
@@ -0,0 +1,21 @@
+var student = getQueryVariable("token");
+var project = getQueryVariable("projectId");
+
+$(document).ready(function() {
+    $('#student').val(student);
+    $('#project').val(project);
+        $('#uploader').on('click', function(){
+                //location.href="researchReportTitle.jsp?token="+getUserTokenFromUrl();
+            //boolean uploaded=true;
+            });
+    $('#backLink').on('click', function(){
+        location.href = "overview-student.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+
+    $('#forwardLink').on('click', function(){
+        location.href = "researchReportTitle.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+
+})
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/createReportProgress.js b/gemeinsamforschen/src/main/webapp/assets/js/createReportProgress.js
new file mode 100644
index 0000000000000000000000000000000000000000..943d90fccab49e3b57a87cbfca5382cc6e6cf68f
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/createReportProgress.js
@@ -0,0 +1,41 @@
+var student = getQueryVariable("token");
+var project = getQueryVariable("projectId");
+
+$(document).ready(function() {
+    $('#student').val(student);
+    $('#project').val(project);
+
+    $('#title').on('click', function(){
+        location.href = "researchReportTitle.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+    $('#recherche').on('click', function(){
+        location.href = "researchReportRecherche.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+    $('#bibo').on('click', function(){
+        location.href = "researchReportBibo.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+    $('#question').on('click', function(){
+        location.href = "researchReportQuestion.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+    $('#concept').on('click', function(){
+        location.href = "researchReportConcept.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+    $('#method').on('click', function(){
+        location.href = "researchReportMethod.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+    $('#reportDo').on('click', function(){
+        location.href = "researchReportDo.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+    $('#evaluation').on('click', function(){
+        location.href = "researchReportEvaluation.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+
+})
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/createReportQuestion.js b/gemeinsamforschen/src/main/webapp/assets/js/createReportQuestion.js
new file mode 100644
index 0000000000000000000000000000000000000000..f081bae605541728a5ca619aa6b5a8b792133d20
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/createReportQuestion.js
@@ -0,0 +1,17 @@
+var student = getQueryVariable("token");
+var project = getQueryVariable("projectId");
+
+$(document).ready(function() {
+    $('#student').val(student);
+    $('#project').val(project);
+    $('#backLink').on('click', function(){
+        location.href = "createReportOverview.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+
+    $('#forwardLink').on('click', function(){
+        location.href = "researchReportResearch.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+
+})
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/createReportRecherche.js b/gemeinsamforschen/src/main/webapp/assets/js/createReportRecherche.js
new file mode 100644
index 0000000000000000000000000000000000000000..f081bae605541728a5ca619aa6b5a8b792133d20
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/createReportRecherche.js
@@ -0,0 +1,17 @@
+var student = getQueryVariable("token");
+var project = getQueryVariable("projectId");
+
+$(document).ready(function() {
+    $('#student').val(student);
+    $('#project').val(project);
+    $('#backLink').on('click', function(){
+        location.href = "createReportOverview.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+
+    $('#forwardLink').on('click', function(){
+        location.href = "researchReportResearch.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+
+})
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/createReportTitle.js b/gemeinsamforschen/src/main/webapp/assets/js/createReportTitle.js
new file mode 100644
index 0000000000000000000000000000000000000000..d158a2933ed6cd848caecf9035cc2c037050a207
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/createReportTitle.js
@@ -0,0 +1,17 @@
+var student = getQueryVariable("token");
+var project = getQueryVariable("projectId");
+
+$(document).ready(function() {
+    $('#student').val(student);
+    $('#project').val(project);
+    $('#backLink').on('click', function(){
+        location.href = "createReportOverview.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+
+    $('#forwardLink').on('click', function(){
+        location.href = "researchReportResearch.jsp?token=" + student + "&projectId=" + project;
+        return false;
+    });
+
+})
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js
index a56e8a766a20f895dd8674056e796e5613bbc5b0..0f57c3bec407e642306c68bb0fed7651af94a53b 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js
@@ -1,57 +1,180 @@
-$(document).ready(function() {
+$(document).ready(function () {
+    checkAssessementPhase();
+
+
     $('#notAllRated').hide();
     $(".carousel").carousel({
         interval: false
     });
+    buildTablesForPeers();
+
     $('#assessThePeer').on("click", function () {
         assessPeer();
     });
 });
 
-function assessPeer(){
-    let peerStudents =$('.peerStudent');
+
+function buildTablesForPeers() {
+    let studentId = $('#user').html().trim();
+    let projectId = $('#projectId').html().trim();
+        $.ajax({
+            url: '../rest/group/project/' + projectId + '/student/' + studentId,
+            type: 'GET',
+            headers: {
+                "Content-Type": "text/javascript",
+                "Cache-Control": "no-cache"
+            },
+            success: function (peers) {
+                let div = document.getElementById('peerTable');
+                for (let peer = 0; peer < peers.length; peer++) {
+                    let tablePeer = document.createElement('DIV');
+                    if (peer === 0) {
+                        tablePeer.className = "item active";
+                    } else {
+                        tablePeer.className = "item";
+                    }
+                    let innerPeerTable = '<table class="table-striped peerStudent" id="' + peers[peer] + '">' +
+                        '<tr>' +
+                        '<td align="center">' +
+                        '<img src="../assets/img/noImg.png" alt="' + peers[peer] + '" style="width:20%;">' +
+                        '</td>' +
+                        '</tr>' +
+                        '<tr>' +
+                        '<td align="center">' +
+                        '<h3>Verantwortungsbewusstsein</h3>' +
+                        '</td>' +
+                        '</tr>' +
+                        '<tr>' +
+                        '<td align="center">' +
+                        '<label>stark ausgeprägt<input type="radio" value="5" name="responsibility' + peers[peer] + '"></label>' +
+                        '<input type="radio" value="4" name="responsibility' + peers[peer] + '">' +
+                        '<input type="radio" value="3" name="responsibility' + peers[peer] + '">' +
+                        '<input type="radio" value="2" name="responsibility' + peers[peer] + '">' +
+                        '<label><input type="radio" value="1" name="responsibility' + peers[peer] + '">ungenügend</label>' +
+                        '</td>' +
+                        '</tr>' +
+                        '<tr>' +
+                        '<td align="center">' +
+                        '<h3>Anteil am Produkt</h3>' +
+                        '</td>' +
+                        '</tr>' +
+                        '<tr>' +
+                        '<td align="center">' +
+                        '<label>großer Anteil<input type="radio" value="5" name="partOfWork' + peers[peer] + '"></label>' +
+                        '<input type="radio" value="4" name="partOfWork' + peers[peer] + '">' +
+                        '<input type="radio" value="3" name="partOfWork' + peers[peer] + '">' +
+                        '<input type="radio" value="2" name="partOfWork' + peers[peer] + '">' +
+                        '<label><input type="radio" value="1" name="partOfWork' + peers[peer] + '">geringer Anteil</label>' +
+                        '</td>' +
+                        '</tr>' +
+                        '<tr>' +
+                        '<td align="center">' +
+                        '<h3>Kooperationsbereitschaft</h3>' +
+                        '</td>' +
+                        '</tr>' +
+                        '<tr>' +
+                        '<td align="center">' +
+                        '<label>sehr kooperativ<input type="radio" value="5" name="cooperation' + peers[peer] + '">' +
+                        '</label>' +
+                        '<input type="radio" value="4" name="cooperation' + peers[peer] + '">' +
+                        '<input type="radio" value="3" name="cooperation' + peers[peer] + '">' +
+                        '<input type="radio" value="2" name="cooperation' + peers[peer] + '">' +
+                        '<label><input type="radio" value="1" name="cooperation' + peers[peer] + '">nicht kooperativ</label>' +
+                        '</td>' +
+                        '</tr>' +
+                        '<tr>' +
+                        '<td align="center">' +
+                        '<h3>Disskusionsfähigkeit</h3>' +
+                        '</td>' +
+                        '</tr>' +
+                        '<tr>' +
+                        '<td align="center">' +
+                        '<label>gut kommuniziert und Meinung vertreten<input type="radio" value="5" name="communication' + peers[peer] + '">' +
+                        '</label>' +
+                        '<input type="radio" value="4" name="communication' + peers[peer] + '">' +
+                        '<input type="radio" value="3" name="communication' + peers[peer] + '">' +
+                        '<input type="radio" value="2" name="communication' + peers[peer] + '">' +
+                        '<label><input type="radio" value="1" name="communication' + peers[peer] + '">keine Meinung und schlecht kommuniziert</label>' +
+                        '</td>' +
+                        '</tr>' +
+                        '<tr>' +
+                        '<td align="center">' +
+                        '<h3>Selbstständigkeit</h3>' +
+                        '</td>' +
+                        '</tr>' +
+                        '<tr>' +
+                        '<td align="center">' +
+                        '<label>selbstständig<input type="radio" value="5" name="autonomous' + peers[peer] + '">' +
+                        '</label>' +
+                        '<input type="radio" value="4" name="autonomous' + peers[peer] + '">' +
+                        '<input type="radio" value="3" name="autonomous' + peers[peer] + '">' +
+                        '<input type="radio" value="2" name="autonomous' + peers[peer] + '">' +
+                        '<label><input type="radio" value="1" name="autonomous' + peers[peer] + '">abhängig</label>' +
+                        '</td>' +
+                        '</tr>' +
+                        '</table>' +
+                        '<div align="center">' +
+                        '   <button class="btn btn-primary" id="btnJournal' + peers[peer] + '">' +
+                        '   zeige Lernzieltagebuch</button>' +
+                        '   <div id="eJournal' + peers[peer] + '">Fasel Blubba Bla</div>' +
+                        '</div>';
+                    tablePeer.innerHTML = innerPeerTable;
+                    div.appendChild(tablePeer);
+                    $('#btnJournal' + peers[peer]).on("click", function () {
+                        $('#eJournal' + peers[peer]).toggle();
+                    });
+                }
+            },
+            error: function () {
+            }
+        }
+    );
+}
+
+function assessPeer() {
+    let peerStudents = $('.peerStudent');
     ///////initialize variables///////
-    let dataP = new Array(peerStudents.size());
-    let rateThis = ['responsibility','partOfWork','cooperation','communication','autonomous'];
+    let dataP = new Array(peerStudents.length);
+    let rateThis = ['responsibility', 'partOfWork', 'cooperation', 'communication', 'autonomous'];
 
     ///////read values from html///////
-    for (let peer=0; peer< peerStudents.length; peer++){
+    for (let peer = 0; peer < peerStudents.length; peer++) {
         let workRating = {};
         let peerRating = {
             "fromPeer": $('#user').html().trim(),
             "toPeer": peerStudents[peer].id,
             "workRating": {}
         };
-        for (let rate=0; rate<rateThis.length; rate++ ){
+        for (let rate = 0; rate < rateThis.length; rate++) {
             let category = rateThis[rate];
-            workRating[category]=($('input[name='+rateThis[rate]+peerStudents[peer].id+']:checked').val());
+            workRating[category] = ($('input[name=' + rateThis[rate] + peerStudents[peer].id + ']:checked').val());
         }
 
         peerRating.workRating = workRating;
         //////write values in Post-Variable
-        dataP[peer]=peerRating;
+        dataP[peer] = peerRating;
     }
-    for (let peer=0; peer< dataP.length; peer++){
-        for (let workRating=0; workRating<rateThis.length;workRating++){
-            if(dataP[peer].workRating[rateThis[workRating]]===undefined){
+    for (let peer = 0; peer < dataP.length; peer++) {
+        for (let workRating = 0; workRating < rateThis.length; workRating++) {
+            if (dataP[peer].workRating[rateThis[workRating]] === undefined) {
                 $('#notAllRated').show();
                 return;
             }
         }
     }
-    let projectId=$('#projectId').html().trim();
+    let projectId = $('#projectId').html().trim();
     $.ajax({
-        url:'../rest/assessments/peerRating/project/'+projectId,
+        url: '../rest/assessments/peerRating/project/' + projectId,
         type: 'POST',
         headers: {
             "Content-Type": "application/json",
             "Cache-Control": "no-cache"
         },
         data: JSON.stringify(dataP),
-        success: function(){
-            location.href="takeQuiz.jsp?token="+getUserTokenFromUrl()+"&projectId="+$('#projectId').html().trim();
+        success: function () {
+            location.href = "takeQuiz.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim();
         },
-        error: function(a,b,c){
+        error: function (a, b, c) {
 
         }
     });
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/footer.js b/gemeinsamforschen/src/main/webapp/assets/js/footer.js
index 33e3ada606d22727234e01d6fa131f67e1240009..9407ef60d1a1c1af5d8bce6c5dc1e9c1835645bc 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/footer.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/footer.js
@@ -1,31 +1,3 @@
 $(document).ready(function(){
-    $('#nextPhase').click(function(){
-        var progressbar =$('#progressbar');
-        switch (progressbar.attr('class')){
-            case 'progress-bar pg-groups':
-                progressbar.removeClass('pg-groups');
-                progressbar.addClass('pg-dossier');
-                break;
-            case 'progress-bar pg-dossier':
-                progressbar.removeClass('pg-dossier');
-                progressbar.addClass('pg-feedback');
-                break;
-            case 'progress-bar pg-feedback':
-                progressbar.removeClass('pg-feedback');
-                progressbar.addClass('pg-reflection');
-                break;
-            case 'progress-bar pg-reflection':
-                progressbar.removeClass('pg-reflection');
-                progressbar.addClass('pg-presentation');
-                break;
-            case 'progress-bar pg-presentation':
-                progressbar.removeClass('pg-presentation');
-                progressbar.addClass('pg-assessment');
-                break;
-            case 'progress-bar pg-assessment':
-                progressbar.removeClass('pg-assessment');
-                progressbar.addClass('pg-done');
-                break;
-        }
-    });
+
 });
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/givepeerfeedback.js b/gemeinsamforschen/src/main/webapp/assets/js/givepeerfeedback.js
new file mode 100644
index 0000000000000000000000000000000000000000..58721539a34d8a5af868d09fd6d25c6e87d8061f
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/givepeerfeedback.js
@@ -0,0 +1,82 @@
+
+var student = getQueryVariable("token");
+var project = getQueryVariable("projectId");
+
+$(document).ready(function() {
+    $('#student').val(student);
+    $('#project').val(project);
+
+
+    var peerfeedbackID = getQueryVariable("Peerfeedback");
+    console.log(peerfeedbackID);
+    var peerfeedbackID = "a3cef66d-e1b7-4030-8fcd-1413d6e77ba0";
+    var sender = "sender";
+    console.log(peerfeedbackID);
+    //if(peerfeedbackID) {
+        $.ajax({
+            url: "../rest/peerfeedback/"+sender              //peerfeedbackID     {id}
+
+        }).then(function (data) {
+            //$('#editor').append(data.descriptionMD);
+            console.log("function1");
+            loadFeedback(data);
+            console.log("function2");
+
+            //document.getElementById("Peerfeedback").innerHTML = data.text +"text";
+            //document.write(data);
+            //console.log(data);
+            /**
+            var newDiv = document.createElement("div");
+            var newContent = document.createTextNode(data.text);
+            newDiv.appendChild(newContent); // füge den Textknoten zum neu erstellten div hinzu.
+
+            // füge das neu erstellte Element und seinen Inhalt ins DOM ein
+            var currentDiv = document.getElementById("div1");
+            currentDiv.appendChild(newDiv);
+            //document.body.insertBefore(newDiv, currentDiv);
+            */
+            //$('#peerfeedbackID').val(peerfeedbackID);
+            console.log(data);
+        });
+   // }
+    function loadFeedback(data) {
+        for (var feedback in data) {
+            /**var feedbackString = '<div class="pf-container">' +
+                '<div class="journal-date"> ' +
+                data[feedback].timestamp +
+                '</div>' +
+                '<div class="journal-name">' +
+                // TODO id to name
+                data[feedback].text +
+                '</div>' +
+                '<div class="journal-category">' +
+                data[feedback].id +
+                '</div>' +
+                '<div class="journal-edit" align="right">';
+
+            feedbackString = feedbackString + '</div>' +
+                '<div class="journal-text">' +
+                data[feedback].entryHTML +
+                '</div>' +
+                '</div><br><br>';*/
+
+            var newdiv = document.createElement("div");
+
+
+            //newdiv.innerHTML = data[feedback].text;
+            //newdiv.append(data[feedback].text);
+            newdiv.insertAdjacentHTML('beforeend',data[feedback].text);
+            newdiv.className = "feedback-container";
+            //var text = convertMarkdownToHtml(data[feedback].text);
+            //var newcontent = document.createTextNode(data[feedback].text);
+            //newdiv.appendChild(newcontent); // füge den Textknoten zum neu erstellten div hinzu.
+
+            // füge das neu erstellte Element und seinen Inhalt ins DOM ein
+            var currentdiv = document.getElementById("div1");
+            currentdiv.appendChild(newdiv);
+            //document.body.insertBefore(newDiv, currentDiv);
+            //document.getElementById("div").innerHTML = data[feedback].text;
+
+            //$('.Peerfeedback').append(feedbackString)
+        }};
+})
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/peerfeedback.js b/gemeinsamforschen/src/main/webapp/assets/js/peerfeedback.js
new file mode 100644
index 0000000000000000000000000000000000000000..beb297c9c329233a74183dbcd35034cd89be3106
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/peerfeedback.js
@@ -0,0 +1,55 @@
+/**
+ * POST: Save an peerfeedback in the database
+ *
+ * @param Peer2PeerFeedback The post request
+ * @param responseHandler The response handler
+ */
+/**function createPeerfeedback(Peer2PeerFeedback, responseHandler) {
+    var url = "../rest/peerfeedback/save";
+    var json = JSON.stringify(Peer2PeerFeedback);
+    $.ajax({
+        url: url,
+        type: "POST",
+        data: json,
+        contentType: "application/json",
+        dataType: "json",
+        success: function (response) {
+            responseHandler(response);
+        }
+    });
+}*/
+
+var student = getQueryVariable("token");
+var project = getQueryVariable("projectId");
+
+function go(){
+    var a = document.getElementById("editor").valueOf().toString();
+    var b = document.getElementById("as");
+    b.innerHTML = a.toString();
+
+    //b = document.getElementById("editor").innerHTML;
+
+
+}
+
+$(document).ready(function() {
+    $('#student').val(student);
+    $('#project').val(project);
+
+    $.ajax({
+        url: "../rest/peerfeedback/save"
+    }).then(function (data) {
+        $('#editor').append(data.descriptionMD);
+
+       /** //TODO preselet in select tags
+        new InscrybMDE({
+            element: document.getElementById("editor"),
+            spellChecker: false,
+            forceSync: true,
+        });*/
+
+        //console.log(data);
+       location.href="givefeedback.jsp?token=" + getUserTokenFromUrl();
+       alert("Feedback wurde gesendet!");
+    });
+})
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/profile.js b/gemeinsamforschen/src/main/webapp/assets/js/profile.js
new file mode 100644
index 0000000000000000000000000000000000000000..63b2a09e747bacbc099f3f188ccc0d1222799881
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/profile.js
@@ -0,0 +1,49 @@
+$(document).ready(function (e) {
+    /*$("#uploadimage").on('submit',(function(e) {
+        e.preventDefault();
+        $("#message").empty();
+        $('#loading').show();
+        $.ajax({
+            url: "../rest/user/student/wiepke", // Url to which the request is send
+            method: "POST",
+            type: "POST",             // Type of request to be send, called as method
+            data: new FormData(this), // Data sent to server, a set of key/value pairs (i.e. form fields and values)
+            contentType: false,       // The content type used when sending data to the server.
+            cache: false,             // To unable request pages to be cached
+            processData:false,        // To send DOMDocument or non processed data file it is set to false
+            success: function(data)   // A function to be called if request succeeds
+            {
+                $('#loading').hide();
+                $("#message").html(data);
+            }
+        });
+    }));*/
+
+// Function to preview image after validation
+    $(function() {
+        $("#file").change(function() {
+            $("#message").empty(); // To remove the previous error message
+            let file = this.files[0];
+            let match= ["image/jpeg","image/png","image/jpg"];
+            if(!((file.type===match[0]) || (file.type===match[1]) || (file.type===match[2])))
+            {
+                $('#previewing').attr('src','noimage.png');
+                $("#message").html("<p id='error'>Please Select A valid Image File</p>"+"<h4>Note</h4>"+"<span id='error_message'>Only jpeg, jpg and png Images type allowed</span>");
+                return false;
+            }
+            else
+            {
+                var reader = new FileReader();
+                reader.onload = imageIsLoaded;
+                reader.readAsDataURL(this.files[0]);
+            }
+        });
+    });
+    function imageIsLoaded(e) {
+        $("#file").css("color","green");
+        $('#image_preview').css("display", "block");
+        $('#previewing').attr('src', e.target.result);
+        $('#previewing').attr('width', '250px');
+        $('#previewing').attr('height', '230px');
+    };
+});
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/project-student.js b/gemeinsamforschen/src/main/webapp/assets/js/project-student.js
index 520600a93a3444968585c2d382cd2497acb5c0b5..91e62e10ffcba41e1d9200d943e1ae662256b591 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/project-student.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/project-student.js
@@ -36,9 +36,17 @@ $(document).ready(function(){
         location.href="viewfeedback.jsp?token="+getUserTokenFromUrl();
     });
 
+    $('.annotationview').click(function () {
+        location.href="annotation-document.jsp?token="+getUserTokenFromUrl();
+    });
+
     $('#btnUnstructuredUpload').click(function () {
         location.href="unstructured-upload.jsp?token="+getUserTokenFromUrl() + "&projectId=" + getQueryVariable("projectId");
     })
+
+    $('.viewprojectstudent').click(function () {
+        location.href="project-student.jsp?token="+getUserTokenFromUrl();
+    })
 });
 
 /**
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/project-student.js.orig b/gemeinsamforschen/src/main/webapp/assets/js/project-student.js.orig
new file mode 100644
index 0000000000000000000000000000000000000000..91e62e10ffcba41e1d9200d943e1ae662256b591
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/project-student.js.orig
@@ -0,0 +1,110 @@
+$(document).ready(function(){
+    // fetch all submission part project representations from database
+    getSubmissionPartsByProjectId(getQueryVariable("projectId"), function (response) {
+        
+        // iterate over response and display each element
+        for (let i = 0; i < response.length; i++) {
+            displaySubmission(response[i].user, response[i].category, response[i].fullSubmissionId);
+        }
+
+        // add click listener to feedback buttons
+        $('.annotationview').click(function () {
+            let fullSubmissionId = $(this).closest("li").data("fullSubmissionId");
+            let category = $(this).closest("li").data("category");
+            location.href="annotation-document.jsp?token=" + getUserTokenFromUrl() +
+                "&projectId=" + getQueryVariable("projectId") +
+                "&fullSubmissionId=" + fullSubmissionId +
+                "&category=" + category;
+        });
+        
+    }, function () {
+        // display empty view
+        displayEmptyView()
+    });
+
+    /*
+    var memberTable = $('#myGroupMembers');
+    memberTable.hide();
+    $('#nextPhase').on('click',function(){
+        memberTable.show();
+    });
+    */
+    $('.givefeedback').click(function () {
+        location.href="givefeedback.jsp?token="+getUserTokenFromUrl();
+    });
+    $('.viewfeedback').click(function () {
+        location.href="viewfeedback.jsp?token="+getUserTokenFromUrl();
+    });
+
+    $('.annotationview').click(function () {
+        location.href="annotation-document.jsp?token="+getUserTokenFromUrl();
+    });
+
+    $('#btnUnstructuredUpload').click(function () {
+        location.href="unstructured-upload.jsp?token="+getUserTokenFromUrl() + "&projectId=" + getQueryVariable("projectId");
+    })
+
+    $('.viewprojectstudent').click(function () {
+        location.href="project-student.jsp?token="+getUserTokenFromUrl();
+    })
+});
+
+/**
+ * Display category of submission part in list
+ *
+ * @param user The user of the submission part
+ * @param category The category of the submission part
+ * @param fullSubmissionId The id of the full submission the submission part belongs to
+ */
+function displaySubmission(user, category, fullSubmissionId) {
+    // build link
+    $('#submissionUpload').append(
+        $('<li>')
+            .append($('<span>').append(category.toUpperCase() + " eingereicht"))
+            .append($('<a>').attr("class", "annotationview").attr("role", "button")
+                    .append($('<label>').css("font-size", "10px")
+                        .append($('<i>').attr("class", "far fa-comments").css("font-size", "15px"))
+                        .append("feedback")
+                    )
+            )
+            // add data to link
+            .data("fullSubmissionId", fullSubmissionId)
+            .data("category", category)
+    );
+
+}
+
+/**
+ * Display a not found message if there are no submission parts in the database (or on error)
+ */
+function displayEmptyView() {
+    // build link
+    $('#submissionUpload').append(
+        $('<li>')
+            .append($('<span>').append("keine Daten gefunden"))
+    );
+}
+
+/**
+ * GET: Get all representations of a submission part for a given project id
+ *
+ * @param projectId The id of the project
+ * @param responseHandler The response handler
+ * @param errorHandler The error handler
+ */
+function getSubmissionPartsByProjectId(projectId, responseHandler, errorHandler) {
+    var url = "../rest/submissions/project/" + projectId;
+    $.ajax({
+        url: url,
+        type: "GET",
+        dataType: "json",
+        success: function (response) {
+            // handle the response
+            responseHandler(response);
+        },
+        error: function () {
+            // handle the error
+            errorHandler();
+        }
+    })
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/rateContribution.js b/gemeinsamforschen/src/main/webapp/assets/js/rateContribution.js
index b7e3c6b5fcaafd34e8c7c7066027d6d1a7d6069c..402b474a1d1d3f9816757b53e8d7b3fed725e750 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/rateContribution.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/rateContribution.js
@@ -1,10 +1,4 @@
 $(document).ready(function () {
-    new InscrybMDE({
-        element: document.getElementById("ejournalFeedback"),
-        spellChecker: false,
-        //toolbar: ["bold", "italic", "heading", "|", "quote", "table", "code", "|" , "side-by-side", "fullscreen"],
-        minHeight: "80px",
-    });
     new InscrybMDE({
         element: document.getElementById("presentationFeedback"),
         spellChecker: false,
@@ -18,6 +12,7 @@ $(document).ready(function () {
         minHeight: "80px",
     });
 
+    whichGroupToRate();
 
     //editor.style = "min-height: 100px";
 
@@ -27,6 +22,25 @@ $(document).ready(function () {
     });
 });
 
+function whichGroupToRate(){
+    let projectId = $('#projectId').html().trim();
+    let studentId = $('#user').html().trim();
+    $.ajax({
+        url: '../rest/assessments/groupRate/project/'+projectId+'/student/'+studentId,
+        type: 'GET',
+        headers: {
+            "Content-Type": "application/json",
+            "Cache-Control": "no-cache"
+        },
+        success: function (groupId) {
+            $('#groupId').html(groupId);
+        },
+        error: function () {
+
+        }
+    })
+}
+
 function safeContributionRating() {
     let contributions = $('.contributionRating');
     ///////initialize variables///////
@@ -37,12 +51,10 @@ function safeContributionRating() {
         let checkbox = $("#" + contributions[contribution].id + " input:checked");
         dataP[checkbox.attr('name')] = checkbox.val();
     }
-    let projectId = $('#projectId').html().trim();
     let fromPeer = $('#user').html().trim();
-    let toStudent = $('.peerStudent').attr('id');
+    let groupId = $('#groupId').html().trim();
     $.ajax({
-        url: '../rest/assessments/contributionRating/projectId/' + projectId +
-        '/studentId/' + toStudent + '/fromPeer/' + fromPeer,
+        url: '../rest/assessments/contributionRating/group/'+groupId+'/fromPeer/' + fromPeer,
         type: 'POST',
         headers: {
             "Content-Type": "application/json",
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/researchReportUpload.js b/gemeinsamforschen/src/main/webapp/assets/js/researchReportUpload.js
new file mode 100644
index 0000000000000000000000000000000000000000..b892da3eca8570202ea7d674579df2cfe5cf3002
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/researchReportUpload.js
@@ -0,0 +1,26 @@
+//import * as FilePond from 'filepond';
+//import FilePond from 'filepond';
+//import FilepondPluginImagePreview from 'filepond-plugin-image-preview';
+
+
+FilePond.registerPlugin(
+    FilePondPluginImagePreview,
+);
+
+//document.body.appendChild(pond.element);
+const inputElement = document.querySelector('input[type="file"]');
+const pond = FilePond.create(
+    inputElement,
+    {
+        allowImagePreview: true,
+        name: 'filepond',
+        labelIdle: 'Hier<span class="filepond--label-action"> Browse </span>',
+    }
+);
+
+
+FilePond.setOptions(
+    {
+        server: 'test/'  //Here insert server
+    }
+);
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/utility.js b/gemeinsamforschen/src/main/webapp/assets/js/utility.js
index c5b8b37d083e2cc80f2260ded050c6c710143ade..3f21a38cd0eb8e61357a783869a2db3cc4e4f57d 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/utility.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/utility.js
@@ -1,12 +1,61 @@
 $(document).ready(function(){
     $('#headLineProject').html($('#projectId').html());
+    $('#logout').click(function(){
+        //todo: delete cookies / reset session
+        document.location="../index.jsp";
+    });
+    $('#assessment').click(function(){
+       checkAssessementPhase();
+    });
+    $('#footerBack').click(function(){
+       goBack();
+    });
 });
 
+function goBack() {
+    window.history.back();
+}
+
+function checkAssessementPhase(){
+    let studentId = $('#user').html().trim();
+    let projectId = $('#projectId').html().trim();
+    $.ajax({
+        url: '../rest/assessments/whatToRate/project/'+projectId+'/student/'+studentId,
+        type: 'GET',
+        headers: {
+            "Content-Type": "application/json",
+            "Cache-Control": "no-cache"
+        },
+        success: function (phase) {
+            switch (phase){
+                case "workRating":{
+                    document.location="finalAssessment.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim();
+                    break;
+                }
+                case "quiz":{
+                    location.href = "takeQuiz.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim();
+                    break;
+                }
+                case "contributionRating":{
+                    location.href = "rateContribution.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim();
+                    break;
+                }
+                case "done":{
+                    location.href = "project-student.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim();
+                    break;
+                }
+            }
+        },
+        error: function(a){
+        }
+    });
+}
+
 function getUserTokenFromUrl() {
-    var parts = window.location.search.substr(1).split("&");
-    var $_GET = {};
-    for (var i = 0; i < parts.length; i++) {
-        var temp = parts[i].split("=");
+    let parts = window.location.search.substr(1).split("&");
+    let $_GET = {};
+    for (let i = 0; i < parts.length; i++) {
+        let temp = parts[i].split("=");
         $_GET[decodeURIComponent(temp[0])] = decodeURIComponent(temp[1]);
     }
     return $_GET['token'];
@@ -14,11 +63,11 @@ function getUserTokenFromUrl() {
 }
 
 function getQueryVariable(variable) {
-    var query = window.location.search.substring(1);
-    var vars = query.split("&");
-    for (var i = 0; i < vars.length; i++) {
-        var pair = vars[i].split("=");
-        if (pair[0] == variable) {
+    let query = window.location.search.substring(1);
+    let vars = query.split("&");
+    for (let i = 0; i < vars.length; i++) {
+        let pair = vars[i].split("=");
+        if (pair[0] === variable) {
             return pair[1];
         }
     }
diff --git a/gemeinsamforschen/src/main/webapp/core/gemeinsamForschen.tld b/gemeinsamforschen/src/main/webapp/core/gemeinsamForschen.tld
index 3c2db0269960c9ff430c6e6d82e74a225d195972..b32f459cea3a6a036b622c85cb47749d45a1d3a0 100644
--- a/gemeinsamforschen/src/main/webapp/core/gemeinsamForschen.tld
+++ b/gemeinsamforschen/src/main/webapp/core/gemeinsamForschen.tld
@@ -11,7 +11,7 @@
 
     <tag>
         <name>menu</name>
-        <tag-class>unipotsdam.gf.core.management.user.Menu</tag-class>
+        <tag-class>unipotsdam.gf.core.management.pageAppearance.Menu</tag-class>
         <body-content>empty</body-content>
     </tag>
 
@@ -23,13 +23,19 @@
 
     <tag>
         <name>omniDependencies</name>
-        <tag-class>unipotsdam.gf.core.management.user.omniDependencies</tag-class>
+        <tag-class>unipotsdam.gf.core.management.pageAppearance.omniDependencies</tag-class>
         <body-content>empty</body-content>
     </tag>
 
     <tag>
         <name>headLine</name>
-        <tag-class>unipotsdam.gf.core.management.user.headLine</tag-class>
+        <tag-class>unipotsdam.gf.core.management.pageAppearance.headLine</tag-class>
+        <body-content>empty</body-content>
+    </tag>
+
+    <tag>
+        <name>footer</name>
+        <tag-class>unipotsdam.gf.core.management.pageAppearance.footer</tag-class>
         <body-content>empty</body-content>
     </tag>
     
diff --git a/gemeinsamforschen/src/main/webapp/pages/Quiz-docent.jsp b/gemeinsamforschen/src/main/webapp/pages/Quiz-docent.jsp
index 64db788d2e1fb91279b7fa9f339d33d0b232c26e..6d693e27525436354f12e04005d2f59850d4e3e0 100644
--- a/gemeinsamforschen/src/main/webapp/pages/Quiz-docent.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/Quiz-docent.jsp
@@ -1,7 +1,8 @@
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ page contentType="text/html;charset=UTF-8" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %>
 
 <html>
 <head>
@@ -22,7 +23,7 @@
         <button class="btn btn-primary" id="newQuiz">neues Quiz</button>
 
     </div>
+    <footer:footer/>
 </div>
-
 </body>
 </html>
diff --git a/gemeinsamforschen/src/main/webapp/pages/Quiz.jsp b/gemeinsamforschen/src/main/webapp/pages/Quiz.jsp
index f5f04d45e484bec9d965916f9910f85a5fb176cf..5e7341363506343927281caf860275bcb48080c6 100644
--- a/gemeinsamforschen/src/main/webapp/pages/Quiz.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/Quiz.jsp
@@ -1,7 +1,8 @@
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ page contentType="text/html;charset=UTF-8" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %>
 
 <html>
 <head>
@@ -22,7 +23,7 @@
         <button class="btn btn-primary" id="newQuiz">neues Quiz</button>
 
     </div>
+    <footer:footer/>
 </div>
-
 </body>
 </html>
diff --git a/gemeinsamforschen/src/main/webapp/pages/changePhase.jsp b/gemeinsamforschen/src/main/webapp/pages/changePhase.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..c3d7c07a1f47ed3e1a855ef454dca240d92fb8c7
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/changePhase.jsp
@@ -0,0 +1,41 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %>
+
+
+<html>
+<head>
+    <omniDependencies:omniDependencies/>
+    <script src="../assets/js/changePhase.js"></script>
+</head>
+
+<body>
+<div id="wrapper">
+    <menu:menu/>
+    <div class="page-content-wrapper">
+        <headLine:headLine/>
+        <div class="alert"id="CourseCreation">
+            <button id="btnCourseCreation" class="btn btn-secondary">Projekterstellungsphase</button>
+        </div>
+        <div class="alert" id="GroupFormation">
+            <button id="btnGroupformation" class="btn btn-secondary">Gruppen erstellen</button>
+        </div>
+        <div class="alert" id="DossierFeedback">
+            <button id="btnDossierFeedback" class="btn btn-secondary">Feedbackphase</button>
+        </div>
+        <div class="alert" id="Execution">
+            <button id="btnExecution" class="btn btn-secondary">Durchführungsphase</button>
+        </div>
+        <div class="alert" id="Assessment">
+            <button id="btnAssessment" class="btn btn-secondary">Bewertungsphase</button>
+        </div>
+        <div class="alert" id="end">
+            <button id="btnProjectfinished" class="btn btn-secondary">Ende</button>
+        </div>
+    </div>
+    <footer:footer/>
+</div>
+</body>
+</html>
diff --git a/gemeinsamforschen/src/main/webapp/pages/createGroups.jsp b/gemeinsamforschen/src/main/webapp/pages/createGroups.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..4b22ba4e92ae53aeaf9abfc1a7a2ebdd16469a75
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/createGroups.jsp
@@ -0,0 +1,24 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
+
+<html>
+<head>
+    <omniDependencies:omniDependencies/>
+    <script src="../assets/js/changePhase.js"></script>
+</head>
+
+<body>
+<div id="wrapper">
+    <menu:menu/>
+    <div class="page-content-wrapper">
+        <headLine:headLine/>
+        student1<br>
+        student2<br>
+        <br>
+        in Gruppe 1    2     3
+    </div>
+</div>
+</body>
+</html>
diff --git a/gemeinsamforschen/src/main/webapp/pages/createProject.jsp b/gemeinsamforschen/src/main/webapp/pages/createProject.jsp
index 3984538cbfcaa344fa73305dcfd271d368ce6209..84f529a57f133988191875eac3c9f327d3217b23 100644
--- a/gemeinsamforschen/src/main/webapp/pages/createProject.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/createProject.jsp
@@ -2,6 +2,8 @@
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
+
 
 <!DOCTYPE html>
 <html>
@@ -26,7 +28,7 @@
     </div>
 </div>
 
-
+<footer:footer/>
 </body>
 
 </html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/createQuiz.jsp b/gemeinsamforschen/src/main/webapp/pages/createQuiz.jsp
index 512844f6c308bac4903aaa02e3f92af58f0405a1..7601ff88f154ff2df7613bfc1c2f55a5de1a2c25 100644
--- a/gemeinsamforschen/src/main/webapp/pages/createQuiz.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/createQuiz.jsp
@@ -1,7 +1,8 @@
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ page contentType="text/html;charset=UTF-8" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %>
 
 <html>
 <head>
@@ -28,7 +29,7 @@
             <button id="save">speichern</button>
         </div>
     </div>
+    <footer:footer/>
 </div>
-
 </body>
 </html>
diff --git a/gemeinsamforschen/src/main/webapp/pages/finalAssessments.jsp b/gemeinsamforschen/src/main/webapp/pages/finalAssessments.jsp
index 1273a5887b11dd21268eb8c61084693d21ef565c..4a6908591abadfecd0fcd915e9743637d29d0442 100644
--- a/gemeinsamforschen/src/main/webapp/pages/finalAssessments.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/finalAssessments.jsp
@@ -1,7 +1,8 @@
-<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %>
 
 <!DOCTYPE html>
 <html>
@@ -43,20 +44,13 @@
                         <!-- here will be all the content -->
                         <div class="container">
                             <div id="myCarousel" class="carousel slide" data-ride="carousel" data-interval="false">
-                                <!-- Indicators -->
-                                <ol class="carousel-indicators">
-                                    <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
-                                    <li data-target="#myCarousel" data-slide-to="1"></li>
-                                    <li data-target="#myCarousel" data-slide-to="2"></li>
-                                </ol>
-
                                 <!-- Wrapper for slides -->
                                 <div class="alert alert-info" id="notAllRated">
                                     Es wurden noch nicht alle Studenten vollständig bewertet
                                 </div>
 
-                                <div class="carousel-inner">
-                                    <div class="item active">
+                                <div class="carousel-inner" id="peerTable">
+                                    <!--<div class="item active">
                                         <table class="table-striped peerStudent"
                                                style="width:70%;border:1px solid; margin:auto;" id="Student1">
                                             <tr>
@@ -146,6 +140,12 @@
                                                 </td>
                                             </tr>
                                         </table>
+                                        <div align="center">
+                                            <button class="btn btn-primary" id="btnJournalStudent1" >zeige Lernzieltagebuch</button>
+                                            <div id="eJournalStudent1">
+                                                Fasel Blubba Bla
+                                            </div>
+                                        </div>
                                     </div>
 
                                     <div class="item">
@@ -238,6 +238,12 @@
                                                 </td>
                                             </tr>
                                         </table>
+                                        <div align="center">
+                                            <button class="btn btn-primary" id="btnJournalStudent2">zeige Lernzieltagebuch</button>
+                                            <div id="eJournalStudent2">
+                                                Fasel Blubba Bla
+                                            </div>
+                                        </div>
                                     </div>
 
                                     <div class="item">
@@ -330,7 +336,13 @@
                                                 </td>
                                             </tr>
                                         </table>
-                                    </div>
+                                        <div align="center">
+                                            <button class="btn btn-primary" id="btnJournalStudent3">zeige Lernzieltagebuch</button>
+                                            <div id="eJournalStudent3" align="center">
+                                                Fasel Blubba Bla
+                                            </div>
+                                        </div>
+                                    </div>-->
                                 </div>
 
                                 <!-- Left and right controls -->
@@ -408,11 +420,9 @@
             </table>
         </div>
     </div>
+    <footer:footer/>
 </div>
 
-<script src="../assets/js/jquery.min.js"></script>
-<script src="../assets/bootstrap/js/bootstrap.min.js"></script>
-<script src="../assets/js/Sidebar-Menu.js"></script>
 </body>
 
 </html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/givefeedback.jsp b/gemeinsamforschen/src/main/webapp/pages/givefeedback.jsp
index c01c2a3c665c4a23f249fac3e5cba112107e885e..688a5df9105e5918f12ae6464bf5f483f868a37b 100644
--- a/gemeinsamforschen/src/main/webapp/pages/givefeedback.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/givefeedback.jsp
@@ -1,10 +1,13 @@
-<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
-<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
 
 <!DOCTYPE html>
 <html>
 
 <head>
+    <%--
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>muster-gemeinsam-forschen</title>
@@ -21,37 +24,27 @@
     <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css">
     <script src="../assets/js/utility.js"></script>
     <script src="../assets/js/project-student.js"></script>
+    <link rel="stylesheet" type="text/css" href="../assets/css/editDescription.css">
+    <script src="../assets/js/jquery.min.js"></script>
+    <script src="../assets/bootstrap/js/bootstrap.min.js"></script>
+    <script src="../assets/js/Sidebar-Menu.js"></script>
+    <script  src="../assets/js/editDescription.js"></script>
+        --%>
+
+   <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css">
+        <script src="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script>
+        <link rel="stylesheet" type="text/css" href="../assets/css/create-journal.css">
+    <script src="../assets/js/utility.js"></script>
+    <script src="../assets/js/project-student.js"></script>
+    <script src="../assets/js/peerfeedback.js"></script>
+        <omniDependencies:omniDependencies/>
 </head>
 
 <body>
 <div id="wrapper">
-    <menu:menu></menu:menu>
-
+    <menu:menu/>
     <div class="page-content-wrapper">
-        <div class="container-fluid">
-            <h1 id="projectId"> PeerFeedback</h1>
-        </div>
-        <div align="right" class="dropdown" >
-            <button style= "position: absolute; right: 50px;" class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
-
-                <i class="glyphicon glyphicon-envelope"></i>
-            </button>
-
-            <ul class="dropdown-menu">
-                <li><a class="viewfeedback" role="button">Feedback A</a></li>
-                <li><a class="viewfeedback" role="button">Feedback B</a></li>
-                <li><a class="viewfeedback" role="button">Feedback C</a></li>
-            </ul>
-
-            <a href="#">
-                <span class="glyphicon glyphicon-cog" style="font-size:29px;margin-right:30px;margin-top:3px;"></span>
-            </a>
-
-        </div>
-
-        <div>
-
-        </div>
+        <headLine:headLine/>
         <div>
             <table>
                 <tr>
@@ -85,110 +78,61 @@
                         </label>
                     </div>
                     <hr />
-                    <div class="line-spacer"></div>
-                    <td  id="Peerfeedback" valign="top">
 
+                    <div>
+                        <table>
+                            <tr>
+                                <td  id="yourContent">
+                                    <h2> Schreibe dein Feedback! </h2>
 
-                        <div style="height:100px;padding-bottom:100px;">
-			            <textarea id="demo1">
-				            Das ist ein Test!
-			            </textarea>
-                        </div>
+                                    <form  id= "form" method="POST" action="../rest/peerfeedback/save">
+                                        <%--id="journalform" class="form-journal"--%>
+                                        <input type="hidden" id="student" name="student">
+                                        <input type="hidden" id="project" name="project">
+                                        <input type="hidden" id="feedbackid" name="id">
+                                        <input type="hidden" id="reciever" name="reciever">
+                                        <input type="hidden" id="sender" name="sender">
+                                        <input type="hidden" id="filename" name="filename">
+                                        <input type="hidden" id="category" name="category">
+                                        <input type="hidden" id="filename" name="filename">
 
-                        <button onclick="save()">Speichern</button>
 
-                        <p id = "output"> Output... </p>
-                        <script>
-                            var editor = new InscrybMDE({
-                                element: document.getElementById("demo1"),
-                                spellChecker: false,
-                                //toolbar: ["bold", "italic", "heading", "|", "quote", "table", "code", "|" , "side-by-side", "fullscreen"],
-                                minHeight: "80px",
-                            });
+                                        <div class="journal-form-container">
 
+                                            <div class="journal-form-editor">
+                                                <textarea id="editor" name="text"></textarea> <%--form="journalform"--%>
+                                            </div>
 
-                            editor.style = "min-height: 100px";
+                                            <div class="journal-form-buttons">
+                                                <input class="btn btn-default btn-sm" type="submit">
+                                                <a id="backLink" class="btn btn-default btn-sm"> Zur&uuml;ck </a>
+                                            </div>
 
-                            function save() {
-                                console.log("save");
-                                console.log(editor.value());
+                                            <div>
+                                                <p id="as">Now what</p>
+                                                <input type="button" value="get txt" onclick="go()" />
+                                            </div>
 
-                                var converter = new showdown.Converter(),
-                                    text      = editor.value(),
-                                    html      = converter.makeHtml(text);
+                                        </div>
+                                    </form>
 
-                                document.getElementById('output').innerHTML = html;11
-                            }
 
-                        </script>
+                                </td>
+                            </tr>
+                        </table>
+                    </div>
+
 
-                        <button class="btn btn-secondary" onclick="goBack()">Zurück</button>
 
                         <script>
                             function goBack() {
                                 window.history.back();
                             }
                         </script>
-                    </td>
-
-            <td  id="chat">
-             <div class="card">
-                 <div class="card-header">
-                     <h6 class="mb-0">Gruppen+Projekt Chat</h6>
-                 </div>
-                 <div class="card-body">
-                     <ul class="list-group">
-                         <li class="list-group-item">
-                             <div class="media">
-                                 <div></div>
-                                 <div class="media-body">
-                                     <div class="media" style="overflow:visible;">
-                                         <div><img src="../assets/img/1.jpg" class="mr-3"
-                                                   style="width: 25px; height:25px;"></div>
-                                         <div class="media-body" style="overflow:visible;">
-                                             <div class="row">
-                                                 <div class="col-md-12">
-                                                     <p><a href="#">Sara Doe:</a> This guy has been going
-                                                         100+ MPH on side streets. <br>
-                                                         <small class="text-muted">August 6, 2016 @ 10:35am
-                                                         </small>
-                                                     </p>
-                                                 </div>
-                                             </div>
-                                         </div>
-                                     </div>
-                                 </div>
-                             </div>
-                         </li>
-                         <li class="list-group-item">
-                             <div class="media">
-                                 <div></div>
-                                 <div class="media-body">
-                                     <div class="media" style="overflow:visible;">
-                                         <div><img src="../assets/img/2.jpg" class="mr-3"
-                                                   style="width: 25px; height:25px;"></div>
-                                         <div class="media-body" style="overflow:visible;">
-                                             <div class="row">
-                                                 <div class="col-md-12">
-                                                     <p><a href="#">Brennan Prill:</a> This guy has been
-                                                         going 100+ MPH on side streets. <br>
-                                                         <small class="text-muted">August 6, 2016 @ 10:35am
-                                                         </small>
-                                                     </p>
-                                                 </div>
-                                             </div>
-                                         </div>
-                                     </div>
-                                 </div>
-                             </div>
-                         </li>
-                     </ul>
-                     <button class="btn btn-light">
-                         Add Comment
-                     </button>
-                 </div>
-             </div>
-            </td>
+                </tr>
+                </td>
+
+
 </tr>
 </table>
 </div>
@@ -198,6 +142,7 @@
 <script src="../assets/js/jquery.min.js"></script>
 <script src="../assets/bootstrap/js/bootstrap.min.js"></script>
 <script src="../assets/js/Sidebar-Menu.js"></script>
+<script src="../assets/js/createJournal.js"></script>
 </body>
 
 </html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/profile.jsp b/gemeinsamforschen/src/main/webapp/pages/profile.jsp
index 7f37281156d4d10c858001fff953e5d9c5aa6b29..18dfc349ff5b1a81f358595049b136b573734040 100644
--- a/gemeinsamforschen/src/main/webapp/pages/profile.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/profile.jsp
@@ -1,22 +1,18 @@
 <%@ page import="unipotsdam.gf.core.management.ManagementImpl" %>
 <%@ page import="unipotsdam.gf.core.management.user.User" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %>
+
 
 <!DOCTYPE html>
 <html>
 
 <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <title>Profil</title>
-    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
-    <link rel="stylesheet" href="../assets/css/styles.css">
-    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
-    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
-    <link rel="stylesheet" href="../assets/fonts/font-awesome.min.css">
-    <link rel="stylesheet" href="../assets/css/Community-ChatComments.css">
-    <link rel="stylesheet" href="../assets/css/Sidebar-Menu-1.css">
-    <link rel="stylesheet" href="../assets/css/Sidebar-Menu.css">
+    <omniDependencies:omniDependencies/>
+    <link href='http://fonts.googleapis.com/css?family=Roboto+Condensed|Open+Sans+Condensed:300' rel='stylesheet' type='text/css'>
+    <script src="../assets/js/profile.js"></script>
 </head>
 
 
@@ -29,25 +25,10 @@
 
 <body>
 <div id="wrapper">
-    <menu:menu></menu:menu>
+    <menu:menu/>
 
     <div class="page-content-wrapper">
-        <div class="container-fluid">
-            <h1 id="projectId">
-                <a href="#">
-                        <span class="glyphicon glyphicon-envelope"
-                              style="font-size:27px;margin-top:-17px;margin-left:600px;"></span>
-                </a>
-                <a href="#">
-                    <span class="glyphicon glyphicon-cog" style="font-size:29px;margin-left:5px;margin-top:-25px;"></span>
-                </a></h1>
-        </div>
-        <div id="content">
-
-            <div class="page-header text-center">
-                <h1>Mein Profil</h1>
-            </div>
-
+        <headLine:headLine/>
             <div class="container">
                 <div class="row">
                     <%-- about --%>
@@ -60,6 +41,16 @@
                             </li>
                             <li class="list-group-item">
                                 <p>Sonstiges:</p>
+                                <form id="uploadimage" method="post" action="../rest/user/student/wiepke">
+                                    <div id="image_preview"><img id="previewing" src="../assets/img/noImg.png" /></div>
+                                    <hr id="line">
+                                    <div id="selectImage">
+                                        <label>Select Your Image</label><br/>
+                                        <input type="file" name="image" id="file" required />
+                                        <input type="submit" value="Upload" class="submit" />
+                                    </div>
+                                </form>
+                                <p id="message"></p>
                             </li>
                         </ul>
 
@@ -123,13 +114,8 @@
             </div>
 
         </div>
+    <footer:footer/>
     </div>
-</div>
-
-<script src="../assets/js/jquery.min.js"></script>
-<script src="../assets/bootstrap/js/bootstrap.min.js"></script>
-<script src="../assets/js/Sidebar-Menu.js"></script>
-
 </body>
 
 </html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/project-docent.jsp b/gemeinsamforschen/src/main/webapp/pages/project-docent.jsp
index 9dbf5687f892d59a4d44927e6bce2832aed4d305..5aafa19554988dc0438d51b9bd5fe573390cc479 100644
--- a/gemeinsamforschen/src/main/webapp/pages/project-docent.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/project-docent.jsp
@@ -3,6 +3,8 @@
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %>
+
 
 
 <!DOCTYPE html>
@@ -86,74 +88,13 @@
                             </table>
                         </div>
                     </div>
-                    <div class="col-md-6">
-                        <div class="panel panel-default">
-                            <div class="panel-heading">
-                                <h3 class="panel-title">ProjektChat</h3>
-                            </div>
-                            <div class="panel-body" style="height:233px;">
-                                <ul class="list-group">
-                                    <li class="list-group-item" style="margin-bottom:6px;">
-                                        <div class="media">
-                                            <div class="media-left"><a></a></div>
-                                            <div class="media-body">
-                                                <div class="media" style="overflow:visible;">
-                                                    <div class="media-left"><a><img src="../assets/img/1.jpg"
-                                                                                    class="img-rounded"
-                                                                                    style="width: 25px; height:25px;"></a>
-                                                    </div>
-                                                    <div class="media-body" style="overflow:visible;">
-                                                        <div class="row">
-                                                            <div class="col-md-12">
-                                                                <p><a href="#">Sara Doe:</a> This guy has been going
-                                                                    100+ MPH on side streets. <br>
-                                                                    <small class="text-muted">August 6, 2016 @ 10:35am
-                                                                    </small>
-                                                                </p>
-                                                            </div>
-                                                        </div>
-                                                    </div>
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </li>
-                                    <li class="list-group-item" style="margin-bottom:6px;">
-                                        <div class="media">
-                                            <div class="media-left"><a></a></div>
-                                            <div class="media-body">
-                                                <div class="media" style="overflow:visible;">
-                                                    <div class="media-left"><a><img src="../assets/img/1.jpg"
-                                                                                    class="img-rounded"
-                                                                                    style="width: 25px; height:25px;"></a>
-                                                    </div>
-                                                    <div class="media-body" style="overflow:visible;">
-                                                        <div class="row">
-                                                            <div class="col-md-12">
-                                                                <p><a href="#">Brennan Prill:</a> This guy has been
-                                                                    going 100+ MPH on side streets. <br>
-                                                                    <small class="text-muted">August 6, 2016 @ 10:35am
-                                                                    </small>
-                                                                </p>
-                                                            </div>
-                                                        </div>
-                                                    </div>
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </li>
-                                </ul>
-                                <button class="btn btn-default" type="button"
-                                        style="margin-left:601px;margin-top:-9px;">Add Comment
-                                </button>
-                            </div>
-                        </div>
-                    </div>
                 </div>
             </div>
         </div>
     </div>
 </div>
 <communication:chatWindow orientation="right" />
+<footer:footer/>
 </body>
 
 </html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/project-student.jsp b/gemeinsamforschen/src/main/webapp/pages/project-student.jsp
index a8be6406cff0e171c884faa3d1eaadaee5bbb083..ddb3cae7992b5aa6647c19e7386f54ffef99c2ed 100644
--- a/gemeinsamforschen/src/main/webapp/pages/project-student.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/project-student.jsp
@@ -1,8 +1,10 @@
-<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
 <%--suppress XmlDuplicatedId --%>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %>
+
 
 
 <!--todo: E-mail an Studenten als Notifikation für Phasenwechsel -->
@@ -54,7 +56,6 @@
                                                                                   style="font-size:15px;"></i>feedback</label>
                                             </a>
                                         </li>
-                                        </a>
                                     </ul>
                                 </td>
                                 <td></td>
@@ -102,92 +103,14 @@
                             </tr>
                         </table>
 
-                        <button onclick="goBack()" class="btn btn-secondary">Zurueck</button>
-
-                        <script>
-                            function goBack() {
-                                window.history.back();
-                            }
-                        </script>
-
-                    </td>
-                    <td id="chat">
-                        <div class="card">
-                            <div class="card-header">
-                                <h6 class="mb-0">Gruppen+Projekt Chat</h6>
-                            </div>
-                            <div class="card-body">
-                                <ul class="list-group">
-                                    <li class="list-group-item">
-                                        <div class="media">
-                                            <div></div>
-                                            <div class="media-body">
-                                                <div class="media" style="overflow:visible;">
-                                                    <div><img src="../assets/img/1.jpg" class="mr-3"
-                                                              style="width: 25px; height:25px;"></div>
-                                                    <div class="media-body" style="overflow:visible;">
-                                                        <div class="row">
-                                                            <div class="col-md-12">
-                                                                <p><a href="#">Sara Doe:</a> This guy has been going
-                                                                    100+ MPH on side streets. <br>
-                                                                    <small class="text-muted">August 6, 2016 @ 10:35am
-                                                                    </small>
-                                                                </p>
-                                                            </div>
-                                                        </div>
-                                                    </div>
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </li>
-                                    <li class="list-group-item">
-                                        <div class="media">
-                                            <div></div>
-                                            <div class="media-body">
-                                                <div class="media" style="overflow:visible;">
-                                                    <div><img src="../assets/img/2.jpg" class="mr-3"
-                                                              style="width: 25px; height:25px;"></div>
-                                                    <div class="media-body" style="overflow:visible;">
-                                                        <div class="row">
-                                                            <div class="col-md-12">
-                                                                <p><a href="#">Brennan Prill:</a> This guy has been
-                                                                    going 100+ MPH on side streets. <br>
-                                                                    <small class="text-muted">August 6, 2016 @ 10:35am
-                                                                    </small>
-                                                                </p>
-                                                            </div>
-                                                        </div>
-                                                    </div>
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </li>
-                                </ul>
-                                <button class="btn btn-light">
-                                    Add Comment
-                                </button>
-                            </div>
-                        </div>
+                        <button onclick="goBack()" class="btn btn-secondary">Zur&uuml;ck</button>
                     </td>
                 </tr>
             </table>
         </div>
     </div>
-    <footer>
-        <div class="container">
-            <div class="progress">
-                <div class="progress-bar pg-groups" role="progressbar" id="progressbar">
-                </div>
-                <div>
-                    Assessment - Präsentationsphase - Dossier - Reflexionsphase - Feedbackphase - Gruppenbildung
-                </div>
-                <div class="progress-bar pg-rest" role="progressbar">
-                </div>
-            </div>
-            <button id="nextPhase" class="btn btn-light">nächste Phase</button>
-            <button id="btnUnstructuredUpload" class="btn btn-light">Unstrukturierte Abgabe</button>
-        </div>
-    </footer>
+    <footer:footer/>
+
 </div>
 
 </body>
diff --git a/gemeinsamforschen/src/main/webapp/pages/project-student.jsp.orig b/gemeinsamforschen/src/main/webapp/pages/project-student.jsp.orig
new file mode 100644
index 0000000000000000000000000000000000000000..a5671b8ada831eeef0162fca442adfced0d10762
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/project-student.jsp.orig
@@ -0,0 +1,187 @@
+<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%--suppress XmlDuplicatedId --%>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %>
+
+
+
+<!--todo: E-mail an Studenten als Notifikation für Phasenwechsel -->
+
+
+<!DOCTYPE html>
+<html>
+
+<head>
+    <omniDependencies:omniDependencies/>
+    <script src="../assets/js/project-student.js"></script>
+    <link rel="stylesheet" href="../assets/css/Community-ChatComments.css">
+
+</head>
+
+<body>
+<div id="wrapper">
+    <menu:menu/>
+
+    <div class="page-content-wrapper">
+        <headLine:headLine/>
+        <div>
+            <table>
+                <tr>
+                    <td id="yourContent">
+                        <h1>Feedbackable Students</h1>
+                        <!-- here will be all the content -->
+                        <table id="myGroupMembers">
+                            <tr>
+
+                                <td width="100px" valign="top">
+                                    <h3>student1</h3>
+                                    <img src="../assets/img/1.jpg">
+                                    <a href="#">student1@uni.de</a>
+                                    <hr>
+                                    <ul>
+
+                                        <li>
+                                            Projektübersicht hochgeladen
+                                            <a class="annotationview" role="button">
+                                                <label style="font-size:10px;"><i class="far fa-comments"
+                                                                                  style="font-size:15px;"></i>feedback</label>
+                                            </a>
+                                        </li>
+                                        <li>
+                                            Blumen ins Hausaufgabenheft geklebt
+                                            <a class="annotationview" role="button">
+                                                <label style="font-size:10px;"><i class="far fa-comments"
+                                                                                  style="font-size:15px;"></i>feedback</label>
+                                            </a>
+                                        </li>
+                                    </ul>
+                                </td>
+                                <td></td>
+
+                                <td width="100px" valign="top">
+                                    <h3>student2</h3>
+                                    <img src="../assets/img/2.jpg">
+                                    <a href="#">student2@uni.de</a>
+                                    <hr>
+                                    <ul>
+                                        <li>
+                                            Blumen an Vegetarier verfüttert
+                                            <a class="annotationview" role="button">
+                                                <label style="font-size:10px;"><i class="far fa-comments"
+                                                                                  style="font-size:15px;"></i>feedback</label>
+                                            </a>
+                                        </li>
+                                        <li>
+                                            Literaturverzeichnis hochgeladen
+                                            <a class="annotationview" role="button">
+                                                <label style="font-size:10px;"><i class="far fa-comments"
+                                                                                  style="font-size:15px;"></i>feedback</label>
+                                            </a>
+                                        </li>
+                                        <li>
+                                            Die armen Vegetarier
+                                            <a class="annotationview" role="button">
+                                                <label style="font-size:10px;"><i class="far fa-comments"
+                                                                                  style="font-size:15px;"></i>feedback</label>
+                                            </a>
+                                        </li>
+                                    </ul>
+                                </td>
+                                <td></td>
+
+                                <td width="100px" valign="top">
+                                    <h3>student3</h3>
+                                    <img src="../assets/img/3.jpg">
+                                    <a href="#">student3@uni.de</a>
+                                    <hr>
+                                    <ul id="submissionUpload">
+                                    </ul>
+                                </td>
+
+                            </tr>
+                        </table>
+
+<<<<<<< HEAD
+                        <button onclick="goBack()" class="btn btn-secondary">Zur&uuml;ck</button>
+
+                        <script>
+                            function goBack() {
+                                window.history.back();
+                            }
+                        </script>
+
+                    </td>
+                    <td id="chat">
+                        <div class="card">
+                            <div class="card-header">
+                                <h6 class="mb-0">Gruppen+Projekt Chat</h6>
+                            </div>
+                            <div class="card-body">
+                                <ul class="list-group">
+                                    <li class="list-group-item">
+                                        <div class="media">
+                                            <div></div>
+                                            <div class="media-body">
+                                                <div class="media" style="overflow:visible;">
+                                                    <div><img src="../assets/img/1.jpg" class="mr-3"
+                                                              style="width: 25px; height:25px;"></div>
+                                                    <div class="media-body" style="overflow:visible;">
+                                                        <div class="row">
+                                                            <div class="col-md-12">
+                                                                <p><a href="#">Sara Doe:</a> This guy has been going
+                                                                    100+ MPH on side streets. <br>
+                                                                    <small class="text-muted">August 6, 2016 @ 10:35am
+                                                                    </small>
+                                                                </p>
+                                                            </div>
+                                                        </div>
+                                                    </div>
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </li>
+                                    <li class="list-group-item">
+                                        <div class="media">
+                                            <div></div>
+                                            <div class="media-body">
+                                                <div class="media" style="overflow:visible;">
+                                                    <div><img src="../assets/img/2.jpg" class="mr-3"
+                                                              style="width: 25px; height:25px;"></div>
+                                                    <div class="media-body" style="overflow:visible;">
+                                                        <div class="row">
+                                                            <div class="col-md-12">
+                                                                <p><a href="#">Brennan Prill:</a> This guy has been
+                                                                    going 100+ MPH on side streets. <br>
+                                                                    <small class="text-muted">August 6, 2016 @ 10:35am
+                                                                    </small>
+                                                                </p>
+                                                            </div>
+                                                        </div>
+                                                    </div>
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </li>
+                                </ul>
+                                <button class="btn btn-light">
+                                    Add Comment
+                                </button>
+                            </div>
+                        </div>
+=======
+                        <button onclick="goBack()" class="btn btn-secondary">Zurueck</button>
+>>>>>>> development_master
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div>
+    <footer:footer/>
+
+</div>
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/rateContribution.jsp b/gemeinsamforschen/src/main/webapp/pages/rateContribution.jsp
index 50431a5333efaf8cfbe617b8c561a1828a63aac2..cfda957fd875e6dcc394162b2031fe301bf6ff53 100644
--- a/gemeinsamforschen/src/main/webapp/pages/rateContribution.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/rateContribution.jsp
@@ -1,7 +1,8 @@
-<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %>
 <!DOCTYPE html>
 <html>
 
@@ -16,35 +17,19 @@
 <body>
 <div id="wrapper">
     <menu:menu/>
+    <p id="groupId" hidden>Hier steht jetzt das richtige</p>
     <div class="page-content-wrapper">
         <headLine:headLine/>
         <div>
             <table>
                 <tr>
                     <td id="yourContent">
-                        <h1>letzter Schritt im Projekt1 </h1>
+                        <h2>letzter Schritt im Projekt1 </h2>
                         <table class="table-striped peerStudent"
-                               style="width:100%;border:1px solid; margin:auto;" id="student1">
+                               style="width:100%;border:1px solid; margin:auto;" id="2">
                             <tr>
                                 <td align="center">
-                                    <img src="../assets/img/1.jpg" alt="student1"
-                                         style="width:20%;">
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>
-                                    <div class="contributionRating" id="eJournal">
-                                        Lernzieltagebuch:
-                                        Lernen ist wie Rudern gegen den Strom. Hört man damit auf, treibt man zurück.
-                                        <textarea id="ejournalFeedback">
-				                        meine Bewertung
-			                        </textarea>
-                                        <label><input type="radio" name="eJournal" value="5">Perfekt</label>
-                                        <label><input type="radio" name="eJournal" value="4">Makellos</label>
-                                        <label><input type="radio" name="eJournal" value="3">regulär</label>
-                                        <label><input type="radio" name="eJournal" value="2">Makelhaft</label>
-                                        <label><input type="radio" name="eJournal" value="1">Lädiert</label>
-                                    </div>
+                                    <h3>Gruppe 4</h3>
                                 </td>
                             </tr>
                             <tr>
@@ -83,68 +68,11 @@
                         </table>
                         <button id="submit" class="btn btn-success">Feedback hochladen</button>
                     </td>
-                    <td id="chat">
-                        <div class="card">
-                            <div class="card-header">
-                                <h6 class="mb-0">Gruppen+Projekt Chat</h6>
-                            </div>
-                            <div class="card-body">
-                                <ul class="list-group">
-                                    <li class="list-group-item">
-                                        <div class="media">
-                                            <div></div>
-                                            <div class="media-body">
-                                                <div class="media" style="overflow:visible;">
-                                                    <div><img src="../assets/img/1.jpg" class="mr-3"
-                                                              style="width: 25px; height:25px;"></div>
-                                                    <div class="media-body" style="overflow:visible;">
-                                                        <div class="row">
-                                                            <div class="col-md-12">
-                                                                <p><a href="#">Sara Doe:</a> This guy has been going
-                                                                    100+ MPH on side streets. <br>
-                                                                    <small class="text-muted">August 6, 2016 @ 10:35am
-                                                                    </small>
-                                                                </p>
-                                                            </div>
-                                                        </div>
-                                                    </div>
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </li>
-                                    <li class="list-group-item">
-                                        <div class="media">
-                                            <div></div>
-                                            <div class="media-body">
-                                                <div class="media" style="overflow:visible;">
-                                                    <div><img src="../assets/img/2.jpg" class="mr-3"
-                                                              style="width: 25px; height:25px;"></div>
-                                                    <div class="media-body" style="overflow:visible;">
-                                                        <div class="row">
-                                                            <div class="col-md-12">
-                                                                <p><a href="#">Brennan Prill:</a> This guy has been
-                                                                    going 100+ MPH on side streets. <br>
-                                                                    <small class="text-muted">August 6, 2016 @ 10:35am
-                                                                    </small>
-                                                                </p>
-                                                            </div>
-                                                        </div>
-                                                    </div>
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </li>
-                                </ul>
-                                <button class="btn btn-light">
-                                    Add Comment
-                                </button>
-                            </div>
-                        </div>
-                    </td>
                 </tr>
             </table>
         </div>
     </div>
+    <footer:footer/>
 </div>
 </body>
 
diff --git a/gemeinsamforschen/src/main/webapp/pages/researchReportBibo.jsp b/gemeinsamforschen/src/main/webapp/pages/researchReportBibo.jsp
index d381386797e3f00c8ffbd18c46527e2cfafb0c8b..edda05a84cad978cd2f722ce55a37f38ca9c0d06 100644
--- a/gemeinsamforschen/src/main/webapp/pages/researchReportBibo.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/researchReportBibo.jsp
@@ -1,21 +1,14 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
-
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
 <!DOCTYPE html>
 
 <html>
 <head>
-    <meta charset="utf-8">
-    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
-    <link rel="stylesheet" href="../assets/css/styles.css">
-    <script src="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script>
-    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
-    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
-    <script src="../assets/js/utility.js"></script>
-    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css">
-    <link rel="stylesheet" href="../assets/fonts/font-awesome.min.css">
-    <link rel="stylesheet" href="../assets/css/Community-ChatComments.css">
-    <link rel="stylesheet" href="../assets/css/Sidebar-Menu-1.css">
-    <link rel="stylesheet" href="../assets/css/Sidebar-Menu.css">
+    <omniDependencies:omniDependencies/>
+    <link href="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet"> <!--FilePond -->
+    <link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet"> <!--FilePond -->
     <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css">
     <title>Forschungsbericht erstellen</title>
 </head>
@@ -23,19 +16,16 @@
 
 
 
-<form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save">
+<div id="wrapper">
+    <menu:menu></menu:menu>
+    <div class="page-content-wrapper">
+        <headLine:headLine/>
+        <div style="margin-left:50px;">
+            <table>
+                <tr>
+                    <td  id="yourContent">
+                        <form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save">
 
-    <div class = "researchReportMenu">
-        <nav>
-            <menu>
-                <menuitem><p><a href="">Gruppe</a></p> </menuitem>
-                <menuitem><p><a href="">Projekt erstellen</a> </p></menuitem>
-                <menuitem><p><a href="">Forschungsbericht erstellen</a></p></menuitem>
-                <menuitem><p><a href="">Review</a></p></menuitem>
-                <menuitem><p><a href="">User</a></p></menuitem>
-            </menu>
-        </nav>
-    </div>
 
     <div class = "researchReportTitlebar">
         <h1> Forschungsbericht erstellen 3/8</h1>
@@ -50,26 +40,39 @@
         <button class="researchReportButtons"><a href="researchReportQuestion.jsp">Speichern & weiter</a></button>
         <button class="researchReportButtons"><a href="researchReportRecherche.jsp"> Zur&uuml;ck </a></button>
     </div>
+    <div class="ResearchReportUpload">
+        <input type="file" class="filepond" name="filepond"> </input>
+    </div>
+
     <div class="researchReportProgress">
         <nav>
             <menu>
-                <menuitem><a href="researchReportTitle.jsp">Titel</a> </menuitem>
-                <menuitem><a href="researchReportRecherche.jsp">Recherche</a> </menuitem>
-                <menuitem><a href="researchReportBibo.jsp"><font color="#green">Literaturverzeichnis</font></a> </menuitem>
-                <menuitem><a href="researchReportQuestion.jsp">Forschnugsfrage</a> </menuitem>
-                <menuitem><a href="researchReportConcept.jsp">Konzept</a></menuitem>
-                <menuitem><a href="researchReportMethod.jsp">Methodik</a></menuitem>
-                <menuitem><a href="researchReportDo.jsp">Durchf&uuml;hrung</a></menuitem>
-                <menuitem><a href="researchReportEvaluation.jsp">Evalution</a></menuitem>
+                <menuitem><a id="title">Titel</a> </menuitem>
+                <menuitem><a id="recherche">Recherche</a> </menuitem>
+                <menuitem><a id="bibo"><font color="#green">Literaturverzeichnis</font></a> </menuitem>
+                <menuitem><a id="question">Forschnugsfrage</a> </menuitem>
+                <menuitem><a id="concept">Konzept</a></menuitem>
+                <menuitem><a id="method">Methodik</a></menuitem>
+                <menuitem><a id="reportDo">Durchf&uuml;hrung</a></menuitem>
+                <menuitem><a id="evaluation">Evalution</a></menuitem>
             </menu>
         </nav>
     </div>
 
-</form>
+                        </form>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div>
+</div>
 
-<script>
 
-</script>
+<script  src="../assets/js/createReportBibo.js"></script>
+<script  src="../assets/js/createReportProgress.js"></script>
+<script src="https://unpkg.com/filepond/dist/filepond.js"></script> <!--FilePond -->
+<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js"></script> <!--FilePond -->
+<script>FilePond.parse(document.body);</script> <!--FilePond -->
 
 </body>
 </html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/researchReportConcept.jsp b/gemeinsamforschen/src/main/webapp/pages/researchReportConcept.jsp
index e3329194ddd6e852c0675f67491510c48dfd0f5b..7e1516822394fcb490e0ebfc49a065b658cfd6e4 100644
--- a/gemeinsamforschen/src/main/webapp/pages/researchReportConcept.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/researchReportConcept.jsp
@@ -1,21 +1,14 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
-
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
 <!DOCTYPE html>
 
 <html>
 <head>
-    <meta charset="utf-8">
-    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
-    <link rel="stylesheet" href="../assets/css/styles.css">
-    <script src="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script>
-    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
-    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
-    <script src="../assets/js/utility.js"></script>
-    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css">
-    <link rel="stylesheet" href="../assets/fonts/font-awesome.min.css">
-    <link rel="stylesheet" href="../assets/css/Community-ChatComments.css">
-    <link rel="stylesheet" href="../assets/css/Sidebar-Menu-1.css">
-    <link rel="stylesheet" href="../assets/css/Sidebar-Menu.css">
+    <omniDependencies:omniDependencies/>
+    <link href="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet"> <!--FilePond -->
+    <link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet"> <!--FilePond -->
     <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css">
     <title>Forschungsbericht erstellen</title>
 </head>
@@ -25,17 +18,7 @@
 
 <form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save">
 
-    <div class = "researchReportMenu">
-        <nav>
-            <menu>
-                <menuitem><p><a href="">Gruppe</a></p> </menuitem>
-                <menuitem><p><a href="">Projekt erstellen</a> </p></menuitem>
-                <menuitem><p><a href="">Forschungsbericht erstellen</a></p></menuitem>
-                <menuitem><p><a href="">Review</a></p></menuitem>
-                <menuitem><p><a href="">User</a></p></menuitem>
-            </menu>
-        </nav>
-    </div>
+
 
     <div class = "researchReportTitlebar">
         <h1> Forschungsbericht erstellen 5/8</h1>
@@ -50,27 +33,33 @@
         <button class="researchReportButtons"><a href="researchReportMethod.jsp">Speichern & weiter</a></button>
         <button class="researchReportButtons"><a href="researchReportQuestion.jsp"> Zur&uuml;ck </a></button>
     </div>
+    <div class="ResearchReportUpload">
+        <input type="file" class="filepond" name="filepond"> </input>
+    </div>
 
     <div class="researchReportProgress">
         <nav>
             <menu>
-                <menuitem><a href="researchReportTitle.jsp"Titel</a> </menuitem>
-                <menuitem><a href="researchReportRecherche.jsp">Recherche</a> </menuitem>
-                <menuitem><a href="researchReportBibo.jsp">Literaturverzeichnis</a> </menuitem>
-                <menuitem><a href="researchReportQuestion.jsp">Forschnugsfrage</a> </menuitem>
-                <menuitem><a href="researchReportConcept.jsp"><font color="#green">Konzept</font></a></menuitem>
-                <menuitem><a href="researchReportMethod.jsp">Methodik</a></menuitem>
-                <menuitem><a href="researchReportDo.jsp">Durchf&uuml;hrung</a></menuitem>
-                <menuitem><a href="researchReportEvaluation.jsp">Evalution</a></menuitem>
+                <menuitem><a id="title">Titel</a> </menuitem>
+                <menuitem><a id="recherche">Recherche</a> </menuitem>
+                <menuitem><a id="bibo">Literaturverzeichnis</a> </menuitem>
+                <menuitem><a id="question">Forschnugsfrage</a> </menuitem>
+                <menuitem><a id="concept"><font color="#green">Konzept</font></a></menuitem>
+                <menuitem><a id="method">Methodik</a></menuitem>
+                <menuitem><a id="reportDo">Durchf&uuml;hrung</a></menuitem>
+                <menuitem><a id="evaluation">Evalution</a></menuitem>
             </menu>
         </nav>
     </div>
 
 </form>
 
-<script>
 
-</script>
+<script  src="../assets/js/createReportConcept.js"></script>
+<script  src="../assets/js/createReportProgress.js"></script>
+<script src="https://unpkg.com/filepond/dist/filepond.js"></script> <!--FilePond -->
+<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js"></script> <!--FilePond -->
+<script>FilePond.parse(document.body);</script> <!--FilePond -->
 
 </body>
 </html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/researchReportDo.jsp b/gemeinsamforschen/src/main/webapp/pages/researchReportDo.jsp
index 2e61fc39949c13a82749b721846dbf9b316e00f6..8fe4788e758133981ca9f02ff0345f100e2de69a 100644
--- a/gemeinsamforschen/src/main/webapp/pages/researchReportDo.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/researchReportDo.jsp
@@ -1,21 +1,14 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
-
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
 <!DOCTYPE html>
 
 <html>
 <head>
-    <meta charset="utf-8">
-    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
-    <link rel="stylesheet" href="../assets/css/styles.css">
-    <script src="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script>
-    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
-    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
-    <script src="../assets/js/utility.js"></script>
-    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css">
-    <link rel="stylesheet" href="../assets/fonts/font-awesome.min.css">
-    <link rel="stylesheet" href="../assets/css/Community-ChatComments.css">
-    <link rel="stylesheet" href="../assets/css/Sidebar-Menu-1.css">
-    <link rel="stylesheet" href="../assets/css/Sidebar-Menu.css">
+    <omniDependencies:omniDependencies/>
+    <link href="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet"> <!--FilePond -->
+    <link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet"> <!--FilePond -->
     <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css">
     <title>Forschungsbericht erstellen</title>
 </head>
@@ -23,19 +16,15 @@
 
 
 
-<form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save">
-
-    <div class = "researchReportMenu">
-        <nav>
-            <menu>
-                <menuitem><p><a href="">Gruppe</a></p> </menuitem>
-                <menuitem><p><a href="">Projekt erstellen</a> </p></menuitem>
-                <menuitem><p><a href="">Forschungsbericht erstellen</a></p></menuitem>
-                <menuitem><p><a href="">Review</a></p></menuitem>
-                <menuitem><p><a href="">User</a></p></menuitem>
-            </menu>
-        </nav>
-    </div>
+<div id="wrapper">
+    <menu:menu></menu:menu>
+    <div class="page-content-wrapper">
+        <headLine:headLine/>
+        <div style="margin-left:50px;">
+            <table>
+                <tr>
+                    <td  id="yourContent">
+                        <form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save">
 
     <div class = "researchReportTitlebar">
         <h1> Forschungsbericht erstellen 7/8</h1>
@@ -50,27 +39,39 @@
         <button class="researchReportButtons"><a href="researchReportEvaluation.jsp">Speichern & weiter</a></button>
         <button class="researchReportButtons"><a href="researchReportMethod.jsp"> Zur&uuml;ck </a></button>
     </div>
+    <div class="ResearchReportUpload">
+        <input type="file" class="filepond" name="filepond"> </input>
+    </div>
 
     <div class="researchReportProgress">
         <nav>
             <menu>
-                <menuitem><a href="researchReportTitle.jsp">Titel</a> </menuitem>
-                <menuitem><a href="researchReportRecherche.jsp">Recherche</a> </menuitem>
-                <menuitem><a href="researchReportBibo.jsp">Literaturverzeichnis</a> </menuitem>
-                <menuitem><a href="researchReportQuestion.jsp">Forschnugsfrage</a> </menuitem>
-                <menuitem><a href="researchReportConcept.jsp">Konzept</a></menuitem>
-                <menuitem><a href="researchReportMethod.jsp">Methodik</a></menuitem>
-                <menuitem><a href="researchReportDo.jsp"><font color="#green">Durchf&uuml;hrung</font></a></menuitem>
-                <menuitem><a href="researchReportEvaluation.jsp">Evalution</a></menuitem>
+                <menuitem><a id="title">Titel</a> </menuitem>
+                <menuitem><a id="recherche">Recherche</a> </menuitem>
+                <menuitem><a id="bibo">Literaturverzeichnis</a> </menuitem>
+                <menuitem><a id="question">Forschnugsfrage</a> </menuitem>
+                <menuitem><a id="concept">Konzept</a></menuitem>
+                <menuitem><a id="method"><font color="#green">Methodik</font></a></menuitem>
+                <menuitem><a id="reportDo">Durchf&uuml;hrung</a></menuitem>
+                <menuitem><a id="evaluation">Evalution</a></menuitem>
             </menu>
         </nav>
     </div>
 
-</form>
+                        </form>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div>
+</div>
 
-<script>
 
-</script>
+<script  src="../assets/js/createReportDo.js"></script>
+<script  src="../assets/js/createReportProgress.js"></script>
+<script src="https://unpkg.com/filepond/dist/filepond.js"></script> <!--FilePond -->
+<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js"></script> <!--FilePond -->
+<script>FilePond.parse(document.body);</script> <!--FilePond -->
 
 </body>
 </html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/researchReportEvaluation.jsp b/gemeinsamforschen/src/main/webapp/pages/researchReportEvaluation.jsp
index 57bea8045cf358e2b2ff765f684d102b49879246..14e034a250e36e161926ccc873a9c08727e7fc9c 100644
--- a/gemeinsamforschen/src/main/webapp/pages/researchReportEvaluation.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/researchReportEvaluation.jsp
@@ -1,21 +1,14 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
-
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
 <!DOCTYPE html>
 
 <html>
 <head>
-    <meta charset="utf-8">
-    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
-    <link rel="stylesheet" href="../assets/css/styles.css">
-    <script src="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script>
-    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
-    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
-    <script src="../assets/js/utility.js"></script>
-    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css">
-    <link rel="stylesheet" href="../assets/fonts/font-awesome.min.css">
-    <link rel="stylesheet" href="../assets/css/Community-ChatComments.css">
-    <link rel="stylesheet" href="../assets/css/Sidebar-Menu-1.css">
-    <link rel="stylesheet" href="../assets/css/Sidebar-Menu.css">
+    <omniDependencies:omniDependencies/>
+    <link href="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet"> <!--FilePond -->
+    <link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet"> <!--FilePond -->
     <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css">
     <title>Forschungsbericht erstellen</title>
 </head>
@@ -23,19 +16,15 @@
 
 
 
-<form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save">
-
-    <div class = "researchReportMenu">
-        <nav>
-            <menu>
-                <menuitem><p><a href="">Gruppe</a></p> </menuitem>
-                <menuitem><p><a href="">Projekt erstellen</a> </p></menuitem>
-                <menuitem><p><a href="">Forschungsbericht erstellen</a></p></menuitem>
-                <menuitem><p><a href="">Review</a></p></menuitem>
-                <menuitem><p><a href="">User</a></p></menuitem>
-            </menu>
-        </nav>
-    </div>
+<div id="wrapper">
+    <menu:menu></menu:menu>
+    <div class="page-content-wrapper">
+        <headLine:headLine/>
+        <div style="margin-left:50px;">
+            <table>
+                <tr>
+                    <td  id="yourContent">
+                        <form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save">
 
     <div class = "researchReportTitlebar">
         <h1> Forschungsbericht erstellen 8/8</h1>
@@ -50,27 +39,39 @@
         <button class="researchReportButtons"><a href="project-student.jsp">Speichern & weiter</a></button>
         <button class="researchReportButtons"><a href="researchReportDo.jsp"> Zur&uuml;ck </a></button>
     </div>
+    <div class="ResearchReportUpload">
+        <input type="file" class="filepond" name="filepond"> </input>
+    </div>
 
     <div class="researchReportProgress">
         <nav>
             <menu>
-                <menuitem><a href="researchReportTitle.jsp">Titel</a> </menuitem>
-                <menuitem><a href="researchReportRecherche.jsp">Recherche</a> </menuitem>
-                <menuitem><a href="researchReportBibo.jsp">Literaturverzeichnis</a> </menuitem>
-                <menuitem><a href="researchReportQuestion.jsp">Forschnugsfrage</a> </menuitem>
-                <menuitem><a href="researchReportConcept.jsp">Konzept</a></menuitem>
-                <menuitem><a href="researchReportMethod.jsp">Methodik</a></menuitem>
-                <menuitem><a href="researchReportDo.jsp">Durchf&uuml;hrung</a></menuitem>
-                <menuitem><a href="researchReportEvaluation.jsp"><font color="#green">Evalution</font></a></menuitem>
+                <menuitem><a id="title">Titel</a> </menuitem>
+                <menuitem><a id="recherche">Recherche</a> </menuitem>
+                <menuitem><a id="bibo">Literaturverzeichnis</a> </menuitem>
+                <menuitem><a id="question">Forschnugsfrage</a> </menuitem>
+                <menuitem><a id="concept">Konzept</a></menuitem>
+                <menuitem><a id="method">Methodik</a></menuitem>
+                <menuitem><a id="reportDo">Durchf&uuml;hrung</a></menuitem>
+                <menuitem><a id="evaluation"><font color="#green">Evalution</font></a></menuitem>
             </menu>
         </nav>
     </div>
 
-</form>
+                        </form>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div>
+</div>
 
-<script>
 
-</script>
+<script  src="../assets/js/createReportEvaluation.js"></script>
+<script  src="../assets/js/createReportProgress.js"></script>
+<script src="https://unpkg.com/filepond/dist/filepond.js"></script> <!--FilePond -->
+<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js"></script> <!--FilePond -->
+<script>FilePond.parse(document.body);</script> <!--FilePond -->
 
 </body>
 </html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/researchReportMethod.jsp b/gemeinsamforschen/src/main/webapp/pages/researchReportMethod.jsp
index cea25f4e97b9503d10ed2ddaa85ae698d6f43b01..1722e68b7d6ff471c3f4843d5dd3f843e47d9561 100644
--- a/gemeinsamforschen/src/main/webapp/pages/researchReportMethod.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/researchReportMethod.jsp
@@ -1,21 +1,14 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
-
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
 <!DOCTYPE html>
 
 <html>
 <head>
-    <meta charset="utf-8">
-    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
-    <link rel="stylesheet" href="../assets/css/styles.css">
-    <script src="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script>
-    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
-    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
-    <script src="../assets/js/utility.js"></script>
-    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css">
-    <link rel="stylesheet" href="../assets/fonts/font-awesome.min.css">
-    <link rel="stylesheet" href="../assets/css/Community-ChatComments.css">
-    <link rel="stylesheet" href="../assets/css/Sidebar-Menu-1.css">
-    <link rel="stylesheet" href="../assets/css/Sidebar-Menu.css">
+    <omniDependencies:omniDependencies/>
+    <link href="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet"> <!--FilePond -->
+    <link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet"> <!--FilePond -->
     <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css">
     <title>Forschungsbericht erstellen</title>
 </head>
@@ -23,19 +16,16 @@
 
 
 
-<form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save">
+<div id="wrapper">
+    <menu:menu></menu:menu>
+    <div class="page-content-wrapper">
+        <headLine:headLine/>
+        <div style="margin-left:50px;">
+            <table>
+                <tr>
+                    <td  id="yourContent">
+                        <form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save">
 
-    <div class = "researchReportMenu">
-        <nav>
-            <menu>
-                <menuitem><p><a href="">Gruppe</a></p> </menuitem>
-                <menuitem><p><a href="">Projekt erstellen</a> </p></menuitem>
-                <menuitem><p><a href="">Forschungsbericht erstellen</a></p></menuitem>
-                <menuitem><p><a href="">Review</a></p></menuitem>
-                <menuitem><p><a href="">User</a></p></menuitem>
-            </menu>
-        </nav>
-    </div>
 
     <div class = "researchReportTitlebar">
         <h1> Forschungsbericht erstellen 6/8</h1>
@@ -50,27 +40,39 @@
         <button class="researchReportButtons"><a href="researchReportDo.jsp">Speichern & weiter</a></button>
         <button class="researchReportButtons"><a href="researchReportConcept.jsp"> Zur&uuml;ck </a></button>
     </div>
+    <div class="ResearchReportUpload">
+        <input type="file" class="filepond" name="filepond"> </input>
+    </div>
 
     <div class="researchReportProgress">
         <nav>
             <menu>
-                <menuitem><a href="researchReportTitle.jsp">Titel</a> </menuitem>
-                <menuitem><a href="researchReportRecherche.jsp">Recherche</a> </menuitem>
-                <menuitem><a href="researchReportBibo.jsp">Literaturverzeichnis</a> </menuitem>
-                <menuitem><a href="researchReportQuestion.jsp">Forschnugsfrage</a> </menuitem>
-                <menuitem><a href="researchReportConcept.jsp">Konzept</a></menuitem>
-                <menuitem><a href="researchReportMethod.jsp"><font color="#green">Methodik</font></a></menuitem>
-                <menuitem><a href="researchReportDo.jsp">Durchf&uuml;hrung</a></menuitem>
-                <menuitem><a href="researchReportEvaluation.jsp">Evalution</a></menuitem>
+                <menuitem><a id="title">Titel</a> </menuitem>
+                <menuitem><a id="recherche">Recherche</a> </menuitem>
+                <menuitem><a id="bibo">Literaturverzeichnis</a> </menuitem>
+                <menuitem><a id="question">Forschnugsfrage</a> </menuitem>
+                <menuitem><a id="concept">Konzept</a></menuitem>
+                <menuitem><a id="method"><font color="#green">Methodik</font></a></menuitem>
+                <menuitem><a id="reportDo">Durchf&uuml;hrung</a></menuitem>
+                <menuitem><a id="evaluation">Evalution</a></menuitem>
             </menu>
         </nav>
     </div>
 
-</form>
+                        </form>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div>
+</div>
 
-<script>
 
-</script>
+<script  src="../assets/js/createReportMethod.js"></script>
+<script  src="../assets/js/createReportProgress.js"></script>
+<script src="https://unpkg.com/filepond/dist/filepond.js"></script> <!--FilePond -->
+<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js"></script> <!--FilePond -->
+<script>FilePond.parse(document.body);</script> <!--FilePond -->
 
 </body>
 </html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/researchReportOverview.jsp b/gemeinsamforschen/src/main/webapp/pages/researchReportOverview.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..014075eee00ae3a74cb07577d1df4d61ad550ea1
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/researchReportOverview.jsp
@@ -0,0 +1,125 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
+<html>
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1", charset="utf-8">
+    <omniDependencies:omniDependencies/>
+    <link href="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet"> <!--FilePond -->
+    <link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet"> <!--FilePond -->
+    <link href="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet"> <!--FilePond -->
+    <link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet"> <!--FilePond -->
+    <link rel="stylesheet" type="text/css" href="../assets/css/researchReportOverview.css">
+    <script src="../assets/js/createReportOverview.js"></script>
+    <title>Forschungsbericht Ãœbersicht</title>
+
+
+</head>
+
+<body>
+
+<div id="wrapper">
+    <menu:menu></menu:menu>
+    <div class="page-content-wrapper">
+        <headLine:headLine/>
+        <div style="margin-left:50px;">
+            <table>
+                <tr>
+                    <td  id="yourContent">
+                        <form id="researchReportOverview" class="researchReportOverview">
+                            <div class = "researchReportTitlebar">
+                                <h1> Forschungsbericht Ãœbersicht</h1>
+                            </div>
+
+
+            <div class="reports">
+                <h2>Forschungberichte</h2>
+                <table>
+                    <thead>
+                    <tr>
+                        <th>Titel</th>
+                        <th>Autor</th>
+                        <th>Placeholder</th>
+                    </tr>
+                    </thead>
+                    <tbody>
+                    <tr>
+                        <td>Titel1</td>
+                        <td>Autor1</td>
+                        <td>1</td>
+                    </tr>
+                    <tr>
+                        <td>Titel2</td>
+                        <td>Autor2</td>
+                        <td>2</td>
+                    </tr>
+                    <tr>
+                        <td>Titel3</td>
+                        <td>Autor3</td>
+                        <td>3</td>
+                    </tr>
+                    </tbody>
+                </table>
+            </div>
+
+  <!--  <div class="ResearchReportUpload">
+        <h3>Gesamten Forschungsbericht hochladen </h3>
+        <input type="file" class="filepond" name="filepond">
+    </div> -->
+
+    <div class="feedbacks">
+        <h2>Feedbacks</h2>
+        <table>
+            <thead>
+            <tr>
+                <th>Titel</th>
+                <th>Autor</th>
+                <th>Placeholder</th>
+            </tr>
+            </thead>
+            <tbody>
+            <tr>
+                <td>Titel1</td>
+                <td>Autor1</td>
+                <td>1</td>
+            </tr>
+            <tr>
+                <td>Titel2</td>
+                <td>Autor2</td>
+                <td>2</td>
+            </tr>
+            <tr>
+                <td>Titel3</td>
+                <td>Autor3</td>
+                <td>3</td>
+            </tr>
+            </tbody>
+        </table>
+    </div>
+
+
+     <div class="ResearchReportButtons">
+         <button class="researchReportButtons"><a id="uploader">Upload File</a></button>
+         <button class="researchReportButtons"><a id="forwardLink">Bericht erstellen</a></button>
+         <button class="researchReportButtons"><a id="backLink">Zur&uuml;ck</a></button>
+     </div>
+
+                        </form>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div>
+</div>
+
+
+
+
+<script src="https://unpkg.com/filepond/dist/filepond.js"></script> <!--FilePond -->
+<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js"></script> <!--FilePond -->
+<script>FilePond.parse(document.body);</script> <!--FilePond -->
+
+
+</body>
+</html>
diff --git a/gemeinsamforschen/src/main/webapp/pages/researchReportQuestion.jsp b/gemeinsamforschen/src/main/webapp/pages/researchReportQuestion.jsp
index ec485438f6b2494072e76f5dbdffca885719f771..8b69897fa00c07c0042cd6b0e645272351ce9576 100644
--- a/gemeinsamforschen/src/main/webapp/pages/researchReportQuestion.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/researchReportQuestion.jsp
@@ -1,21 +1,15 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
 
 <!DOCTYPE html>
 
 <html>
 <head>
-    <meta charset="utf-8">
-    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
-    <link rel="stylesheet" href="../assets/css/styles.css">
-    <script src="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script>
-    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
-    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
-    <script src="../assets/js/utility.js"></script>
-    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css">
-    <link rel="stylesheet" href="../assets/fonts/font-awesome.min.css">
-    <link rel="stylesheet" href="../assets/css/Community-ChatComments.css">
-    <link rel="stylesheet" href="../assets/css/Sidebar-Menu-1.css">
-    <link rel="stylesheet" href="../assets/css/Sidebar-Menu.css">
+    <omniDependencies:omniDependencies/>
+    <link href="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet"> <!--FilePond -->
+    <link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet"> <!--FilePond -->
     <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css">
     <title>Forschungsbericht erstellen</title>
 </head>
@@ -24,19 +18,16 @@
 
 
 
-<form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save">
+<div id="wrapper">
+    <menu:menu></menu:menu>
+    <div class="page-content-wrapper">
+        <headLine:headLine/>
+        <div style="margin-left:50px;">
+            <table>
+                <tr>
+                    <td  id="yourContent">
+                        <form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save">
 
-    <div class = "researchReportMenu">
-        <nav>
-            <menu>
-                <menuitem><p><a href="">Gruppe</a></p> </menuitem>
-                <menuitem><p><a href="">Projekt erstellen</a> </p></menuitem>
-                <menuitem><p><a href="">Forschungsbericht erstellen</a></p></menuitem>
-                <menuitem><p><a href="">Review</a></p></menuitem>
-                <menuitem><p><a href="">User</a></p></menuitem>
-            </menu>
-        </nav>
-    </div>
 
     <div class = "researchReportTitlebar">
         <h1> Forschungsbericht erstellen 4/8</h1>
@@ -51,25 +42,38 @@
         <button class="researchReportButtons"><a href="researchReportConcept.jsp">Speichern & weiter</a></button>
         <button class="researchReportButtons"><a href="researchReportBibo.jsp"> Zur&uuml;ck </a></button>
     </div>
+    <div class="ResearchReportUpload">
+        <input type="file" class="filepond" name="filepond"> </input>
+    </div>
     <div class="researchReportProgress">
         <nav>
             <menu>
-                <menuitem><a href="researchReportTitle.jsp">Titel</a> </menuitem>
-                <menuitem><a href="researchReportRecherche.jsp">Recherche</a> </menuitem>
-                <menuitem><a href="researchReportBibo.jsp">Literaturverzeichnis</a> </menuitem>
-                <menuitem><a href="researchReportQuestion.jsp"><font color="#green">Forschnugsfrage</font></a> </menuitem>
-                <menuitem><a href="researchReportConcept.jsp">Konzept</a></menuitem>
-                <menuitem><a href="researchReportMethod.jsp">Methodik</a></menuitem>
-                <menuitem><a href="researchReportDo.jsp">Durchf&uuml;hrung</a></menuitem>
-                <menuitem><a href="researchReportEvaluation.jsp">Evalution</a></menuitem>
+                <menuitem><a id="title">Titel</a> </menuitem>
+                <menuitem><a id="recherche">Recherche</a> </menuitem>
+                <menuitem><a id="bibo">Literaturverzeichnis</a> </menuitem>
+                <menuitem><a id="question"><font color="#green">Forschnugsfrage</font></a> </menuitem>
+                <menuitem><a id="concept">Konzept</a></menuitem>
+                <menuitem><a id="method">Methodik</a></menuitem>
+                <menuitem><a id="reportDo">Durchf&uuml;hrung</a></menuitem>
+                <menuitem><a id="evaluation">Evalution</a></menuitem>
             </menu>
         </nav>
     </div>
 
-</form>
+                        </form>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div>
+</div>
+
 
-<script>
-</script>
+<script  src="../assets/js/createReportQuestion.js"></script>
+<script  src="../assets/js/createReportProgress.js"></script>
+<script src="https://unpkg.com/filepond/dist/filepond.js"></script> <!--FilePond -->
+<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js"></script> <!--FilePond -->
+<script>FilePond.parse(document.body);</script> <!--FilePond -->
 
 </body>
 </html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/researchReportRecherche.jsp b/gemeinsamforschen/src/main/webapp/pages/researchReportRecherche.jsp
index e9d3d76bf7b411d6eef1e848d46bb471cc7f683e..4dcecad36722f6527192a266331b945cbe566ab9 100644
--- a/gemeinsamforschen/src/main/webapp/pages/researchReportRecherche.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/researchReportRecherche.jsp
@@ -1,41 +1,31 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
-
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
 <!DOCTYPE html>
 
 <html>
 <head>
-    <meta charset="utf-8">
-    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
-    <link rel="stylesheet" href="../assets/css/styles.css">
-    <script src="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script>
-    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
-    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
-    <script src="../assets/js/utility.js"></script>
-    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css">
-    <link rel="stylesheet" href="../assets/fonts/font-awesome.min.css">
-    <link rel="stylesheet" href="../assets/css/Community-ChatComments.css">
-    <link rel="stylesheet" href="../assets/css/Sidebar-Menu-1.css">
-    <link rel="stylesheet" href="../assets/css/Sidebar-Menu.css">
+    <omniDependencies:omniDependencies/>
+    <link href="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet"> <!--FilePond -->
+    <link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet"> <!--FilePond -->
     <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css">
     <title>Forschungsbericht erstellen</title>
 </head>
 <body>
 
 
+<div id="wrapper">
+    <menu:menu></menu:menu>
+    <div class="page-content-wrapper">
+        <headLine:headLine/>
+        <div style="margin-left:50px;">
+            <table>
+                <tr>
+                    <td  id="yourContent">
+                        <form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save">
 
-<form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save">
 
-    <div class = "researchReportMenu">
-        <nav>
-            <menu>
-                <menuitem><p><a href="">Gruppe</a></p> </menuitem>
-                <menuitem><p><a href="">Projekt erstellen</a> </p></menuitem>
-                <menuitem><p><a href="">Forschungsbericht erstellen</a></p></menuitem>
-                <menuitem><p><a href="">Review</a></p></menuitem>
-                <menuitem><p><a href="">User</a></p></menuitem>
-            </menu>
-        </nav>
-    </div>
 
     <div class = "researchReportTitlebar">
         <h1> Forschungsbericht erstellen 2/8</h1>
@@ -50,26 +40,42 @@
         <button class="researchReportButtons"><a href="researchReportBibo.jsp">Speichern & weiter</a></button>
         <button class="researchReportButtons"><a href="researchReportTitle.jsp"> Zur&uuml;ck </a></button>
     </div>
+
+    <div class="ResearchReportUpload">
+        <input type="file" class="filepond" name="filepond" />
+    </div>
+
     <div class="researchReportProgress">
         <nav>
             <menu>
-                <menuitem><a href="researchReportTitle.jsp">Titel</a> </menuitem>
-                <menuitem><a href="researchReportRecherche.jsp"><font color="#green">Recherche</font></a> </menuitem>
-                <menuitem><a href="researchReportBibo.jsp">Literaturverzeichnis</a> </menuitem>
-                <menuitem><a href="researchReportQuestion.jsp">Forschnugsfrage</a> </menuitem>
-                <menuitem><a href="researchReportConcept.jsp">Konzept</a></menuitem>
-                <menuitem><a href="researchReportMethod.jsp">Methodik</a></menuitem>
-                <menuitem><a href="researchReportDo.jsp">Durchf&uuml;hrung</a></menuitem>
-                <menuitem><a href="researchReportEvaluation.jsp">Evalution</a></menuitem>
+                <menuitem><a id="title">Titel</a> </menuitem>
+                <menuitem><a id="recherche"><font color="#green">Recherche</font></a> </menuitem>
+                <menuitem><a id="bibo">Literaturverzeichnis</a> </menuitem>
+                <menuitem><a id="question">Forschnugsfrage</a> </menuitem>
+                <menuitem><a id="concept">Konzept</a></menuitem>
+                <menuitem><a id="method">Methodik</a></menuitem>
+                <menuitem><a id="reportDo">Durchf&uuml;hrung</a></menuitem>
+                <menuitem><a id="evaluation">Evalution</a></menuitem>
             </menu>
         </nav>
     </div>
 
-</form>
+                        </form>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div>
+</div>
+
+
 
-<script>
 
-</script>
+<script  src="../assets/js/createReportRecherche.js"></script>
+<script  src="../assets/js/createReportProgress.js"></script>
+<script src="https://unpkg.com/filepond/dist/filepond.js"></script> <!--FilePond -->
+<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js"></script> <!--FilePond -->
+<script>FilePond.parse(document.body);</script> <!--FilePond -->
 
 </body>
 </html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/researchReportTitle.jsp b/gemeinsamforschen/src/main/webapp/pages/researchReportTitle.jsp
index a4bdcacfcc0953dcf759f6b7c13d15544cdc1259..87a24067f088992a897f101860c5b647c167885a 100644
--- a/gemeinsamforschen/src/main/webapp/pages/researchReportTitle.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/researchReportTitle.jsp
@@ -1,31 +1,31 @@
-<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
 
 <!DOCTYPE html>
 
 <html>
 <head>
-    <meta charset="utf-8">
-    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
-    <link rel="stylesheet" href="../assets/css/styles.css">
-    <script src="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script>
-    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
-    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
-    <script src="../assets/js/utility.js"></script>
-    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css">
-    <link rel="stylesheet" href="../assets/fonts/font-awesome.min.css">
-    <link rel="stylesheet" href="../assets/css/Community-ChatComments.css">
-    <link rel="stylesheet" href="../assets/css/Sidebar-Menu-1.css">
-    <link rel="stylesheet" href="../assets/css/Sidebar-Menu.css">
+    <omniDependencies:omniDependencies/>
+    <link href="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet"> <!--FilePond -->
+    <link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet"> <!--FilePond -->
     <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css">
     <title>Forschungsbericht erstellen</title>
 </head>
 <body>
 
+<div id="wrapper">
+    <menu:menu></menu:menu>
+        <div class="page-content-wrapper">
+            <headLine:headLine/>
+            <div style="margin-left:50px;">
+                <table>
+                    <tr>
+                        <td  id="yourContent">
+                            <form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save">
 
-
-<form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save"> 
-
-    <div class = "researchReportMenu">
+ <!-- <div class = "researchReportMenu">
         <nav>
             <menu>
                 <menuitem><p><a href="">Gruppe</a></p> </menuitem>
@@ -35,7 +35,7 @@
                 <menuitem><p><a href="">User</a></p></menuitem>
             </menu>
         </nav>
-    </div>
+    </div> -->
 
     <div class = "researchReportTitlebar">
         <h1> Forschungsbericht erstellen 1/8</h1>
@@ -47,30 +47,45 @@
 				</textarea>
     </div>
     <div class="ResearchReportButtons">
-        <button class="researchReportButtons"><a href="researchReportRecherche.jsp">Speichern & weiter</a></button>
-        <button class="researchReportButtons"><a href="project-student.jsp"> Zur&uuml;ck </a></button>
+        <button class="researchReportButtons"><a id="forwardLink">Speichern & weiter</a></button>
+        <button class="researchReportButtons"><a id="backLink"> Zur&uuml;ck </a></button>
     </div>
 
+    <div class="ResearchReportUpload">
+        <input type="file" class="filepond" name="filepond"> </input>
+    </div>
+
+
     <div class="researchReportProgress">
         <nav>
             <menu>
-                <menuitem><a href="researchReportTitle.jsp"><font color="#green">Titel</font></a> </menuitem>
-                <menuitem><a href="researchReportRecherche.jsp">Recherche</a> </menuitem>
-                <menuitem><a href="researchReportBibo.jsp">Literaturverzeichnis</a> </menuitem>
-                <menuitem><a href="researchReportQuestion.jsp">Forschnugsfrage</a> </menuitem>
-                <menuitem><a href="researchReportConcept.jsp">Konzept</a></menuitem>
-                <menuitem><a href="researchReportMethod.jsp">Methodik</a></menuitem>
-                <menuitem><a href="researchReportDo.jsp">Durchf&uuml;hrung</a></menuitem>
-                <menuitem><a href="researchReportEvaluation.jsp">Evalution</a></menuitem>
+                <menuitem><a id="title"><font color="#green">Titel</font></a> </menuitem>
+                <menuitem><a id="recherche">Recherche</a> </menuitem>
+                <menuitem><a id="bibo">Literaturverzeichnis</a> </menuitem>
+                <menuitem><a id="question">Forschnugsfrage</a> </menuitem>
+                <menuitem><a id="concept">Konzept</a></menuitem>
+                <menuitem><a id="method">Methodik</a></menuitem>
+                <menuitem><a id="reportDo">Durchf&uuml;hrung</a></menuitem>
+                <menuitem><a id="evaluation">Evalution</a></menuitem>
             </menu>
         </nav>
     </div>
 
 </form>
+                        </td>
+                    </tr>
+                </table>
+            </div>
+        </div>
+</div>
+
 
-<script>
+<script  src="../assets/js/createReportTitle.js"></script>
+<script  src="../assets/js/createReportProgress.js"></script>
+<script src="https://unpkg.com/filepond/dist/filepond.js"></script> <!--FilePond -->
+<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js"></script> <!--FilePond -->
+<script>FilePond.parse(document.body);</script> <!--FilePond -->
 
-</script>
 
 </body>
 </html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp b/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp
index 0eb33c1eaf3afbddc608bf14f0ce7c50692e380d..a0c99526f7d16fcef2a3473c6f5d5f098ed016de 100644
--- a/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp
@@ -2,6 +2,7 @@
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %>
 <!DOCTYPE html>
 <html>
 
@@ -32,68 +33,11 @@
                         </table>
                         <button id="submitQuiz" class="btn btn-success">Antwort speichern</button>
                     </td>
-                    <td  id="chat">
-                        <div class="card">
-                            <div class="card-header">
-                                <h6 class="mb-0">Gruppen+Projekt Chat</h6>
-                            </div>
-                            <div class="card-body">
-                                <ul class="list-group">
-                                    <li class="list-group-item">
-                                        <div class="media">
-                                            <div></div>
-                                            <div class="media-body">
-                                                <div class="media" style="overflow:visible;">
-                                                    <div><img src="../assets/img/1.jpg" class="mr-3"
-                                                              style="width: 25px; height:25px;"></div>
-                                                    <div class="media-body" style="overflow:visible;">
-                                                        <div class="row">
-                                                            <div class="col-md-12">
-                                                                <p><a href="#">Sara Doe:</a> This guy has been going
-                                                                    100+ MPH on side streets. <br>
-                                                                    <small class="text-muted">August 6, 2016 @ 10:35am
-                                                                    </small>
-                                                                </p>
-                                                            </div>
-                                                        </div>
-                                                    </div>
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </li>
-                                    <li class="list-group-item">
-                                        <div class="media">
-                                            <div></div>
-                                            <div class="media-body">
-                                                <div class="media" style="overflow:visible;">
-                                                    <div><img src="../assets/img/2.jpg" class="mr-3"
-                                                              style="width: 25px; height:25px;"></div>
-                                                    <div class="media-body" style="overflow:visible;">
-                                                        <div class="row">
-                                                            <div class="col-md-12">
-                                                                <p><a href="#">Brennan Prill:</a> This guy has been
-                                                                    going 100+ MPH on side streets. <br>
-                                                                    <small class="text-muted">August 6, 2016 @ 10:35am
-                                                                    </small>
-                                                                </p>
-                                                            </div>
-                                                        </div>
-                                                    </div>
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </li>
-                                </ul>
-                                <button class="btn btn-light">
-                                    Add Comment
-                                </button>
-                            </div>
-                        </div>
-                    </td>
                 </tr>
             </table>
         </div>
     </div>
+    <footer:footer/>
 </div>
 </body>
 
diff --git a/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp b/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp
index e105590e4a126bb3c2c390e9c9db96ff145dee07..8cadd01e748a2be689f85d9fec370d4d97e2d4a6 100644
--- a/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp
@@ -1,7 +1,9 @@
-<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
-<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %><!DOCTYPE html>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %>
+<!DOCTYPE html>
 <html>
 
 <head>
@@ -30,68 +32,11 @@
                         </table>
                         <button id="deleteQuiz" class="btn btn-danger">Quiz löschen</button>
                     </td>
-                    <td  id="chat">
-                        <div class="card">
-                            <div class="card-header">
-                                <h6 class="mb-0">Gruppen+Projekt Chat</h6>
-                            </div>
-                            <div class="card-body">
-                                <ul class="list-group">
-                                    <li class="list-group-item">
-                                        <div class="media">
-                                            <div></div>
-                                            <div class="media-body">
-                                                <div class="media" style="overflow:visible;">
-                                                    <div><img src="../assets/img/1.jpg" class="mr-3"
-                                                              style="width: 25px; height:25px;"></div>
-                                                    <div class="media-body" style="overflow:visible;">
-                                                        <div class="row">
-                                                            <div class="col-md-12">
-                                                                <p><a href="#">Sara Doe:</a> This guy has been going
-                                                                    100+ MPH on side streets. <br>
-                                                                    <small class="text-muted">August 6, 2016 @ 10:35am
-                                                                    </small>
-                                                                </p>
-                                                            </div>
-                                                        </div>
-                                                    </div>
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </li>
-                                    <li class="list-group-item">
-                                        <div class="media">
-                                            <div></div>
-                                            <div class="media-body">
-                                                <div class="media" style="overflow:visible;">
-                                                    <div><img src="../assets/img/2.jpg" class="mr-3"
-                                                              style="width: 25px; height:25px;"></div>
-                                                    <div class="media-body" style="overflow:visible;">
-                                                        <div class="row">
-                                                            <div class="col-md-12">
-                                                                <p><a href="#">Brennan Prill:</a> This guy has been
-                                                                    going 100+ MPH on side streets. <br>
-                                                                    <small class="text-muted">August 6, 2016 @ 10:35am
-                                                                    </small>
-                                                                </p>
-                                                            </div>
-                                                        </div>
-                                                    </div>
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </li>
-                                </ul>
-                                <button class="btn btn-light">
-                                    Add Comment
-                                </button>
-                            </div>
-                        </div>
-                    </td>
                 </tr>
             </table>
         </div>
     </div>
+    <footer:footer/>
 </div>
 </body>
 
diff --git a/gemeinsamforschen/src/main/webapp/pages/viewfeedback.jsp b/gemeinsamforschen/src/main/webapp/pages/viewfeedback.jsp
index 7782962570fe23549d27559bf209c1eeb53695af..d444f858ad4ac0803d6d99e233a90ed4e809144b 100644
--- a/gemeinsamforschen/src/main/webapp/pages/viewfeedback.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/viewfeedback.jsp
@@ -1,30 +1,25 @@
-<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
-<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
 
 <!DOCTYPE html>
 <html>
 
 <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <title>muster-gemeinsam-forschen</title>
-    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
-    <link rel="stylesheet" href="../assets/css/styles.css">
-    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
-    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
-    <link rel="stylesheet" href="../assets/fonts/font-awesome.min.css">
-    <link rel="stylesheet" href="../assets/css/Community-ChatComments.css">
-    <link rel="stylesheet" href="../assets/css/Sidebar-Menu-1.css">
-    <link rel="stylesheet" href="../assets/css/Sidebar-Menu.css">
+    <link rel="stylesheet" href="../assets/css/viewfeedback.css">
+    <omniDependencies:omniDependencies/>
     <script src="../assets/js/utility.js"></script>
     <script src="../assets/js/project-student.js"></script>
+    <script src="../assets/js/givepeerfeedback.js"></script>
+
 </head>
 
 <body>
 <div id="wrapper">
-    <menu:menu></menu:menu>
-
+    <menu:menu/>
     <div class="page-content-wrapper">
+        <headLine:headLine/>
         <div class="container-fluid">
             <h1 id="projectId"> PeerFeedback</h1>
         </div>
@@ -48,22 +43,66 @@
         <div>
             <table>
                 <tr>
-                    <td  id="Peerfeedback">
-                        <h2>Feedback Nachrichten von Student X</h2>
+                    <tr>
+                        <th>Feedback Nachrichten von Student X</th>
+                    </tr>
+
+
+                        <td  id="filter-feedbacks">
+
+
+                            <%--<iframe width="90%" height="200%" src="http://rocketchat.westeurope.cloudapp.azure.com/channel/general?layout=embedded"></iframe>
+                            --%>
+                            <%--<p id="view"></p>      type="hidden"--%>
+                            <input  type="hidden" name="peerfeedbackID" id="peerfeedbackID-input" value=""/>
+                                <div style="height: 100px; overflow: auto">
+                                <div class="feedback-container">
+                                    <p>Sender</p>
+                                    <span class="time-right">11:00</span>
+                                </div>
+                                </div>
 
-                        <iframe width="90%" height="200%" src="http://rocketchat.westeurope.cloudapp.azure.com/channel/general?layout=embedded"></iframe>
 
-                        <button class="btn btn-secondary" onclick="goBack()">Zurück</button>
+                        </td>
 
-                        <script>
-                            function goBack() {
-                                window.history.back();
-                            }
-                        </script>
 
+                        <td id="view-feedbacks">
+
+                            <div style="height: 300px; overflow: auto">
+
+                            <div class="feedback-container">
+                                <p>Hello. How are you today?</p>
+                                <span class="time-right">11:00</span>
+                            </div>
+
+                            <div class="feedback-container">
+                                <p>Hey! I'm fine. Thanks for asking!</p>
+                                <span class="time-left">11:01</span>
+                            </div>
+
+                            <div class="feedback-container">
+                                <p>Sweet! So, what do you wanna do today?</p>
+                                <span class="time-right">11:02</span>
+                            </div>
+
+                            <div id="div1"></div>
+
+                            </div>
+                        </td>
+
+
+                <button class="btn btn-secondary" onclick="goBack()">Zur&uuml;ck</button>
+
+                <script>
+                    function goBack() {
+                        window.history.back();
+                    }
+                </script>
 
                     </td>
 
+
+
                     <td  id="chat">
                         <div class="card">
                             <div class="card-header">
diff --git a/gemeinsamforschen/src/scripts/dbschema/fltrail.sql b/gemeinsamforschen/src/scripts/dbschema/fltrail.sql
index 2e37f5d4949ea62d0cf540294fb7d36886aa83cd..1e6c8d247aeaf038a61c50d910effc7168f1aa4a 100644
--- a/gemeinsamforschen/src/scripts/dbschema/fltrail.sql
+++ b/gemeinsamforschen/src/scripts/dbschema/fltrail.sql
@@ -1,274 +1,137 @@
-CREATE DATABASE IF NOT EXISTS `fltrail`
+SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
+SET AUTOCOMMIT = 0;
+START TRANSACTION;
+SET time_zone = "+00:00";
 
-  DEFAULT CHARACTER SET utf8
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8mb4 */;
 
-  COLLATE utf8_general_ci;
 
-USE `fltrail`;
-
-CREATE TABLE if not exists `projects` (
-
-  `id`            varchar(100) NOT NULL,
-
-  `password`      varchar(400) NOT NULL,
-
-  `active`        tinyint(1)   NOT NULL,
-
-  `timecreated`   timestamp    NOT NULL DEFAULT CURRENT_TIMESTAMP
-  ON UPDATE CURRENT_TIMESTAMP,
-
-  `author`        varchar(400) NOT NULL,
-
-  `adminPassword` varchar(400) NOT NULL,
-
-  `token`         varchar(400) NOT NULL,
-
-  `phase`         varchar(400) NOT NULL
-
-)
-
-  ENGINE = InnoDB
-
-  DEFAULT CHARSET = utf8;
-
-CREATE TABLE if not exists `groups` (
-
-  `id`         int          NOT NULL AUTO_INCREMENT,
-
-  `projectId`  varchar(400) NOT NULL,
-
-  `chatRoomId` varchar(400) NOT NULL,
-
-  PRIMARY KEY (id)
-
-)
-
-  ENGINE = InnoDB
-
-  DEFAULT CHARSET = utf8;
-
-CREATE TABLE if not exists groupuser
-
-(
-
-  userEmail varchar(400) NOT NULL,
-
-  groupId   int          NOT NULL
-
-)
-
-  ENGINE = InnoDB
-
-  DEFAULT CHARSET = utf8;
-
-CREATE TABLE if not exists `tags` (
-
-  `projectId` varchar(100) NOT NULL,
-
-  `tag`       varchar(400) NOT NULL
-
-)
-
-  ENGINE = InnoDB
-
-  DEFAULT CHARSET = utf8;
-
-CREATE TABLE if not exists `users` (
-
-  `name`                varchar(100) NOT NULL,
-
-  `password`            varchar(200) NOT NULL,
-
-  `email`               varchar(255) NOT NULL,
-
-  `token`               varchar(800) NOT NULL,
-
-  `rocketChatId`        varchar(400) NOT NULL,
-
-  `rocketChatAuthToken` varchar(800) NOT NULL,
-
-  UNIQUE (email)
-
-)
-
-  ENGINE = InnoDB
-
-  DEFAULT CHARSET = utf8;
-
-CREATE TABLE if not exists projectuser
-
-(
-
-  projectId varchar(100) NOT NULL,
-
-  userId    varchar(100) NOT NULL
-
-)
-
-  ENGINE = InnoDB
-
-  DEFAULT CHARSET = utf8;
-
-CREATE TABLE if not exists `annotations` (
+CREATE TABLE `annotations` (
   `id` varchar(120) NOT NULL,
   `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-  `userToken` varchar(120) DEFAULT NULL,
-  `targetId` varchar(120) DEFAULT NULL,
-  `targetCategory` VARCHAR(30) NOT NULL,
-  `title` varchar(120) DEFAULT NULL,
-  `comment` varchar(400) DEFAULT NULL,
+  `userId` int(11) DEFAULT NULL,
+  `targetId` int(11) DEFAULT NULL,
+  `body` varchar(280) DEFAULT NULL,
   `startCharacter` int(11) DEFAULT NULL,
-  `endCharacter` int(11) DEFAULT NULL,
-  PRIMARY KEY (`id`)
+  `endCharacter` int(11) DEFAULT NULL
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
-CREATE TABLE if not exists `fullsubmissions` (
-  `id` VARCHAR(120) NOT NULL,
-  `timestamp` TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `user` VARCHAR(120) NOT NULL,
-  `text` MEDIUMTEXT NOT NULL,
-  `projectId` VARCHAR(120) NOT NULL,
-  PRIMARY KEY (`id`)
-) ENGINE = InnoDB DEFAULT CHARSET=utf8;
-
-CREATE TABLE if not exists `submissionparts` (
-  `timestamp` TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `userId` VARCHAR(120) NOT NULL,
-  `fullSubmissionId` VARCHAR(120) NOT NULL,
-  `category` VARCHAR(30) NOT NULL,
-  PRIMARY KEY (`fullSubmissionId`, `category`)
-) ENGINE = InnoDB DEFAULT CHARSET=utf8;
-
-CREATE TABLE if not exists `submissionpartbodyelements` (
-  `fullSubmissionId` VARCHAR(120) NOT NULL,
-  `category` VARCHAR(30) NOT NULL,
-  `startCharacter` int(11) NOT NULL,
-  `endCharacter` int(11) NOT NULL,
-  PRIMARY KEY (`fullSubmissionId`, `category`, `startCharacter`, `endCharacter`)
-) ENGINE = InnoDB DEFAULT CHARSET=utf8;
-
-alter table users
-
-  add isStudent tinyint(1) default '1' null;
-
-CREATE TABLE if not exists quiz
-
-(
-
-  author    varchar(400) NOT NULL,
-
-  projectId varchar(400) NOT NULL,
-
-  question  varchar(400) NOT NULL,
-
-  mcType    varchar(400) NOT NULL,
-
-  answer    varchar(400) NOT NULL,
-
-  correct   tinyint(1)   NOT NULL
-
-)
-
-  ENGINE = InnoDB
-
-  DEFAULT CHARSET = utf8;
-CREATE TABLE if not exists grades
-
-(
-
-  projectId varchar(400) NOT NULL,
-
-  studentId varchar(400) NOT NULL,
-
-  grade double NOT NULL
-)
-
-  ENGINE = InnoDB
-
-  DEFAULT CHARSET = utf8;
-
-CREATE TABLE if not exists tasks
+CREATE TABLE `answeredquiz` (
+  `projectId` varchar(400) NOT NULL,
+  `studentId` varchar(400) NOT NULL,
+  `question` varchar(400) NOT NULL,
+  `correct` tinyint(4) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE `contributionrating` (
+  `groupId` int(11) NOT NULL,
+  `fromPeer` varchar(400) NOT NULL,
+  `dossier` int(11) NOT NULL,
+  `research` int(11) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE `grades` (
+  `projectId` varchar(400) NOT NULL,
+  `studentId` varchar(400) NOT NULL,
+  `grade` double NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE `groups` (
+  `id` int(11) NOT NULL,
+  `projectId` varchar(400) NOT NULL,
+  `chatRoomId` varchar(400) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
-(
+CREATE TABLE `groupuser` (
+  `studentId` varchar(400) NOT NULL,
+  `projectId` varchar(400) NOT NULL,
+  `groupId` int(11) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
-  userId    varchar(400) NOT NULL,
+CREATE TABLE `phasesselected` (
+  `projectId` varchar(100) NOT NULL,
+  `phaseSelected` varchar(200) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE `profilepicture` (
+  `studentId` varchar(200) NOT NULL,
+  `image` longblob NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE `projects` (
+  `id` varchar(400) NOT NULL,
+  `password` varchar(400) NOT NULL,
+  `active` tinyint(1) NOT NULL,
+  `timecreated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  `author` varchar(400) NOT NULL,
+  `adminPassword` varchar(400) NOT NULL,
+  `token` varchar(400) NOT NULL,
+  `phase` varchar(400) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
-  projectId varchar(400) NOT NULL,
+CREATE TABLE `projectuser` (
+  `projectId` varchar(400) NOT NULL,
+  `userId` varchar(400) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
-  taskUrl   varchar(400) NOT NULL
-)
+CREATE TABLE `quiz` (
+  `studentId` varchar(400) NOT NULL,
+  `projectId` varchar(400) NOT NULL,
+  `question` varchar(400) NOT NULL,
+  `mcType` varchar(400) NOT NULL,
+  `answer` varchar(400) NOT NULL,
+  `correct` tinyint(1) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
-  ENGINE = InnoDB
+CREATE TABLE `tags` (
+  `projectId` varchar(400) NOT NULL,
+  `tag` varchar(400) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
-  DEFAULT CHARSET = utf8;
+CREATE TABLE `tasks` (
+  `userId` varchar(400) NOT NULL,
+  `projectId` varchar(400) NOT NULL,
+  `taskUrl` varchar(400) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
+CREATE TABLE `users` (
+  `name` varchar(400) NOT NULL,
+  `password` varchar(200) NOT NULL,
+  `email` varchar(255) NOT NULL,
+  `token` varchar(800) NOT NULL,
+  `rocketChatId` varchar(400) NOT NULL,
+  `rocketChatAuthToken` varchar(800) NOT NULL,
+  `isStudent` tinyint(1) DEFAULT '1'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
-CREATE TABLE if not exists phasesSelected (
- `projectId`    varchar(100) NOT NULL,
-  phaseSelected varchar(200) NOT NULL
-)
-  ENGINE = InnoDB
-  DEFAULT CHARSET = utf8;
+CREATE TABLE `workrating` (
+  `projectId` varchar(400) NOT NULL,
+  `studentId` varchar(400) NOT NULL,
+  `fromPeer` varchar(400) NOT NULL,
+  `responsibility` int(11) NOT NULL,
+  `partOfWork` int(11) NOT NULL,
+  `cooperation` int(11) NOT NULL,
+  `communication` int(11) NOT NULL,
+  `autonomous` int(11) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
-CREATE TABLE if not exists categoriesSelected (
-  `projectId`    varchar(100) NOT NULL,
-   categorySelected varchar(200) NOT NULL
-)
-  ENGINE = InnoDB
-  DEFAULT CHARSET = utf8;
 
-CREATE TABLE if not exists groupfindingMechanismSelected (
-  `projectId`    varchar(100) NOT NULL,
-   gfmSelected   varchar(200) NOT NULL
-)
-  ENGINE = InnoDB
-  DEFAULT CHARSET = utf8;
+ALTER TABLE `annotations`
+  ADD PRIMARY KEY (`id`);
 
-CREATE TABLE if not exists assessmentMechanismSelected (
-  `projectId`    varchar(100) NOT NULL,
-   amSelected    varchar(200) NOT NULL
-)
-  ENGINE = InnoDB
-  DEFAULT CHARSET = utf8;
+ALTER TABLE `groups`
+  ADD PRIMARY KEY (`id`);
 
 ALTER TABLE `projectuser`
-  ADD INDEX (`projectId`, `userId`);
-ALTER TABLE `projectuser`
-  ADD UNIQUE (`projectId`, `userId`);
-ALTER TABLE `projects`
-  ADD UNIQUE (`id`);
-
-CREATE TABLE if not exists answeredquiz (
-  `projectId`    varchar(400) NOT NULL,
-  `studentId`   varchar(400) NOT NULL,
-  `question`   varchar(400) NOT NULL,
-  `correct`   tinyint(4) NOT NULL
-
-)
-  ENGINE = InnoDB
-  DEFAULT CHARSET = utf8;
+  ADD KEY `projectId` (`projectId`(255),`userId`(255));
 
-CREATE TABLE if not exists workrating (
-  `projectId`    varchar(400) NOT NULL,
-  `studentId`   varchar(400) NOT NULL,
-  `fromPeer`   varchar(400) NOT NULL,
-  `responsibility`   int(11) NOT NULL,
-  `partOfWork`   int(11) NOT NULL,
-  `cooperation`   int(11) NOT NULL,
-  `communication`   int(11) NOT NULL,
-  `autonomous`   int(11) NOT NULL
+ALTER TABLE `users`
+  ADD UNIQUE KEY `email` (`email`);
 
-)
-  ENGINE = InnoDB
-  DEFAULT CHARSET = utf8;
 
-CREATE TABLE if not exists contributionrating (
-  `projectId`    varchar(400) NOT NULL,
-  `studentId`   varchar(400) NOT NULL,
-  `fromPeer`   varchar(400) NOT NULL,
-  `dossier`   int(11) NOT NULL,
-  `eJournal`   int(11) NOT NULL,
-  `research`   int(11) NOT NULL
-)
-  ENGINE = InnoDB
-  DEFAULT CHARSET = utf8;
\ No newline at end of file
+ALTER TABLE `groups`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
+COMMIT;
\ No newline at end of file
diff --git a/gemeinsamforschen/src/scripts/dbschema/peerfeedback b/gemeinsamforschen/src/scripts/dbschema/peerfeedback
new file mode 100644
index 0000000000000000000000000000000000000000..8e7c7de6b40df09f1a13f31c294daed1cfc58d2f
--- /dev/null
+++ b/gemeinsamforschen/src/scripts/dbschema/peerfeedback
@@ -0,0 +1,16 @@
+USE `fltrail`;
+
+CREATE TABLE if not exists `peerfeedback` (
+  `id`         varchar(130) NOT NULL,
+  `timestamp`  timestamp    NOT NULL DEFAULT CURRENT_TIMESTAMP
+  ON UPDATE CURRENT_TIMESTAMP,
+  `reciever`   varchar(400) NOT NULL,
+  `sender`     varchar(400) NOT NULL,
+  `text`       varchar(1000) NOT NULL,
+  `category`   varchar(400) NOT NULL,
+  `filename`   varchar(400) NOT NULL,
+  PRIMARY KEY( id )
+
+)
+  ENGINE = InnoDB
+  DEFAULT CHARSET = utf8;
\ No newline at end of file
diff --git a/gemeinsamforschen/src/scripts/dbschema/researchReport.sql b/gemeinsamforschen/src/scripts/dbschema/researchReport.sql
new file mode 100644
index 0000000000000000000000000000000000000000..c610c1f22db85fcc24784e23048c08376774898b
--- /dev/null
+++ b/gemeinsamforschen/src/scripts/dbschema/researchReport.sql
@@ -0,0 +1,17 @@
+CREATE TABLE `researchReport` (
+  `reportID` varchar(400) NOT NULL,
+  `author` varchar(100) NOT NULL,
+  `title` varchar(400) NOT NULL,
+  `method` text NOT NULL,
+  `research` text NOT NULL,
+  `question` text NOT NULL,
+  `concept` text NOT NULL,
+  `do` text NOT NULL,
+  `evaluation` text NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+
+CREATE TABLE `biblography` (
+  `reportID` varchar(400) NOT NULL,
+  `source` varchar(400) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ActivityFlowTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ActivityFlowTest.java
index 1bd1d7a2e0f059759079914b2ab766f590df6bef..2022098901c1d33133d46ffa6ebe1268e8b960d9 100644
--- a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ActivityFlowTest.java
+++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ActivityFlowTest.java
@@ -6,10 +6,7 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.Mock;
 import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
-import org.mockito.Spy;
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoJUnitRunner;
 import org.mockito.junit.MockitoRule;
@@ -17,18 +14,15 @@ import uk.co.jemos.podam.api.PodamFactory;
 import uk.co.jemos.podam.api.PodamFactoryImpl;
 import unipotsdam.gf.config.GFApplicationBinder;
 import unipotsdam.gf.core.management.Management;
-import unipotsdam.gf.core.management.group.Group;
 import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.core.management.project.ProjectConfiguration;
 import unipotsdam.gf.core.management.user.User;
 import unipotsdam.gf.core.states.ProjectPhase;
-import unipotsdam.gf.modules.assessment.QuizAnswer;
-import unipotsdam.gf.modules.assessment.controller.model.StudentAndQuiz;
 import unipotsdam.gf.modules.groupfinding.GroupFormationMechanism;
 import unipotsdam.gf.modules.groupfinding.GroupfindingCriteria;
 import unipotsdam.gf.modules.journal.model.Journal;
 import unipotsdam.gf.modules.peer2peerfeedback.Category;
-import unipotsdam.gf.modules.peer2peerfeedback.Peer2PeerFeedback;
+import unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Model.Peer2PeerFeedback;
 import unipotsdam.gf.modules.researchreport.ResearchReport;
 import unipotsdam.gf.modules.researchreport.ResearchReportManagement;
 import javax.inject.Inject;
@@ -39,7 +33,6 @@ import java.util.Iterator;
 
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
 
diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java
index 9426d94804ed8b6f42600286e659fae1276d045a..cb7e6b830ee9af24b2b7f60c99e7a1bb45fc0cf2 100644
--- a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java
+++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java
@@ -2,13 +2,71 @@ package unipotsdam.gf.modules.assessment;
 
 import org.junit.Test;
 import unipotsdam.gf.interfaces.IPeerAssessment;
-import unipotsdam.gf.modules.assessment.controller.model.Assessment;
+import unipotsdam.gf.modules.assessment.controller.model.*;
 import unipotsdam.gf.modules.assessment.controller.service.FBAssessement;
-import unipotsdam.gf.modules.assessment.controller.model.Performance;
-import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
+import unipotsdam.gf.modules.assessment.controller.service.PeerAssessment;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 public class TestAddAssessment {
 
+    private IPeerAssessment peer = new PeerAssessment();
+    private String studentId = "Kevin";
+    private String projectId = "test a la test";
+    private String quizId = "Whats a good Test?";
+
+    @Test
+    public void createQuiz(){
+        StudentAndQuiz studentAndQuiz = new StudentAndQuiz();
+        StudentIdentifier student = new StudentIdentifier(projectId, studentId);
+        studentAndQuiz.setStudentIdentifier(student);
+        Quiz quiz = new Quiz();
+        ArrayList<String> correctAnswers = new ArrayList<>();
+        correctAnswers.add("1");
+        correctAnswers.add("2");
+        correctAnswers.add("3");
+        ArrayList<String> incorrectAnswers = new ArrayList<>();
+        incorrectAnswers.add("4");
+        incorrectAnswers.add("5");
+        incorrectAnswers.add("6");
+        quiz.setQuestion(quizId);
+        quiz.setIncorrectAnswers(incorrectAnswers);
+        quiz.setType("mc");
+        quiz.setCorrectAnswers(correctAnswers);
+        studentAndQuiz.setQuiz(quiz);
+        peer.createQuiz(studentAndQuiz);
+    }
+
+    @Test
+    public void getAllQuizzesInProject(){
+        peer.getQuiz(projectId);
+    }
+
+    @Test
+    public void getQuiz(){
+        peer.getQuiz(projectId, quizId, studentId);
+    }
+
+    @Test
+    public void answerQuiz(){
+        Map<String, List<String>> questions = new HashMap<>();
+        StudentIdentifier student = new StudentIdentifier(projectId, studentId);
+        List<String> answers = new ArrayList<>();
+        answers.add("1");
+        answers.add("2");
+        answers.add("3");
+        questions.put(quizId, answers);
+        peer.answerQuiz(questions, student);
+    }
+
+    @Test
+    public void deleteQuiz(){
+        peer.deleteQuiz(quizId);
+    }
+
     @Test
     public void addTestAssessment() {
         IPeerAssessment iPeerAssessment = new FBAssessement();
diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImplTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImplTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..008ec65f6695807383dfcf4290acc293ef65e41a
--- /dev/null
+++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImplTest.java
@@ -0,0 +1,317 @@
+package unipotsdam.gf.modules.journal.model.dao;
+
+import org.junit.Test;
+import unipotsdam.gf.core.database.mysql.MysqlConnect;
+import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
+import unipotsdam.gf.core.management.project.Project;
+import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
+import unipotsdam.gf.modules.journal.model.Journal;
+import unipotsdam.gf.modules.journal.model.JournalFilter;
+import unipotsdam.gf.modules.journal.model.Visibility;
+import unipotsdam.gf.modules.journal.util.JournalUtils;
+import unipotsdam.gf.modules.peer2peerfeedback.Category;
+
+import java.util.ArrayList;
+
+import static org.junit.Assert.*;
+
+public class JournalDAOImplTest {
+
+    private final JournalDAO journalDAO = new JournalDAOImpl();
+    private final MysqlConnect connection = new MysqlConnect();
+    private final String testId = "-1";
+    private final String testStudent = "testStudent";
+    private final String testProject = "testProject";
+    private final String testEntry = "This is a Test";
+    private final Visibility testVisibility = Visibility.ALL;
+    private final Category testCategory = Category.TITEL;
+    private final Journal testJournal = new Journal(testId, new StudentIdentifier(testProject, testStudent), testEntry, testVisibility, testCategory);
+
+    @Test
+    public void createJournal() {
+
+        // Create Journal
+        Journal createJournal = testJournal;
+        journalDAO.createJournal(createJournal);
+
+        connection.connect();
+
+        // Get that Journal
+        ArrayList<Journal> resultJournals = getJournals();
+
+        //Only one Journal should exist
+        assertEquals(1, resultJournals.size());
+
+        Journal resultJournal = resultJournals.get(0);
+
+        //check if data correct
+        assertEquals(resultJournal.getStudentIdentifier().getStudentId(), testStudent);
+        assertEquals(resultJournal.getStudentIdentifier().getProjectId(), testProject);
+        assertEquals(resultJournal.getEntryMD(), testEntry);
+
+        //Journal should get real id while create
+        assertFalse(resultJournal.getId().equals(testId));
+
+        assertEquals(resultJournal.getVisibility(), testVisibility);
+        assertEquals(resultJournal.getCategory(), testCategory);
+
+        //cleanup
+        cleanup(resultJournal.getId());
+
+        connection.close();
+    }
+
+    @Test
+    public void updateJournal() {
+
+        Journal updateJournal = testJournal;
+        //createJournal
+
+        connection.connect();
+
+        // build and execute request
+        create(updateJournal);
+
+        //change Data
+        Visibility newVisibility = Visibility.MINE;
+        Category newCategory = Category.DURCHFUEHRUNG;
+        String newEntry = "Still a test";
+
+        updateJournal.setVisibility(newVisibility);
+        updateJournal.setCategory(newCategory);
+        updateJournal.setEntry(newEntry);
+
+        //update that Journal
+        journalDAO.updateJournal(updateJournal);
+
+        //check if update successful
+        ArrayList<Journal> resultJournals = getJournals();
+
+        //Only one Journal should exist
+        assertEquals(1, resultJournals.size());
+
+        Journal resultJournal = resultJournals.get(0);
+
+        //check if data correct
+        assertEquals(resultJournal.getStudentIdentifier().getStudentId(), testStudent);
+        assertEquals(resultJournal.getStudentIdentifier().getProjectId(), testProject);
+        assertEquals(resultJournal.getEntryMD(), newEntry);
+        assertEquals(resultJournal.getId(), testId);
+        assertEquals(resultJournal.getVisibility(), newVisibility);
+        assertEquals(resultJournal.getCategory(), newCategory);
+
+        //cleanup
+        cleanup(updateJournal.getId());
+        connection.close();
+
+    }
+
+    @Test
+    public void deleteJournal() {
+        Journal deleteJournal = testJournal;
+
+        //createJournal
+        connection.connect();
+
+        // build and execute request
+        create(deleteJournal);
+
+        //check if Journal was added
+        ArrayList<Journal> resultJournals = getJournals();
+
+        assertEquals(1, resultJournals.size());
+
+        Journal resultJournal = resultJournals.get(0);
+
+
+        //delete Journal
+        journalDAO.deleteJournal(resultJournal.getId());
+
+        //check if deleted
+        resultJournals = getJournals();
+
+        assertEquals(0, resultJournals.size());
+
+        connection.close();
+    }
+
+    @Test
+    public void getJournal() {
+
+        //create Journal
+        Journal getJournal = testJournal;
+        //createJournal
+
+        connection.connect();
+
+        // build and execute request
+        create(getJournal);
+
+        //get that Journal
+        Journal resultJournal = journalDAO.getJournal(testId);
+
+        //check data
+        assertEquals(resultJournal.getStudentIdentifier().getStudentId(), testStudent);
+        assertEquals(resultJournal.getStudentIdentifier().getProjectId(), testProject);
+        assertEquals(resultJournal.getEntryMD(), testEntry);
+        assertEquals(resultJournal.getId(), testId);
+        assertEquals(resultJournal.getVisibility(), testVisibility);
+        assertEquals(resultJournal.getCategory(), testCategory);
+
+        //cleanup
+        cleanup(resultJournal.getId());
+
+        connection.close();
+
+    }
+
+    @Test
+    public void getAllByProject() {
+        connection.connect();
+
+        //add Some Journals
+        Journal j1 = testJournal;
+        create(j1);
+        j1.setId("-2");
+        create(j1);
+        j1.setId("-3");
+        j1.getStudentIdentifier().setProjectId("otherProject");
+        create(j1);
+
+        //get for project
+        ArrayList<Journal> resultJournals = journalDAO.getAllByProject(testProject, testStudent);
+
+        //should be 2 Journals
+        assertEquals(2, resultJournals.size());
+
+        //should be j1 and j2
+        for (Journal j : resultJournals) {
+            assertTrue(j.getId().equals("-1") || j.getId().equals("-2"));
+        }
+
+        //cleanup
+        cleanup("-1", "-2", "-3");
+    }
+
+    @Test
+    public void getAllByProjectAndFilter() {
+
+        connection.connect();
+
+        //Create some journals
+        Journal j1 = testJournal;
+        create(j1);
+        j1.getStudentIdentifier().setStudentId("otherStudent");
+        j1.setId("-2");
+        create(j1);
+        j1.setId("-3");
+        j1.setVisibility(Visibility.MINE);
+        create(j1);
+
+        //all should return 2 Journals
+        assertEquals(2, journalDAO.getAllByProjectAndFilter(testProject, testStudent, JournalFilter.ALL).size());
+
+        //Own should return 1 Journal
+        assertEquals(1, journalDAO.getAllByProjectAndFilter(testProject, testStudent, JournalFilter.OWN).size());
+
+        //Cleanup
+        cleanup("-1", "-2", "-3");
+        connection.close();
+    }
+
+    @Test
+    public void closeJournal() {
+        connection.connect();
+
+        //create Journal
+        Journal closeJournal = testJournal;
+        create(closeJournal);
+
+        Journal resultJournal = getJournals().get(0);
+
+        //check if open
+        assertTrue(resultJournal.isOpen());
+
+        //close Journal
+        journalDAO.closeJournal(resultJournal.getId());
+
+        //check if closed
+        resultJournal = getJournals().get(0);
+        assertFalse(resultJournal.isOpen());
+
+        //cleanup
+        cleanup(resultJournal.getId());
+    }
+
+    @Test
+    public void getOpenJournals() {
+        connection.connect();
+
+        Project openProject = new Project();
+        openProject.setId(testProject);
+
+        //create some Journals
+        Journal j1 = testJournal;
+        create(j1);
+        j1.setOpen(false);
+        j1.setId("-2");
+        create(j1);
+        j1.setId("-3");
+        j1.getStudentIdentifier().setProjectId("otherProject");
+        create(j1);
+
+        //getOpenJournals
+        ArrayList<String> resultJournals = journalDAO.getOpenJournals(openProject);
+
+        //should be 1 Journal
+        assertEquals(1, resultJournals.size());
+
+        //should be journal -1
+        assertEquals(testStudent, resultJournals.get(0));
+
+        cleanup("-1", "-2", "-3");
+        connection.close();
+    }
+
+
+    //utility
+
+    private ArrayList<Journal> getJournals() {
+        String request = "SELECT * FROM journals WHERE project= ?;";
+        VereinfachtesResultSet rs = connection.issueSelectStatement(request, testProject);
+
+        ArrayList<Journal> resultJournals = new ArrayList<>();
+        while (rs.next()) {
+            resultJournals.add(getJournalFromResultSet(rs));
+        }
+        return resultJournals;
+    }
+
+    private void create(Journal getJournal) {
+        String createRequest = "INSERT INTO journals (`id`, `author`, `project`, `text`, `visibility`,`category`, `open` ) VALUES (?,?,?,?,?,?,?);";
+        connection.issueInsertOrDeleteStatement(createRequest, getJournal.getId(), getJournal.getStudentIdentifier().getStudentId(),
+                getJournal.getStudentIdentifier().getProjectId(), getJournal.getEntryMD(), getJournal.getVisibility(), getJournal.getCategory(), getJournal.isOpen());
+    }
+
+    private void cleanup(String... ids) {
+        for (String id : ids) {
+            String deleteRequest = "DELETE FROM journals WHERE id = ?;";
+            connection.issueInsertOrDeleteStatement(deleteRequest, id);
+        }
+    }
+
+    private Journal getJournalFromResultSet(VereinfachtesResultSet rs) {
+
+        String id = rs.getString("id");
+        long timestamp = rs.getTimestamp(2).getTime();
+        String student = rs.getString("author");
+        String project = rs.getString("project");
+        String text = rs.getString("text");
+        String visibility = rs.getString("visibility");
+        String category = rs.getString("category");
+        boolean open = rs.getBoolean("open");
+
+        return new Journal(id, new StudentIdentifier(project, student), text, timestamp, JournalUtils.stringToVisibility(visibility), JournalUtils.stringToCategory(category), open);
+
+    }
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImplTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImplTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..82b1b95d2e5711e2df937329a858027e26e3e982
--- /dev/null
+++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImplTest.java
@@ -0,0 +1,166 @@
+package unipotsdam.gf.modules.journal.model.dao;
+
+import org.junit.Test;
+import unipotsdam.gf.core.database.mysql.MysqlConnect;
+import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
+import unipotsdam.gf.modules.journal.model.Link;
+
+import java.util.ArrayList;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+public class LinkDAOImplTest {
+
+    MysqlConnect connection = new MysqlConnect();
+    LinkDAO linkDAO = new LinkDAOImpl();
+
+    String testId = "-1";
+    String testProjectDescription = "testproject";
+    String testName = "testname";
+    String testLink = "https://www.test.de";
+    Link testLinkObj = new Link(testId, testProjectDescription, testName, testLink);
+
+    @Test
+    public void addLink() {
+
+        connection.connect();
+
+        //add Link
+        Link addLink = testLinkObj;
+
+        linkDAO.addLink(addLink);
+
+        //check if added
+        ArrayList<Link> resultLinks = getLinks(addLink.getProjectDescription());
+
+        assertEquals(1, resultLinks.size());
+
+        //check data
+        Link resultLink = resultLinks.get(0);
+
+        assertEquals(testLink, resultLink.getLink());
+        assertEquals(testName, resultLink.getName());
+        assertEquals(testProjectDescription, resultLink.getProjectDescription());
+
+        assertFalse(testId.equals(resultLink.getId()));
+
+        //cleanup
+        cleanup(resultLink.getId());
+
+        connection.close();
+    }
+
+    @Test
+    public void deleteLink() {
+        connection.connect();
+
+        //add Link
+        Link deleteLink = testLinkObj;
+
+        create(deleteLink);
+
+
+        //check if Link was created
+        ArrayList<Link> reultLinks = getLinks(deleteLink.getProjectDescription());
+        assertEquals(1, reultLinks.size());
+
+        //delete link
+        linkDAO.deleteLink(deleteLink.getId());
+
+        //check if Link deleted
+        reultLinks = getLinks(deleteLink.getProjectDescription());
+        assertEquals(0, reultLinks.size());
+
+        //cleanup
+        cleanup(deleteLink.getId());
+
+        connection.close();
+    }
+
+    @Test
+    public void getLink() {
+        connection.connect();
+
+        //addLink
+        Link getLink = testLinkObj;
+        create(getLink);
+
+        //get Link
+        Link resultLink = linkDAO.getLink(getLink.getId());
+
+        //check Data
+        assertEquals(testLink, resultLink.getLink());
+        assertEquals(testName, resultLink.getName());
+        assertEquals(testProjectDescription, resultLink.getProjectDescription());
+
+        //cleanup
+        cleanup(getLink.getId());
+
+        connection.close();
+
+    }
+
+    @Test
+    public void getAllLinks() {
+        connection.connect();
+
+        //addLinks
+        Link l = testLinkObj;
+        create(l);
+        l.setId("-2");
+        l.setName("othername");
+        create(l);
+        l.setId("-3");
+        l.setLink("404");
+        create(l);
+
+        //gettLinks
+        ArrayList<Link> resultLinks = getLinks(testProjectDescription);
+
+        //check
+        assertEquals(3, resultLinks.size());
+
+        //cleanup
+        cleanup("-1", "-2", "-3");
+
+        connection.close();
+    }
+
+    //Utility
+    private void create(Link deleteLink) {
+        String request = "INSERT INTO links (`id`, `projecdesription`, `name`, `link`) VALUES (?,?,?,?);";
+        connection.issueInsertOrDeleteStatement(request, deleteLink.getId(), deleteLink.getProjectDescription(), deleteLink.getName(), deleteLink.getLink());
+    }
+
+    private void cleanup(String... addLinks) {
+
+        for (String addLink : addLinks) {
+
+            String request = "DELETE FROM links WHERE id = ?;";
+            connection.issueInsertOrDeleteStatement(request, addLink);
+        }
+    }
+
+    private Link getLinkFromResultSet(VereinfachtesResultSet rs) {
+
+        String id = rs.getString("id");
+        String project = rs.getString("projecdesription");
+        String name = rs.getString("name");
+        String link = rs.getString("link");
+        return new Link(id, project, name, link);
+    }
+
+    private ArrayList<Link> getLinks(String addLink) {
+        ArrayList<Link> resultLinks = new ArrayList<>();
+
+        String request = "SELECT * FROM links WHERE projecdesription= ?;";
+        VereinfachtesResultSet rs = connection.issueSelectStatement(request, addLink);
+
+        while (rs.next()) {
+            resultLinks.add(getLinkFromResultSet(rs));
+        }
+
+        return resultLinks;
+    }
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionImplDAOTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionImplDAOTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..c63a1b8d70c2fd9251cab2852516f55a11966741
--- /dev/null
+++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionImplDAOTest.java
@@ -0,0 +1,225 @@
+package unipotsdam.gf.modules.journal.model.dao;
+
+import org.junit.Test;
+import unipotsdam.gf.core.database.mysql.MysqlConnect;
+import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
+import unipotsdam.gf.core.management.project.Project;
+import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
+import unipotsdam.gf.modules.journal.model.ProjectDescription;
+
+import java.util.ArrayList;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class ProjectDescriptionImplDAOTest {
+
+    private final ProjectDescriptionDAO descriptionDAO = new ProjectDescriptionDAOImpl();
+    private final MysqlConnect connection = new MysqlConnect();
+
+    private String testId = "-1";
+    private String testStudent = "testStudent";
+    private String testDescription = "testDescription";
+    private String testProjekt = "testProjekt";
+
+    private ProjectDescription testProjectDescription = new ProjectDescription(testId, testStudent, testDescription, testProjekt, null /*Links are added in Service*/);
+
+    @Test
+    public void createDescription() {
+
+        connection.connect();
+
+        descriptionDAO.createDescription(testProjectDescription);
+
+        ArrayList<ProjectDescription> resultProjectDescriptions = getProjectDescription();
+
+        //should be 1
+        assertEquals(1, resultProjectDescriptions.size());
+
+        ProjectDescription result = resultProjectDescriptions.get(0);
+
+        //check data
+        assertFalse(testId.equals(result.getId()));
+        assertEquals(testDescription, result.getDescriptionMD());
+        assertEquals(testStudent, result.getStudent().getStudentId());
+        assertEquals(testProjekt, result.getStudent().getProjectId());
+
+        cleanup(result.getId());
+        connection.close();
+    }
+
+    @Test
+    public void updateDescription() {
+
+        connection.connect();
+
+        ProjectDescription updateDescription = testProjectDescription;
+
+        create(updateDescription);
+
+        updateDescription.setDescription(testDescription + testDescription);
+
+        descriptionDAO.updateDescription(updateDescription);
+
+        ArrayList<ProjectDescription> resultProjectDescriptions = getProjectDescription();
+
+        //should be 1
+        assertEquals(1, resultProjectDescriptions.size());
+
+        ProjectDescription result = resultProjectDescriptions.get(0);
+
+        //check data
+        assertEquals(testId, result.getId());
+        assertEquals(testDescription + testDescription, result.getDescriptionMD());
+
+        cleanup(testId);
+        connection.close();
+
+    }
+
+    @Test
+    public void getDescriptionSI() {
+        connection.connect();
+
+        ProjectDescription getDescription = testProjectDescription;
+
+        create(getDescription);
+
+        ProjectDescription result = descriptionDAO.getDescription(new StudentIdentifier(testProjekt, testStudent));
+
+        assertEquals(testId, result.getId());
+        assertEquals(testDescription, result.getDescriptionMD());
+        assertEquals(testStudent, result.getStudent().getStudentId());
+        assertEquals(testProjekt, result.getStudent().getProjectId());
+
+        cleanup(result.getId());
+        connection.close();
+    }
+
+    @Test
+    public void getDescriptionID() {
+        connection.connect();
+
+        ProjectDescription getDescription = testProjectDescription;
+
+        create(getDescription);
+
+        ProjectDescription result = descriptionDAO.getDescription(testId);
+
+        assertEquals(testId, result.getId());
+        assertEquals(testDescription, result.getDescriptionMD());
+        assertEquals(testStudent, result.getStudent().getStudentId());
+        assertEquals(testProjekt, result.getStudent().getProjectId());
+
+        cleanup(result.getId());
+        connection.close();
+    }
+
+    @Test
+    public void deleteDescription() {
+        connection.connect();
+
+        ProjectDescription deleteDescription = testProjectDescription;
+
+        create(deleteDescription);
+
+        ArrayList<ProjectDescription> resultDescriptions = getProjectDescription();
+
+        //should be 1
+        assertEquals(1, resultDescriptions.size());
+
+        descriptionDAO.deleteDescription(new StudentIdentifier(testProjekt, testStudent));
+
+        resultDescriptions = getProjectDescription();
+
+        //should be 0
+        assertEquals(0, resultDescriptions.size());
+
+        connection.close();
+    }
+
+    @Test
+    public void closeDescription() {
+        connection.connect();
+
+        ProjectDescription closeDescription = testProjectDescription;
+
+        create(closeDescription);
+
+        ArrayList<ProjectDescription> resultDescriptions = getProjectDescription();
+
+        //should be 1
+        assertEquals(1, resultDescriptions.size());
+        assertTrue(resultDescriptions.get(0).isOpen());
+
+        descriptionDAO.closeDescription(testId);
+
+        resultDescriptions = getProjectDescription();
+
+        //should be 1
+        assertEquals(1, resultDescriptions.size());
+        assertFalse(resultDescriptions.get(0).isOpen());
+
+        connection.close();
+    }
+
+    @Test
+    public void getOpenDescriptions() {
+        connection.connect();
+
+        ProjectDescription openDescription = testProjectDescription;
+        create(openDescription);
+        openDescription.setId("-2");
+        create(openDescription);
+        openDescription.setId("-3");
+        openDescription.setOpen(false);
+        create(openDescription);
+
+        Project project = new Project();
+        project.setId(testProjekt);
+
+        ArrayList<String> resultDescriptions = descriptionDAO.getOpenDescriptions(project);
+        assertEquals(2, resultDescriptions.size());
+
+        cleanup("-1","-2","-3");
+        connection.close();
+    }
+
+
+    //Utility
+    private ArrayList<ProjectDescription> getProjectDescription() {
+        String request = "SELECT * FROM projectdescription WHERE project=?;";
+        VereinfachtesResultSet rs = connection.issueSelectStatement(request, testProjekt);
+
+        ArrayList<ProjectDescription> resultDescriptions = new ArrayList<>();
+        while (rs.next()) {
+            resultDescriptions.add(getDescriptionFromResultSet(rs));
+        }
+        return resultDescriptions;
+    }
+
+    private void create(ProjectDescription projectDescription) {
+        String request = "INSERT INTO projectdescription(`id`, `author`, `project`, `text`, `open`) VALUES (?,?,?,?,?);";
+        connection.issueInsertOrDeleteStatement(request, projectDescription.getId(), projectDescription.getStudent().getStudentId(), projectDescription.getStudent().getProjectId(), projectDescription.getDescriptionMD(), projectDescription.isOpen());
+    }
+
+    private void cleanup(String... ids) {
+        for (String id : ids) {
+            String request = "DELETE FROM projectdescription WHERE id = ? ;";
+            connection.issueInsertOrDeleteStatement(request, id);
+        }
+    }
+
+    private ProjectDescription getDescriptionFromResultSet(VereinfachtesResultSet rs) {
+        String id = rs.getString("id");
+        long timestamp = rs.getTimestamp(2).getTime();
+        String author = rs.getString("author");
+        String project = rs.getString("project");
+        String text = rs.getString("text");
+        boolean open = rs.getBoolean("open");
+
+        return new ProjectDescription(id, author, text, project, new ArrayList<>(), timestamp, open);
+    }
+
+}
diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/service/JournalServiceImplTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/service/JournalServiceImplTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..05ce97fb48f7880edf0b40c40b79be515661bc81
--- /dev/null
+++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/service/JournalServiceImplTest.java
@@ -0,0 +1,212 @@
+package unipotsdam.gf.modules.journal.service;
+
+import org.junit.After;
+import org.junit.Test;
+import unipotsdam.gf.core.management.Management;
+import unipotsdam.gf.core.management.ManagementImpl;
+import unipotsdam.gf.core.management.project.Project;
+import unipotsdam.gf.core.management.user.User;
+import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
+import unipotsdam.gf.modules.journal.model.Journal;
+import unipotsdam.gf.modules.journal.model.Visibility;
+import unipotsdam.gf.modules.journal.model.dao.JournalDAO;
+import unipotsdam.gf.modules.journal.model.dao.JournalDAOImpl;
+import unipotsdam.gf.modules.peer2peerfeedback.Category;
+
+import java.util.ArrayList;
+
+import static org.junit.Assert.*;
+
+public class JournalServiceImplTest {
+
+    private final String testId = "-1";
+    private final String testStudent = "testStudent";
+    private final String testProject = "testProject";
+    private final String testEntry = "This is a Test";
+    private final Visibility testVisibility = Visibility.ALL;
+    private final Category testCategory = Category.TITEL;
+    private final Journal testJournal = new Journal(testId, new StudentIdentifier(testProject, testStudent), testEntry, testVisibility, testCategory);
+    private JournalService journalService = new JournalServiceImpl();
+    private JournalDAO journalDAO = new JournalDAOImpl();
+    private Management management = new ManagementImpl();
+
+    @After
+    public void cleanUp() {
+
+        ArrayList<Journal> deleteJournals = journalDAO.getAllByProject(testProject, testStudent);
+
+        for (Journal j : deleteJournals) {
+            journalDAO.deleteJournal(j.getId());
+        }
+    }
+
+    @Test
+    public void getJournal() {
+
+        journalDAO.createJournal(testJournal);
+
+        //get id of added Journal
+        String journalID = journalDAO.getAllByProject(testProject, testStudent).get(0).getId();
+
+        Journal resultJournal = journalService.getJournal(journalID);
+
+        assertNotNull(resultJournal);
+
+        assertEquals(resultJournal.getStudentIdentifier().getStudentId(), testStudent);
+        assertEquals(resultJournal.getStudentIdentifier().getProjectId(), testProject);
+        assertEquals(resultJournal.getEntryMD(), testEntry);
+        assertEquals(resultJournal.getId(), journalID);
+        assertEquals(resultJournal.getVisibility(), testVisibility);
+        assertEquals(resultJournal.getCategory(), testCategory);
+
+    }
+
+    @Test
+    public void getAllJournalsSi() {
+
+        journalDAO.createJournal(testJournal);
+        journalDAO.createJournal(testJournal);
+        journalDAO.createJournal(testJournal);
+        testJournal.setStudentIdentifier(new StudentIdentifier("a", "b"));
+        journalDAO.createJournal(testJournal);
+
+        ArrayList<Journal> resultJurnals = journalService.getAllJournals(testStudent, testProject);
+
+        assertEquals(3, resultJurnals.size());
+
+        //Delete extra Journal
+        String jId = journalDAO.getAllByProject("a", "b").get(0).getId();
+        journalDAO.deleteJournal(jId);
+    }
+
+    @Test
+    public void getAllJournalsFilter() {
+        journalDAO.createJournal(testJournal);
+        testJournal.setVisibility(Visibility.MINE);
+        journalDAO.createJournal(testJournal);
+        testJournal.setVisibility(Visibility.GROUP);
+        journalDAO.createJournal(testJournal);
+        testJournal.setStudentIdentifier(new StudentIdentifier(testProject, "b"));
+        testJournal.setVisibility(Visibility.ALL);
+        journalDAO.createJournal(testJournal);
+
+        ArrayList<Journal> resultJournals = journalService.getAllJournals("b", testProject);
+
+        assertEquals(3, resultJournals.size());
+
+        //Delete extra Journal
+        String jId = journalDAO.getAllByProject(testProject, "b").get(0).getId();
+        journalDAO.deleteJournal(jId);
+
+    }
+
+    @Test
+    public void saveJournal() {
+        //Create new
+
+        journalService.saveJournal("0",testStudent,testProject,testEntry,testVisibility.toString(),testVisibility.toString());
+
+        String journalID = journalDAO.getAllByProject(testProject, testStudent).get(0).getId();
+
+        Journal resultJournal = journalDAO.getJournal(journalID);
+
+        assertNotNull(resultJournal);
+
+        assertEquals(resultJournal.getStudentIdentifier().getStudentId(), testStudent);
+        assertEquals(resultJournal.getStudentIdentifier().getProjectId(), testProject);
+        assertEquals(resultJournal.getEntryMD(), testEntry);
+        assertEquals(resultJournal.getId(), journalID);
+        assertEquals(resultJournal.getVisibility(), testVisibility);
+        assertEquals(resultJournal.getCategory(), testCategory);
+
+
+        //Update
+
+        journalService.saveJournal(journalID,testStudent,testProject,testEntry+testEntry,Visibility.MINE.toString(),Category.AUSWERTUNG.toString());
+
+        resultJournal = journalDAO.getJournal(journalID);
+
+        assertNotNull(resultJournal);
+
+        assertEquals(resultJournal.getStudentIdentifier().getStudentId(), testStudent);
+        assertEquals(resultJournal.getStudentIdentifier().getProjectId(), testProject);
+        assertEquals(resultJournal.getEntryMD(), testEntry+testEntry);
+        assertEquals(resultJournal.getId(), journalID);
+        assertEquals(resultJournal.getVisibility(), Visibility.MINE);
+        assertEquals(resultJournal.getCategory(), Category.AUSWERTUNG);
+
+
+    }
+
+    @Test
+    public void deleteJournal() {
+
+        journalDAO.createJournal(testJournal);
+
+        ArrayList<Journal> resultJournals = journalDAO.getAllByProject(testProject, testStudent);
+        assertEquals(1, resultJournals.size());
+
+        String jId = resultJournals.get(0).getId();
+
+        journalService.deleteJournal(jId);
+
+        resultJournals = journalDAO.getAllByProject(testProject, testStudent);
+        assertEquals(0, resultJournals.size());
+
+    }
+
+    @Test
+    public void closeJournal() {
+
+        journalDAO.createJournal(testJournal);
+
+        Journal resultJournal = journalDAO.getAllByProject(testProject, testStudent).get(0);
+
+        assertTrue(resultJournal.isOpen());
+
+        journalService.closeJournal(resultJournal.getId());
+        resultJournal = journalDAO.getAllByProject(testProject, testStudent).get(0);
+
+        assertFalse(resultJournal.isOpen());
+    }
+
+    @Test
+    public void checkIfAllJournalClosed() {
+
+        Project project = new Project();
+        project.setId(testProject);
+
+        journalDAO.createJournal(testJournal);
+        journalDAO.createJournal(testJournal);
+
+        ArrayList<Journal> resultJournals = journalDAO.getAllByProject(testProject,testStudent);
+
+        assertFalse(journalService.checkIfAllJournalClosed(project));
+
+        for(Journal j : resultJournals){
+            journalDAO.closeJournal(j.getId());
+        }
+
+        assertTrue(journalService.checkIfAllJournalClosed(project));
+
+    }
+
+    @Test
+    public void getOpenUserByProject() {
+
+        User user = new User("Test", "Test", "test@test.de", true);
+        String token = management.getUserToken(user);
+
+        Project project = new Project();
+
+        testJournal.getStudentIdentifier().setStudentId(token);
+        project.setId(testProject);
+
+        journalDAO.createJournal(testJournal);
+
+        ArrayList<User> resultUsers = journalService.getOpenUserByProject(project);
+
+        assertEquals(1,resultUsers.size());
+        assertEquals(user.getEmail(),resultUsers.get(0).getId());
+    }
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImplTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImplTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..66b84406055c680e3c314354ec6897e9126eff5e
--- /dev/null
+++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImplTest.java
@@ -0,0 +1,204 @@
+package unipotsdam.gf.modules.journal.service;
+
+import org.junit.After;
+import org.junit.Test;
+import unipotsdam.gf.core.management.Management;
+import unipotsdam.gf.core.management.ManagementImpl;
+import unipotsdam.gf.core.management.project.Project;
+import unipotsdam.gf.core.management.user.User;
+import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
+import unipotsdam.gf.modules.journal.model.Link;
+import unipotsdam.gf.modules.journal.model.ProjectDescription;
+import unipotsdam.gf.modules.journal.model.dao.LinkDAO;
+import unipotsdam.gf.modules.journal.model.dao.LinkDAOImpl;
+import unipotsdam.gf.modules.journal.model.dao.ProjectDescriptionDAO;
+import unipotsdam.gf.modules.journal.model.dao.ProjectDescriptionDAOImpl;
+
+import java.util.ArrayList;
+
+import static org.junit.Assert.*;
+
+public class ProjectDescriptionImplTest {
+
+    private ProjectDescriptionService projectDescriptionService = new ProjectDescriptionImpl();
+
+    private ProjectDescriptionDAO descriptionDAO = new ProjectDescriptionDAOImpl();
+    private LinkDAO linkDAO = new LinkDAOImpl();
+    private Management management = new ManagementImpl();
+
+    private String testId = "-1";
+    private String testStudent = "testStudent";
+    private String testDescription = "testDescription";
+    private String testProject = "testProject";
+
+    private String testProjectDescription = "testproject";
+    private String testName = "testname";
+    private String testLink = "https://www.test.de";
+    private Link testLinkObj = new Link(testId, testProjectDescription, testName, testLink);
+
+    private ArrayList<Link> linkArrayList = new ArrayList<>();
+
+    private ProjectDescription testProjectDescriptionObj = new ProjectDescription(testId, testStudent, testDescription, testProject, linkArrayList);
+
+    @After
+    public void cleanUp() {
+        StudentIdentifier deleteIdentifier = new StudentIdentifier(testProject, testStudent);
+        ProjectDescription deleteDescription = descriptionDAO.getDescription(deleteIdentifier);
+        descriptionDAO.deleteDescription(deleteIdentifier);
+
+        if (deleteDescription != null) {
+            ArrayList<Link> deleteLinks = linkDAO.getAllLinks(deleteDescription.getId());
+
+            for (Link l : deleteLinks) {
+                linkDAO.deleteLink(l.getId());
+            }
+        }
+    }
+
+    @Test
+    public void getProjectbyStudent() {
+        //NO description exists
+        projectDescriptionService.getProjectByStudent(new StudentIdentifier(testProject, testStudent));
+
+        ProjectDescription resProjectDescription = descriptionDAO.getDescription(new StudentIdentifier(testProject, testStudent));
+        String id = resProjectDescription.getId();
+
+        assertNotNull(resProjectDescription);
+        assertEquals("Hier soll ein Turtorialtext stehen", resProjectDescription.getDescriptionMD());
+        assertEquals(testStudent, resProjectDescription.getStudent().getStudentId());
+        assertEquals(testProject, resProjectDescription.getStudent().getProjectId());
+
+        //description exists
+        resProjectDescription = descriptionDAO.getDescription(new StudentIdentifier(testProject, testStudent));
+
+        assertNotNull(resProjectDescription);
+        assertEquals(id, resProjectDescription.getId());
+        assertEquals("Hier soll ein Turtorialtext stehen", resProjectDescription.getDescriptionMD());
+        assertEquals(testStudent, resProjectDescription.getStudent().getStudentId());
+        assertEquals(testProject, resProjectDescription.getStudent().getProjectId());
+
+    }
+
+    @Test
+    public void getProjectbyId() {
+
+        descriptionDAO.createDescription(testProjectDescriptionObj);
+        String id = descriptionDAO.getDescription(new StudentIdentifier(testProject, testStudent)).getId();
+
+        testLinkObj.setProjectDescription(id);
+        linkDAO.addLink(testLinkObj);
+
+        ProjectDescription resProjectDescription = projectDescriptionService.getProjectById(id);
+
+        assertNotNull(resProjectDescription);
+        assertEquals(testDescription, resProjectDescription.getDescriptionMD());
+        assertEquals(testStudent, resProjectDescription.getStudent().getStudentId());
+        assertEquals(testProject, resProjectDescription.getStudent().getProjectId());
+
+        ArrayList<Link> links = resProjectDescription.getLinks();
+        assertEquals(1, links.size());
+        assertEquals(testLink, links.get(0).getLink());
+        assertEquals(testName, links.get(0).getName());
+
+    }
+
+    @Test
+    public void saveProjectText() {
+        descriptionDAO.createDescription(testProjectDescriptionObj);
+
+        projectDescriptionService.saveProjectText(new StudentIdentifier(testProject, testStudent), testName);
+
+        ProjectDescription resProjectDescription = descriptionDAO.getDescription(new StudentIdentifier(testProject, testStudent));
+
+        assertEquals(testName, resProjectDescription.getDescriptionMD());
+
+    }
+
+    @Test
+    public void addLink() {
+        descriptionDAO.createDescription(testProjectDescriptionObj);
+        ProjectDescription resProjectDescription = descriptionDAO.getDescription(new StudentIdentifier(testProject, testStudent));
+
+        projectDescriptionService.addLink(resProjectDescription.getId(), testLink, testName);
+
+        ArrayList<Link> resLinks = linkDAO.getAllLinks(resProjectDescription.getId());
+
+        assertEquals(1, resLinks.size());
+        assertEquals(resProjectDescription.getId(), resLinks.get(0).getProjectDescription());
+        assertEquals(testName, resLinks.get(0).getName());
+        assertEquals(testLink, resLinks.get(0).getLink());
+
+    }
+
+    @Test
+    public void deleteLink() {
+        descriptionDAO.createDescription(testProjectDescriptionObj);
+        ProjectDescription resProjectDescription = descriptionDAO.getDescription(new StudentIdentifier(testProject, testStudent));
+
+        testLinkObj.setProjectDescription(resProjectDescription.getId());
+        linkDAO.addLink(testLinkObj);
+
+        ArrayList<Link> resLinks = linkDAO.getAllLinks(resProjectDescription.getId());
+
+        assertEquals(1, resLinks.size());
+
+        projectDescriptionService.deleteLink(resLinks.get(0).getId());
+
+        resLinks = linkDAO.getAllLinks(resProjectDescription.getId());
+        assertEquals(0, resLinks.size());
+
+    }
+
+    @Test
+    public void closeDescription() {
+
+        descriptionDAO.createDescription(testProjectDescriptionObj);
+
+        ProjectDescription resDescription = descriptionDAO.getDescription(new StudentIdentifier(testProject, testStudent));
+
+        assertTrue(resDescription.isOpen());
+
+        projectDescriptionService.closeDescription(resDescription.getId());
+
+        resDescription = descriptionDAO.getDescription(new StudentIdentifier(testProject, testStudent));
+
+        assertFalse(resDescription.isOpen());
+    }
+
+    @Test
+    public void checkIfAllDescriptionsClosed() {
+
+        descriptionDAO.createDescription(testProjectDescriptionObj);
+
+        Project project = new Project();
+        project.setId(testProject);
+        assertFalse(projectDescriptionService.checkIfAllDescriptionsClosed(project));
+
+        ProjectDescription resDescription = descriptionDAO.getDescription(new StudentIdentifier(testProject, testStudent));
+
+        descriptionDAO.closeDescription(resDescription.getId());
+
+        assertTrue(projectDescriptionService.checkIfAllDescriptionsClosed(project));
+
+    }
+
+    @Test
+    public void getOpenUserByProject() {
+        User user = new User("Test", "Test", "test@test.de", true);
+        String token = management.getUserToken(user);
+
+        Project project = new Project();
+        project.setId(testProject);
+
+        testProjectDescriptionObj.getStudent().setStudentId(token);
+        descriptionDAO.createDescription(testProjectDescriptionObj);
+
+        ArrayList<User> resultUser = projectDescriptionService.getOpenUserByProject(project);
+
+        assertEquals(1, resultUser.size());
+        assertEquals(user.getEmail(), resultUser.get(0).getId());
+
+        StudentIdentifier delUser = new StudentIdentifier(testProject, token);
+        descriptionDAO.deleteDescription(delUser);
+    }
+}
\ No newline at end of file