diff --git a/gemeinsamforschen/pom.xml b/gemeinsamforschen/pom.xml
index 5fa0d0f8e5b50917e71d3cd24259770441115c28..52c20b79f71aee59a5981002bb0cfffe254b46ba 100644
--- a/gemeinsamforschen/pom.xml
+++ b/gemeinsamforschen/pom.xml
@@ -165,6 +165,15 @@
             <version>1.3.4</version>
         </dependency>
 
+        <dependency>
+            <groupId>com.atlassian.commonmark</groupId>
+            <artifactId>commonmark</artifactId>
+            <version>0.11.0</version>
+        </dependency>
+
+        <!-- state rules -->
+
+
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java
index 554cf0504b8783acc9589f00deaa64eb8356a581..b1e37de6b0852ebc84668f6eab51cd42799d5b07 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java
@@ -3,13 +3,24 @@ package unipotsdam.gf.config;
 import org.glassfish.hk2.utilities.binding.AbstractBinder;
 import unipotsdam.gf.core.management.Management;
 import unipotsdam.gf.core.management.ManagementImpl;
-import unipotsdam.gf.interfaces.ICommunication;
+import unipotsdam.gf.core.states.PhasesImpl;
+import unipotsdam.gf.interfaces.*;
+import unipotsdam.gf.modules.assessment.controller.service.PeerAssessment;
+import unipotsdam.gf.modules.assessment.controller.service.PeerAssessmentDummy;
 import unipotsdam.gf.modules.communication.service.CommunicationDummyService;
+import unipotsdam.gf.modules.journal.DummyJournalImpl;
+import unipotsdam.gf.modules.journal.model.Journal;
+import unipotsdam.gf.modules.journal.service.DummyJournalService;
+import unipotsdam.gf.modules.peer2peerfeedback.DummyFeedback;
 
 public class GFApplicationBinder extends AbstractBinder {
     @Override
     protected void configure() {
         bind(CommunicationDummyService.class).to(ICommunication.class);
         bind(ManagementImpl.class).to(Management.class);
+        bind(DummyFeedback.class).to(Feedback.class);
+        bind(DummyJournalImpl.class).to(IJournal.class);
+        bind(PeerAssessmentDummy.class).to(IPeerAssessment.class);
+        bind(PhasesImpl.class).to(IPhases.class);
     }
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFDatabaseConfig.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFDatabaseConfig.java
index 252905102d2472eaa125f06499bbdfe1663ea254..cefe2e289c2727db459f27dc5606aa0ceb9f9d6b 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFDatabaseConfig.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFDatabaseConfig.java
@@ -7,7 +7,7 @@ public class GFDatabaseConfig {
     public static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
     public static final String DB_URL = "jdbc:mysql://localhost";
     //  Database credentials
-    public static final String USER = "root";
-    public static final String PASS = "";
+    public static final String USER = "root2";
+    public static final String PASS = "voyager2";
     public static final String DB_NAME = "fltrail";
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/database/mysql/VereinfachtesResultSet.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/database/mysql/VereinfachtesResultSet.java
index ff270f7b46d23457b3742b15596a296d9a99179e..972fffd8d5bb466aca534bc0e0682a2cdbbccf8b 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/database/mysql/VereinfachtesResultSet.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/database/mysql/VereinfachtesResultSet.java
@@ -11,6 +11,30 @@ public class VereinfachtesResultSet {
 
 	private ResultSet resultSet;
 
+	/**
+	 * creates a more verbose error message that actually tells you whats wrong
+	 * @param columnLabel
+	 * @return
+	 */
+	private String errorMessage(String columnLabel){
+		return String.format(
+			"error in VereinfachtesResultSet: Spalte %s konnte nicht gefunden werden",
+			columnLabel
+		);
+	}
+
+	/**
+	 * creates a more verbose error message that actually tells you whats wrong
+	 * @param columnIndex
+	 * @return
+	 */
+	private String errorMessage(int columnIndex){
+		return String.format(
+			"error in VereinfachtesResultSet: Zeile %d konnte nicht gefunden werden",
+			columnIndex
+		);
+	}
+
 	public VereinfachtesResultSet(ResultSet resultset) {
 		if (resultset == null) {
 			throw new Error("kein Resultset");
@@ -34,7 +58,7 @@ public class VereinfachtesResultSet {
 		} catch (SQLException ex) {
 			System.err.println(ex.getMessage());
 		}
-		throw new Error("error in VereinfachtesResultSet");
+		throw new Error(errorMessage(columnIndex));
 	}
 
 	public float getFloat(int columnIndex) {
@@ -43,7 +67,7 @@ public class VereinfachtesResultSet {
 		} catch (SQLException ex) {
 			System.err.println(ex.getMessage());
 		}
-		throw new Error("error in VereinfachtesResultSet");
+		throw new Error(errorMessage(columnIndex));
 	}
 
 	public double getDouble(int columnIndex) {
@@ -52,7 +76,7 @@ public class VereinfachtesResultSet {
 		} catch (SQLException ex) {
 			System.err.println(ex.getMessage());
 		}
-		throw new Error("error in VereinfachtesResultSet");
+		throw new Error(errorMessage(columnIndex));
 	}
 
 
@@ -62,7 +86,7 @@ public class VereinfachtesResultSet {
 		} catch (SQLException ex) {
 			System.err.println(ex.getMessage());
 		}
-		throw new Error("error in VereinfachtesResultSet");
+		throw new Error(errorMessage(columnIndex));
 	}
 
 
@@ -72,7 +96,7 @@ public class VereinfachtesResultSet {
 		} catch (SQLException ex) {
 			System.err.println(ex.getMessage());
 		}
-		throw new Error("error in VereinfachtesResultSet");
+		throw new Error(errorMessage(columnIndex));
 	}
 
     public Timestamp getTimestamp(String columnLabel) {
@@ -81,7 +105,7 @@ public class VereinfachtesResultSet {
         } catch (SQLException ex) {
             System.err.println(ex.getMessage());
         }
-        throw new Error("error in VereinfachtesResultSet");
+        throw new Error(errorMessage(columnLabel));
     }
 
 
@@ -91,7 +115,7 @@ public class VereinfachtesResultSet {
 		} catch (SQLException ex) {
 			System.err.println(ex.getMessage());
 		}
-		throw new Error("error in VereinfachtesResultSet");
+		throw new Error(errorMessage(columnLabel));
 	}
 
 	public boolean getBoolean(String columnLabel) {
@@ -100,7 +124,7 @@ public class VereinfachtesResultSet {
 		} catch (SQLException ex) {
 			System.err.println(ex.getMessage());
 		}
-		throw new Error("error in VereinfachtesResultSet");
+		throw new Error(errorMessage(columnLabel));
 	}
 
 	public int getInt(String columnLabel) {
@@ -109,7 +133,7 @@ public class VereinfachtesResultSet {
 		} catch (SQLException ex) {
 			System.err.println(ex.getMessage());
 		}
-		throw new Error("error in VereinfachtesResultSet");
+		throw new Error(errorMessage(columnLabel));
 	}
 
 	public long getLong(String columnLabel) {
@@ -118,7 +142,7 @@ public class VereinfachtesResultSet {
 		} catch (SQLException ex) {
 			System.err.println(ex.getMessage());
 		}
-		throw new Error("error in VereinfachtesResultSet");
+		throw new Error(errorMessage(columnLabel));
 	}
 
 	public float getFloat(String columnLabel) {
@@ -127,7 +151,7 @@ public class VereinfachtesResultSet {
 		} catch (SQLException ex) {
 			System.err.println(ex.getMessage());
 		}
-		throw new Error("error in VereinfachtesResultSet");
+		throw new Error(errorMessage(columnLabel));
 	}
 
 	public double getDouble(String columnLabel) {
@@ -136,7 +160,7 @@ public class VereinfachtesResultSet {
 		} catch (SQLException ex) {
 			System.err.println(ex.getMessage());
 		}
-		throw new Error("error in VereinfachtesResultSet");
+		throw new Error(errorMessage(columnLabel));
 	}
 
 	public ResultSetMetaData getMetaData() {
@@ -154,7 +178,7 @@ public class VereinfachtesResultSet {
 		} catch (SQLException ex) {
 			System.err.println(ex.getMessage());
 		}
-		throw new Error("error in VereinfachtesResultSet");
+		throw new Error(errorMessage(columnIndex));
 	}
 
 	public Object getObject(String columnLabel) {
@@ -163,7 +187,7 @@ public class VereinfachtesResultSet {
 		} catch (SQLException ex) {
 			System.err.println(ex.getMessage());
 		}
-		throw new Error("error in VereinfachtesResultSet");
+		throw new Error(errorMessage(columnLabel));
 	}
 
 	public int findColumn(String columnLabel) {
@@ -172,7 +196,7 @@ public class VereinfachtesResultSet {
 		} catch (SQLException ex) {
 			System.err.println(ex.getMessage());
 		}
-		throw new Error("error in VereinfachtesResultSet");
+		throw new Error(errorMessage(columnLabel));
 	}
 
 	public boolean isBeforeFirst() {
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 1cecac2de82d93e049cbc159843b7f91334fb6ec..0bb16d84013c6b0e50dcf2c0b747364b497d5d87 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java
@@ -7,6 +7,8 @@ import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.core.management.user.User;
 import unipotsdam.gf.core.management.user.UserInterests;
 import unipotsdam.gf.core.management.user.UserProfile;
+import unipotsdam.gf.core.states.ProjectPhase;
+import unipotsdam.gf.modules.assessment.controller.model.Quiz;
 import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
 
 import javax.annotation.ManagedBean;
@@ -55,13 +57,15 @@ public class ManagementImpl implements Management {
         UUID uuid = UUID.randomUUID();
         String token = uuid.toString();
 
+
         MysqlConnect connect = new MysqlConnect();
         connect.connect();
         String mysqlRequest =
                 "INSERT INTO projects (`id`, `password`, `active`, `timecreated`, `author`, "
-                        + "`adminPassword`, `token`) values (?,?,?,?,?,?,?)";
+                        + "`adminPassword`, `token`, `phase`) values (?,?,?,?,?,?,?,?)";
         connect.issueInsertOrDeleteStatement(mysqlRequest, project.getId(), project.getPassword(), project.isActive(),
-                project.getTimecreated(), project.getAuthor(), project.getAdminPassword(), token);
+                project.getTimecreated(), project.getAuthor(), project.getAdminPassword(), token, project.getPhase()
+                        == null ? ProjectPhase.CourseCreation : project.getPhase());
         connect.close();
     }
 
@@ -133,11 +137,15 @@ public class ManagementImpl implements Management {
         connect.connect();
         VereinfachtesResultSet vereinfachtesResultSet = connect.issueSelectStatement(query, project.getId());
         while (!vereinfachtesResultSet.isLast()) {
-            vereinfachtesResultSet.next();
-            User user = getUserFromResultSet(vereinfachtesResultSet);
-            String token = vereinfachtesResultSet.getString("token");
-            user.setToken(token);
-            result.add(user);
+            Boolean next = vereinfachtesResultSet.next();
+            if (next) {
+                User user = getUserFromResultSet(vereinfachtesResultSet);
+                String token = vereinfachtesResultSet.getString("token");
+                user.setToken(token);
+                result.add(user);
+            } else {
+                break;
+            }
         }
         connect.close();
         return result;
@@ -161,6 +169,7 @@ public class ManagementImpl implements Management {
         String author = vereinfachtesResultSet.getString("author");
         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);
     }
@@ -172,6 +181,7 @@ public class ManagementImpl implements Management {
         // TODO: determine how to get all User
         return new Group(id, new ArrayList<>(), projectId, chatRoomId);
     }
+
     @Override
     public String getUserToken(User user) {
         MysqlConnect connect = new MysqlConnect();
@@ -199,6 +209,43 @@ public class ManagementImpl implements Management {
         return getUserByField("email", email);
     }
 
+
+    /**
+     * TODO @Axel bitte in modules/asessment verschieben
+     * @param projectId
+     * @param quizId
+     * @return
+     */
+    public Quiz getQuizByProjectGroupId(String projectId, String quizId){
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "SELECT * FROM quiz where projectId=" + projectId + " , question="+quizId;
+        VereinfachtesResultSet vereinfachtesResultSet =
+                connect.issueSelectStatement(mysqlRequest, "");
+        boolean next = vereinfachtesResultSet.next();
+        String question = "";
+        ArrayList<String> correctAnswers = new ArrayList<String>();
+        ArrayList<String> incorrectAnswers = new ArrayList<String>();
+        String answer = "";
+        Boolean correct = false;
+        String mcType = "";
+        while (next) {
+            mcType = vereinfachtesResultSet.getString("mcType");
+            question = vereinfachtesResultSet.getString("question");
+            answer = vereinfachtesResultSet.getString("answer");
+            correct = vereinfachtesResultSet.getBoolean("correct");
+            if (correct){
+                correctAnswers.add(answer);
+            }else{
+                incorrectAnswers.add(answer);
+            }
+            next = vereinfachtesResultSet.next();
+        }
+        Quiz quiz = new Quiz(mcType,question, correctAnswers, incorrectAnswers);
+        connect.close();
+        return quiz;
+    }
+
     private User getUserByField(String field, String value) {
         MysqlConnect connect = new MysqlConnect();
         connect.connect();
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 682b5c40b13472a4bc3369eb7970ddb9bce428fd..06bd24d75edced5f007ff2db5a58b1bbcd6b30ab 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
@@ -1,5 +1,7 @@
 package unipotsdam.gf.core.management.project;
 
+import unipotsdam.gf.core.states.ProjectPhase;
+
 import java.sql.Timestamp;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
@@ -16,6 +18,8 @@ public class Project {
     private String author;
     private String adminPassword;
     private String token;
+    // using enum ProjectPhase
+    private String phase;
 
     public Project() {
     }
@@ -26,8 +30,21 @@ public class Project {
         this.active = active;
         this.author = author;
         this.adminPassword = adminPassword;
-
         this.timecreated = Timestamp.valueOf(LocalDateTime.now(ZoneId.of("UTC")));
+        // default starting at course creation if new
+        this.setPhase(ProjectPhase.CourseCreation);
+    }
+
+    public String getPhase() {
+        return phase;
+    }
+
+    /**
+     * setting phase only with enum
+     * @param phase
+     */
+    public void setPhase(ProjectPhase phase) {
+        this.phase = phase.name();
     }
 
     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 bac4c6b3cea76779533473b0794eb1d9c7d67892..16e3f3ffe900a17b77df2719adfc93ee1d5b6053 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
@@ -9,6 +9,8 @@ import javax.servlet.jsp.PageContext;
 import javax.servlet.jsp.tagext.SimpleTagSupport;
 import java.io.IOException;
 
+
+// TODO: please move this to a view package at the top of the hierarchy as this is not part of the user package
 public class Menu extends SimpleTagSupport {
     public void doTag() throws JspException, IOException {
         PageContext pageContext = (PageContext) getJspContext();
@@ -23,9 +25,10 @@ public class Menu extends SimpleTagSupport {
                 out.println("<div id=\"sidebar-wrapper\">\n" +
                         "        <ul class=\"sidebar-nav\">\n" +
                         "            <li class=\"sidebar-brand\"><a href=\"overview-student.jsp?token="+token+"\">overview</a></li>\n" +
-                        "            <li><a href=\"takeQuiz.jsp?token="+token+"\">Quizfrage</a></li>\n" +
-                        "            <li><a href=\"#\">ePortfolio</a></li>\n" +
-                        "            <li><a href=\"#\">Beitrag</a></li>\n" +
+                        "            <li><a href=\"profile.jsp?token="+token+"\">Profil</a></li>\n" +
+                        "            <li><a href=\"Quiz.jsp?token="+token+"\">Quizfrage</a></li>\n" +
+                        "            <li><a href=\"eportfolio.jsp?token="+token+"\">ePortfolio</a></li>\n" +
+                        "            <li><a href=\"researchReportTitle.jsp?token="+token+"\">Beitrag</a></li>\n" +
                         "            <li><a href=\"finalAssessments.jsp?token="+token+"\">Bewertung</a></li>\n" +
                         "            <li><a href=\"../index.jsp\">Logout</a></li>\n" +
                         "        </ul>\n" +
@@ -34,7 +37,7 @@ public class Menu extends SimpleTagSupport {
                 out.println("<div id=\"sidebar-wrapper\">\n" +
                         "        <ul class=\"sidebar-nav\">\n" +
                         "            <li class=\"sidebar-brand\"><a href=\"overview-docent.jsp?token="+token+"\">overview</a></li>\n" +
-                        "            <li><a href=\"createQuiz.jsp?token="+token+"\">Quizfrage</a></li>\n" +
+                        "            <li><a href=\"Quiz.jsp?token="+token+"\">Quizfrage</a></li>\n" +
                         "            <li><a href=\"#\">ePortfolio</a></li>\n" +
                         "            <li><a href=\"#\">Beitrag</a></li>\n" +
                         "            <li><a href=\"#\">Gruppen erstellen</a></li>\n" +
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserService.java.orig b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserService.java.orig
deleted file mode 100644
index 73d84e8fa40445fffec6c0a31a5523f9fb5e318f..0000000000000000000000000000000000000000
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserService.java.orig
+++ /dev/null
@@ -1,163 +0,0 @@
-package unipotsdam.gf.core.management.user;
-
-import unipotsdam.gf.core.management.ManagementImpl;
-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.core.MediaType;
-import javax.ws.rs.core.Response;
-import java.net.URI;
-import java.net.URISyntaxException;
-
-@Path("/user")
-@ManagedBean
-public class UserService {
-
-    @Inject
-    private ICommunication communicationService;
-
-    /**
-     * creates a user with given credentials
-     *
-     * @param name
-     * @param password
-     * @param email
-     * @param isStudent
-     * @return
-     * @throws URISyntaxException
-     */
-    // This method is called if HTML is request
-    @POST
-    @Produces(MediaType.TEXT_HTML)
-    @Path("/create")
-    public Response createUser(@FormParam("name") String name, @FormParam("password") String password,
-                               @FormParam("email") String email, @FormParam("isStudent") String isStudent)
-            throws URISyntaxException {
-
-        ManagementImpl management = new ManagementImpl();
-        User user = new User(name, password, email, isStudent == null);
-        return login(true, user);
-
-    }
-
-    /**
-     * checks if a user exists in order to log him in
-     *
-     * @param name
-     * @param password
-     * @param email
-     * @return
-     * @throws URISyntaxException
-     */
-    // This method is called if HTML is request
-    @POST
-    @Produces(MediaType.TEXT_HTML)
-    @Path("/exists")
-    public Response existsUser(@FormParam("name") String name, @FormParam("password") String password,
-                               @FormParam("email") String email)
-            throws URISyntaxException {
-
-        ManagementImpl management = new ManagementImpl();
-        User user = new User(name, password, email, null);
-        ICommunication iCommunication = new CommunicationDummyService();
-        boolean isLoggedIn = iCommunication.loginUser(user);
-        if (isLoggedIn) {
-            return login(false, user);
-        } else {
-            return loginError();
-        }
-
-
-    }
-
-    /**
-     * if create User is true, the user is created and logged in if he does not exist
-     *
-     * @param createUser
-     * @param user
-     * @return
-     * @throws URISyntaxException
-     */
-    protected Response login(boolean createUser, User user) throws URISyntaxException {
-        ManagementImpl management = new ManagementImpl();
-        if (management.exists(user)) {
-            if (!createUser) {
-<<<<<<< HEAD
-                ManagementImpl m = new ManagementImpl();
-                String token = m.getUserToken(user);
-                user = m.getUser(token);
-=======
-                boolean successfulLogin = communicationService.loginUser(user);
-                management.update(user);
-                if (!successfulLogin) {
-                    return loginError();
-                }
->>>>>>> 9bbae0ff75b2597ab35479a24d47c12e7a4cc0fd
-                return redirectToProjectPage(user, management);
-            }
-            String existsUrl = "../register.jsp?userExists=true";
-            return forwardToLocation(existsUrl);
-        } else {
-            if (createUser) {
-                boolean isRegisteredAndLoggedIn = communicationService.registerAndLoginUser(user);
-                if (!isRegisteredAndLoggedIn) {
-                    return registrationError();
-                }
-                management.create(user, null);
-            } else {
-                String existsUrl = "../index.jsp?userExists=false";
-                return forwardToLocation(existsUrl);
-            }
-            ManagementImpl m = new ManagementImpl();
-            String token = m.getUserToken(user);
-            user = m.getUser(token); //todo: write query to get user isStudent
-            return redirectToProjectPage(user, management);
-        }
-    }
-
-    private Response registrationError() throws URISyntaxException {
-        String existsUrl = "../register.jsp?registrationError=true";
-        return forwardToLocation(existsUrl);
-    }
-
-    private Response loginError() throws URISyntaxException {
-        String existsUrl = "../index.jsp?loginError=true";
-        return forwardToLocation(existsUrl);
-    }
-
-    /**
-     * helper function for redirecting to the right project page
-     *
-     * @param user
-     * @param management
-     * @return
-     * @throws URISyntaxException
-     */
-    private Response redirectToProjectPage(User user, ManagementImpl management) throws URISyntaxException {
-        String successUrl;
-        if (user.getStudent() != null && user.getStudent()) {
-            successUrl = "../pages/overview-student.html?token=";
-        } else {
-            successUrl = "../pages/overview-docent.html?token=";
-        }
-        successUrl += management.getUserToken(user);
-        return forwardToLocation(successUrl);
-    }
-
-    /**
-     * * helper function for redirecting to a new page
-     *
-     * @param existsUrl
-     * @return
-     * @throws URISyntaxException
-     */
-    private Response forwardToLocation(String existsUrl) throws URISyntaxException {
-        return Response.seeOther(new URI(existsUrl)).build();
-    }
-}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..f41a8eeeac87a6ca6fe7d26fffdce08d4dea28bf
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesImpl.java
@@ -0,0 +1,126 @@
+package unipotsdam.gf.core.states;
+
+import unipotsdam.gf.core.database.mysql.MysqlConnect;
+import unipotsdam.gf.core.management.project.Project;
+import unipotsdam.gf.interfaces.*;
+import unipotsdam.gf.view.Messages;
+
+import javax.annotation.ManagedBean;
+import javax.annotation.Resource;
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
+/**
+ * Created by dehne on 31.05.2018.
+ * This class should be used to manage changing the phases in a central location
+ * it has dependencies to most modules, as they are required to check the constraints
+ * when changing between phases
+ */
+@ManagedBean
+public class PhasesImpl implements IPhases {
+
+    @Inject
+    private IPeerAssessment iPeerAssessment;
+
+    @Inject
+    private Feedback feedback;
+
+    @Inject
+    private ICommunication iCommunication;
+
+    @Inject
+    private IJournal iJournal;
+
+    public PhasesImpl() {
+    }
+
+    /**
+     * use this if you don't know how dependency injection works
+     * @param iPeerAssessment
+     * @param feedback
+     * @param iCommunication
+     * @param iJournal
+     */
+    public PhasesImpl(IPeerAssessment iPeerAssessment, Feedback feedback, ICommunication iCommunication, IJournal iJournal) {
+        this.iPeerAssessment = iPeerAssessment;
+        this.feedback = feedback;
+        this.iCommunication = iCommunication;
+        this.iJournal = iJournal;
+    }
+
+    @Override
+    public void endPhase(ProjectPhase currentPhase, Project project) {
+        switch (currentPhase) {
+            case CourseCreation:
+                // saving the state
+                saveState(project,getNextPhase(currentPhase));
+                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));
+                break;
+            case DossierFeedback:
+                // check if everybody has uploaded a dossier
+                Boolean feedbacksGiven = feedback.checkFeedbackConstraints(project);
+                if (!feedbacksGiven) {
+                    feedback.assigningMissingFeedbackTasks(project);
+                } 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));
+                }
+                break;
+            case Execution:
+                // check if the portfolios have been prepared for evaluation (relevant entries selected)
+                Boolean portfoliosReady = iJournal.getPortfoliosForEvaluationPrepared(project);
+                if (portfoliosReady) {
+                    // inform users about the end of the phase
+                    iCommunication.sendMessageToUsers(project, Messages.AssessmentPhaseStarted(project));
+                    saveState(project,getNextPhase(currentPhase));
+                } else {
+                    iJournal.assignMissingPortfolioTasks(project);
+                }
+                break;
+            case Assessment:
+                closeProject();
+                break;
+        }
+    }
+
+    private void closeProject() {
+        // TODO implement
+    }
+
+    ProjectPhase getNextPhase(ProjectPhase projectPhase) {
+        switch (projectPhase) {
+            case CourseCreation:
+                return ProjectPhase.GroupFormation;
+            case GroupFormation:
+                return ProjectPhase.DossierFeedback;
+            case DossierFeedback:
+                return ProjectPhase.Execution;
+            case Execution:
+                return ProjectPhase.Assessment;
+            case Assessment:
+                return ProjectPhase.Projectfinished;
+        }
+        return null;
+    }
+
+    private void saveState(Project project, ProjectPhase currentPhase) {
+        assert project.getId() != null;
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "UPDATE `projects` SET `phase`=? WHERE id=? LIMIT 1";
+        connect.issueUpdateStatement(mysqlRequest, currentPhase.name(), project.getId());
+        connect.close();
+    }
+
+
+
+
+
+
+
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesService.java
new file mode 100644
index 0000000000000000000000000000000000000000..e3ad42205b6ae45070ae70f643a9f6e662757a18
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesService.java
@@ -0,0 +1,47 @@
+package unipotsdam.gf.core.states;
+
+import unipotsdam.gf.core.management.Management;
+import unipotsdam.gf.core.management.project.Project;
+import unipotsdam.gf.interfaces.IPhases;
+
+import javax.inject.Inject;
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+
+/**
+ * REST API for switching phases
+ * In order to look up the possible phases @see unipotsdam.gf.core.states.ProjectPhase
+ */
+@Path("/phases")
+public class PhasesService  {
+
+    @Inject
+    private IPhases phases;
+
+    @Inject
+    private Management management;
+
+    /**
+     * end phase
+     * @param projectPhase
+     * @param projectId
+     */
+    @Path("/{projectPhase}/projects/{projectId}")
+    @POST
+    @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+    public void endPhase(@PathParam("projectPhase") String projectPhase, @PathParam("projectId") String projectId) {
+        phases.endPhase(ProjectPhase.valueOf(projectPhase), management.getProjectById(projectId));
+    }
+
+    /**
+     * get current phase
+     * @param projectId
+     * @return
+     */
+    @Path("/{projectPhase}/projects/{projectId}")
+    @GET
+    @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+    public String getCurrentPhase(@PathParam("projectId") String projectId) {
+        return management.getProjectById(projectId).getPhase();
+    }
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/ProjectPhase.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/ProjectPhase.java
new file mode 100644
index 0000000000000000000000000000000000000000..328b415f28a8379e81258b79eb671e16614e0417
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/ProjectPhase.java
@@ -0,0 +1,6 @@
+package unipotsdam.gf.core.states;
+
+public enum ProjectPhase {
+    CourseCreation, GroupFormation, DossierFeedback, Execution, Assessment,
+    Projectfinished;
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/Feedback.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/Feedback.java
index 6ba367ce70e0ce14f2492b9dab298d2d284a405d..5a882917907b4b844080d64a7136fca88eac382e 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/Feedback.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/Feedback.java
@@ -1,4 +1,5 @@
 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 java.*;
@@ -51,4 +52,12 @@ public interface Feedback {
 
     int countFeedback(User student);
 
+    /**
+     * TODO implement check in DB that everybody has given feedback
+     * @param project
+     * @return
+     */
+    Boolean checkFeedbackConstraints(Project project);
+
+    void assigningMissingFeedbackTasks(Project project);
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ICommunication.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ICommunication.java
index 12d3d71183ae34966d1e88a04596095c22eadd42..3370fa6586a58651923f35abd482b94bc179b2ef 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ICommunication.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ICommunication.java
@@ -1,5 +1,6 @@
 package unipotsdam.gf.interfaces;
 
+import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.core.management.user.User;
 import unipotsdam.gf.modules.communication.model.Message;
 import unipotsdam.gf.modules.communication.model.chat.ChatMessage;
@@ -85,4 +86,9 @@ public interface ICommunication {
 
     String getChatRoomLink(String userToken, String projectToken, String groupToken);
 
+    // TODO implement as Email or whatever
+    void sendSingleMessage(Message message, User user);
+
+    // TODO implement as Email or whatever
+    void sendMessageToUsers(Project project, String message);
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IJournal.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IJournal.java
index ce70914d45192b6e682ec65b140c20feeb36af79..b4e3344f2fe333e7222439e79a5b3db93dbbc852 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IJournal.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IJournal.java
@@ -1,6 +1,7 @@
 package unipotsdam.gf.interfaces;
 
 
+import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
 
 import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
@@ -18,4 +19,16 @@ public interface IJournal {
      */
     String exportJournal (StudentIdentifier student);
 
+    /**
+     * check if all students have prepared their portfolios to be evaluated
+     * @return
+     * @param project
+     */
+    Boolean getPortfoliosForEvaluationPrepared(Project project);
+
+    /**
+     * find out, who hasn't prepared their portfolio for evaluation and send message or highlight in view
+     * @param project
+     */
+    void assignMissingPortfolioTasks(Project project);
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java
index 9a23d8f4d3036c6bd9f728e7d6cc213beaa42fa1..e3b65f1474d62074a4cf33b422a11ebda2d478b0 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java
@@ -69,9 +69,9 @@ public interface IPeerAssessment {
     /**
      * writes the peerRatings into db
      *
+     * @param peerRatings
      * @param projectId
      * @param groupId
-     * @param peerRatings
      */
-    void postPeerRating(String projectId, String groupId, ArrayList<PeerRating> peerRatings);
+    void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId);
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPhases.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPhases.java
new file mode 100644
index 0000000000000000000000000000000000000000..f98b67a9b224e50f1936e37ddd8ad7e6501e4f5a
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPhases.java
@@ -0,0 +1,13 @@
+package unipotsdam.gf.interfaces;
+
+import unipotsdam.gf.core.management.project.Project;
+import unipotsdam.gf.core.states.ProjectPhase;
+
+public interface IPhases {
+    /**
+     * switch from one phase to the next
+     * @param projectPhase
+     * @param project
+     */
+    public void endPhase(ProjectPhase projectPhase, Project project);
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ResearchReports.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ResearchReports.java
new file mode 100644
index 0000000000000000000000000000000000000000..f7ff0377354ac1e86e8fba4be549e4787b299131
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ResearchReports.java
@@ -0,0 +1,8 @@
+package unipotsdam.gf.interfaces;
+
+//import unipotsdam.gf.modules.assessment.controller.StudentIdentifier;
+import unipotsdam.gf.modules.researchreport.ResearchReport;
+
+public interface ResearchReports {
+    //java.util.List<ResearchReport> getReports(StudentIdentifier identifier);
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/controller/AnnotationController.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/controller/AnnotationController.java
index 4e6bb8e9e71c4f85ec6d31c1a18591f20a09fa30..ce29362c3f10354b41d3802bd945d638e62b52c9 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/controller/AnnotationController.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/controller/AnnotationController.java
@@ -4,6 +4,7 @@ import unipotsdam.gf.core.database.mysql.MysqlConnect;
 import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
 import unipotsdam.gf.interfaces.IAnnotation;
 import unipotsdam.gf.modules.annotation.model.Annotation;
+import unipotsdam.gf.modules.annotation.model.AnnotationBody;
 import unipotsdam.gf.modules.annotation.model.AnnotationPatchRequest;
 import unipotsdam.gf.modules.annotation.model.AnnotationPostRequest;
 
@@ -21,27 +22,21 @@ public class AnnotationController implements IAnnotation {
             uuid = UUID.randomUUID().toString();
         }
 
-        // build the annotation
-        Annotation annotation = new Annotation(uuid,
-                ZonedDateTime.now().toEpochSecond(),
-                annotationPostRequest.getUserId(),
-                annotationPostRequest.getTargetId(),
-                annotationPostRequest.getBody(),
-                annotationPostRequest.getStartCharacter(),
-                annotationPostRequest.getEndCharacter());
-
         // establish connection
         MysqlConnect connection = new MysqlConnect();
         connection.connect();
 
         // build and execute request
-        String request = "INSERT INTO annotations (`id`, `userId`, `targetId`, `body`, `startCharacter`, `endCharacter`) VALUES (?,?,?,?,?,?);";
-        connection.issueInsertOrDeleteStatement(request, annotation.getId(), annotation.getUserId(), annotation.getTargetId(), annotation.getBody(), annotation.getStartCharacter(), annotation.getEndCharacter());
+        String request = "INSERT INTO annotations (`id`, `userToken`, `targetId`, `title`, `comment`, `startCharacter`, `endCharacter`) VALUES (?,?,?,?,?,?,?);";
+        connection.issueInsertOrDeleteStatement(request, uuid, annotationPostRequest.getUserToken(), annotationPostRequest.getTargetId(), annotationPostRequest.getBody().getTitle(), annotationPostRequest.getBody().getComment(),annotationPostRequest.getBody().getStartCharacter(), annotationPostRequest.getBody().getEndCharacter());
 
         // close connection
         connection.close();
 
-        return annotation;
+        // build response annotation
+        Annotation annotationResponse = getAnnotation(uuid);
+
+        return annotationResponse;
 
     }
 
@@ -53,8 +48,8 @@ public class AnnotationController implements IAnnotation {
         connection.connect();
 
         // build and execute request
-        String request = "UPDATE `annotations` SET `body` = ? WHERE `id` = ?";
-        connection.issueUpdateStatement(request, annotationPatchRequest.getBody(), annotationId);
+        String request = "UPDATE `annotations` SET `title` = ?, `comment` = ? WHERE `id` = ?";
+        connection.issueUpdateStatement(request, annotationPatchRequest.getTitle(), annotationPatchRequest.getComment(), annotationId);
 
         // close connection
         connection.close();
@@ -165,17 +160,27 @@ public class AnnotationController implements IAnnotation {
 
     }
 
+    /**
+     * Build an annotation object from a given result set
+     *
+     * @param rs The result set from a database query
+     * @return A new annotation object
+     */
     private Annotation getAnnotationFromResultSet(VereinfachtesResultSet rs) {
 
         String id = rs.getString("id");
         long timestamp = rs.getTimestamp(2).getTime();
-        int userId = rs.getInt("userId");
+        String userToken = rs.getString("userToken");
         int targetId = rs.getInt("targetId");
-        String body = rs.getString("body");
+
+        // initialize new annotation body
+        String title = rs.getString("title");
+        String comment = rs.getString("comment");
         int startCharacter = rs.getInt("startCharacter");
         int endCharacter = rs.getInt("endCharacter");
+        AnnotationBody body = new AnnotationBody(title, comment, startCharacter, endCharacter);
 
-        return new Annotation(id, timestamp, userId, targetId, body, startCharacter, endCharacter);
+        return new Annotation(id, timestamp, userToken, targetId, body);
 
     }
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/Annotation.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/Annotation.java
index 725967353f5685e93c53302b7a8a0e799e4ccc12..699ec3eda8ad469fda08b6688311fabb9a17bc5b 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/Annotation.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/Annotation.java
@@ -9,21 +9,17 @@ public class Annotation {
     // variables
     private String id;
     private long timestamp;
-    private int userId;
+    private String userToken;
     private int targetId;
-    private String body;
-    private int startCharacter;
-    private int endCharacter;
+    private AnnotationBody body;
 
     // constructor
-    public Annotation(String id, long timestamp, int userId, int targetId, String body, int startCharacter, int endCharacter) {
+    public Annotation(String id, long timestamp, String userToken, int targetId, AnnotationBody body) {
         this.id = id;
         this.timestamp = timestamp;
-        this.userId = userId;
+        this.userToken = userToken;
         this.targetId = targetId;
         this.body = body;
-        this.startCharacter = startCharacter;
-        this.endCharacter = endCharacter;
     }
 
     // methods
@@ -43,12 +39,12 @@ public class Annotation {
         this.timestamp = timestamp;
     }
 
-    public int getUserId() {
-        return userId;
+    public String getUserToken() {
+        return userToken;
     }
 
-    public void setUserId(int userId) {
-        this.userId = userId;
+    public void setUserToken(String userToken) {
+        this.userToken = userToken;
     }
 
     public int getTargetId() {
@@ -59,40 +55,22 @@ public class Annotation {
         this.targetId = targetId;
     }
 
-    public String getBody() {
+    public AnnotationBody getBody() {
         return body;
     }
 
-    public void setBody(String body) {
+    public void setBody(AnnotationBody body) {
         this.body = body;
     }
 
-    public int getStartCharacter() {
-        return startCharacter;
-    }
-
-    public void setStartCharacter(int startCharacter) {
-        this.startCharacter = startCharacter;
-    }
-
-    public int getEndCharacter() {
-        return endCharacter;
-    }
-
-    public void setEndCharacter(int endCharacter) {
-        this.endCharacter = endCharacter;
-    }
-
     @Override
     public String toString() {
         return "Annotation{" +
-                "id=" + id +
+                "id='" + id + '\'' +
                 ", timestamp=" + timestamp +
-                ", userId=" + userId +
+                ", userToken='" + userToken + '\'' +
                 ", targetId=" + targetId +
-                ", body='" + body + '\'' +
-                ", startCharacter=" + startCharacter +
-                ", endCharacter=" + endCharacter +
+                ", body=" + body +
                 '}';
     }
 
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationBody.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationBody.java
new file mode 100644
index 0000000000000000000000000000000000000000..53c65233d06da04c8792c2f15ee4c39ddebd498b
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationBody.java
@@ -0,0 +1,69 @@
+package unipotsdam.gf.modules.annotation.model;
+
+/**
+ * @author Sven Kästle
+ * skaestle@uni-potsdam.de
+ */
+public class AnnotationBody {
+
+    // variables
+    private String title;
+    private String comment;
+    private int startCharacter;
+    private int endCharacter;
+
+    // constructors
+    public AnnotationBody(String title, String comment, int startCharacter, int endCharacter) {
+        this.title = title;
+        this.comment = comment;
+        this.startCharacter = startCharacter;
+        this.endCharacter = endCharacter;
+    }
+
+    public AnnotationBody() {
+    }
+
+    // methods
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getComment() {
+        return comment;
+    }
+
+    public void setComment(String comment) {
+        this.comment = comment;
+    }
+
+    public int getStartCharacter() {
+        return startCharacter;
+    }
+
+    public void setStartCharacter(int startCharacter) {
+        this.startCharacter = startCharacter;
+    }
+
+    public int getEndCharacter() {
+        return endCharacter;
+    }
+
+    public void setEndCharacter(int endCharacter) {
+        this.endCharacter = endCharacter;
+    }
+
+    @Override
+    public String toString() {
+        return "AnnotationBody{" +
+                "title='" + title + '\'' +
+                ", comment='" + comment + '\'' +
+                ", startCharacter=" + startCharacter +
+                ", endCharacter=" + endCharacter +
+                '}';
+    }
+
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationPatchRequest.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationPatchRequest.java
index c41e294afda5094833771b48bef3c18656c1f283..af5be4da6ad8db3f77ff0bf644392042a3626e5b 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationPatchRequest.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationPatchRequest.java
@@ -7,28 +7,39 @@ package unipotsdam.gf.modules.annotation.model;
 public class AnnotationPatchRequest {
 
     // variables
-    private String body;
+    private String title;
+    private String comment;
 
     // constructors
-    public AnnotationPatchRequest(String body) {
-        this.body = body;
+    public AnnotationPatchRequest(String title, String comment) {
+        this.title = title;
+        this.comment = comment;
     }
 
     public AnnotationPatchRequest() {}
 
     // methods
-    public String getBody() {
-        return body;
+    public String getTitle() {
+        return title;
     }
 
-    public void setBody(String body) {
-        this.body = body;
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getComment() {
+        return comment;
+    }
+
+    public void setComment(String comment) {
+        this.comment = comment;
     }
 
     @Override
     public String toString() {
         return "AnnotationPatchRequest{" +
-                "body='" + body + '\'' +
+                "title='" + title + '\'' +
+                ", comment='" + comment + '\'' +
                 '}';
     }
 
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationPostRequest.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationPostRequest.java
index 5459cb5b567c1aa2224642c2ef304007b954ba7e..5dfe6e206f1f014eb3ce88fbc22e401323b2c422 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationPostRequest.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationPostRequest.java
@@ -7,31 +7,27 @@ package unipotsdam.gf.modules.annotation.model;
 public class AnnotationPostRequest {
 
     // variables
-    private int userId;
+    private String userToken;
     private int targetId;
-    private String body;
-    private int startCharacter;
-    private int endCharacter;
+    private AnnotationBody body;
 
     // constructors
-    public AnnotationPostRequest(int userId, int targetId, String body, int startCharacter, int endCharacter) {
-        this.userId = userId;
+    public AnnotationPostRequest(String userToken, int targetId, AnnotationBody body) {
+        this.userToken = userToken;
         this.targetId = targetId;
         this.body = body;
-        this.startCharacter = startCharacter;
-        this.endCharacter = endCharacter;
     }
 
     public AnnotationPostRequest() {
     }
 
     // methods
-    public int getUserId() {
-        return userId;
+    public String getUserToken() {
+        return userToken;
     }
 
-    public void setUserId(int userId) {
-        this.userId = userId;
+    public void setUserToken(String userToken) {
+        this.userToken = userToken;
     }
 
     public int getTargetId() {
@@ -42,38 +38,21 @@ public class AnnotationPostRequest {
         this.targetId = targetId;
     }
 
-    public String getBody() {
+    public AnnotationBody getBody() {
         return body;
     }
 
-    public void setBody(String body) {
+    public void setBody(AnnotationBody body) {
         this.body = body;
     }
 
-    public int getStartCharacter() {
-        return startCharacter;
-    }
-
-    public void setStartCharacter(int startCharacter) {
-        this.startCharacter = startCharacter;
-    }
-
-    public int getEndCharacter() {
-        return endCharacter;
-    }
-
-    public void setEndCharacter(int endCharacter) {
-        this.endCharacter = endCharacter;
-    }
-
     @Override
     public String toString() {
         return "AnnotationPostRequest{" +
-                "userId=" + userId +
+                "userToken='" + userToken + '\'' +
                 ", targetId=" + targetId +
-                ", body='" + body + '\'' +
-                ", startCharacter=" + startCharacter +
-                ", endCharacter=" + endCharacter +
+                ", body=" + body.toString() +
                 '}';
     }
+
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Quiz.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Quiz.java
index 7abafb133a623a85028716af0e484734f06c93d9..e37fc2ffa474730ee1c56c1f57f18dd6a70a70ad 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Quiz.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Quiz.java
@@ -1,16 +1,17 @@
 package unipotsdam.gf.modules.assessment.controller.model;
 
 import javax.xml.bind.annotation.XmlRootElement;
+import java.util.ArrayList;
 
 @XmlRootElement
 
 public class Quiz {
     private String type;
     private String question;
-    private String[] correctAnswers;
-    private String[] incorrectAnswers;
+    private ArrayList<String> correctAnswers;
+    private ArrayList<String> incorrectAnswers;
 
-    public Quiz(String type, String question, String[] correctAnswers, String[] incorrectAnswers) {
+    public Quiz(String type, String question, ArrayList<String> correctAnswers, ArrayList<String> incorrectAnswers) {
         this.type = type;
         this.question = question;
         this.correctAnswers = correctAnswers;
@@ -18,19 +19,19 @@ public class Quiz {
     }
     public Quiz(){}
 
-    public String[] getIncorrectAnswers() {
+    public ArrayList<String> getIncorrectAnswers() {
         return incorrectAnswers;
     }
 
-    public void setIncorrectAnswers(String[] incorrectAnswers) {
+    public void setIncorrectAnswers(ArrayList<String> incorrectAnswers) {
         this.incorrectAnswers = incorrectAnswers;
     }
 
-    public String[] getCorrectAnswers() {
+    public ArrayList<String> getCorrectAnswers() {
         return correctAnswers;
     }
 
-    public void setCorrectAnswers(String[] correctAnswers) {
+    public void setCorrectAnswers(ArrayList<String> correctAnswers) {
         this.correctAnswers = correctAnswers;
     }
 
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 3368ce839633cd4e5172cffdad36fca4031604cb..df592667c5c569eaaa9f60dd7f6d75f30bc34789 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
@@ -54,7 +54,7 @@ public class FBAssessement extends AssessmentDAO {
     }
 
     @Override
-    public void postPeerRating(String projectId, String groupId, ArrayList<PeerRating> peerRatings) {
+    public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId) {
 
     }
 }
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 418f4fed993a364cb82b9ea4793dc066d9a9b75f..9ab276c63b7e61ed7d1fbd121717f3ab1b8f8232 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,7 +1,10 @@
 package unipotsdam.gf.modules.assessment.controller.service;
 
+import unipotsdam.gf.core.management.ManagementImpl;
+import unipotsdam.gf.core.management.user.User;
 import unipotsdam.gf.interfaces.IPeerAssessment;
 import unipotsdam.gf.modules.assessment.controller.model.*;
+import unipotsdam.gf.core.database.mysql.MysqlConnect;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -12,8 +15,13 @@ public class PeerAssessment implements IPeerAssessment {
 
     }
 
-    @Override
-    public Quiz getQuiz(String projectId, String groupId) {
+    @Override//returns one quiz
+    public Quiz getQuiz(String projectId, String quizId) {
+        return new ManagementImpl().getQuizByProjectGroupId(projectId,quizId);
+    }
+
+    @Override //returns all quizzes in the course
+    public ArrayList<Quiz> getQuiz(String projectId) {
         return null;
     }
 
@@ -42,13 +50,10 @@ public class PeerAssessment implements IPeerAssessment {
         return 0;
     }
 
-    @Override
-    public ArrayList<Quiz> getQuiz(String projectId) {
-        return null;
-    }
+
 
     @Override
-    public void postPeerRating(String projectId, String groupId, ArrayList<PeerRating> peerRatings) {
+    public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId) {
 
     }
 }
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 6d7e933916299299ee0c696da4ec8b372bf18848..35920c8470ac2a075579c14183cbd7fa89818e52 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
@@ -14,43 +14,54 @@ public class PeerAssessmentDummy implements IPeerAssessment {
 
     @Override
     public Quiz getQuiz(String projectId, String quizId) {
-        String[] correctAnswers = new String[2];
+        ArrayList<String> correctAnswers = new ArrayList<String>();
+        ArrayList<String> incorrectAnswers = new ArrayList<String>();
         Quiz sampleQuiz;
         if (quizId.equals("2")) {
-            correctAnswers[0] = "42";
-            correctAnswers[1] = "" + projectId + " " + quizId;
-            String[] wrongAnswers = {"a god created creature", "a sum of my mistakes"};
-            sampleQuiz = new Quiz("multiple", "Who am I and if so, how many?", correctAnswers, wrongAnswers);
+            correctAnswers.add("42");
+            correctAnswers.add("" + projectId + " " + quizId);
+
+            incorrectAnswers.add("a god created creature");
+            incorrectAnswers.add( "a sum of my mistakes");
+            sampleQuiz = new Quiz("multiple", "Who am I and if so, how many?", correctAnswers, incorrectAnswers);
         } else {
-            correctAnswers[0] = "ja, nicht?!";
-            correctAnswers[1] = "nee, oder doch?!";
-            String[] wrongAnswers = {"Mephistopheles", "Der alte Hexenmeister!?", "Der Schimmelreiter", "alle beide"};
-            sampleQuiz = new Quiz("multiple", "Ist das nun des Pudels wahrer Kern?", correctAnswers, wrongAnswers);
+            correctAnswers.add("ja, nicht?!");
+            correctAnswers.add("nee, oder doch?!");
+            incorrectAnswers.add("Mephistopheles");
+            incorrectAnswers.add("Der alte Hexenmeister!?");
+            incorrectAnswers.add("Der Schimmelreiter");
+            incorrectAnswers.add("alle beide");
+            sampleQuiz = new Quiz("multiple", "Ist das nun des Pudels wahrer Kern?", correctAnswers, incorrectAnswers);
         }
 
         return sampleQuiz;
     }
 
     public ArrayList<Quiz> getQuiz(String projectId) {
-        String[] correctAnswers1 = new String[2];
+        ArrayList<String> correctAnswers = new ArrayList<String>();
+        ArrayList<String> incorrectAnswers = new ArrayList<String>();
         ArrayList<Quiz> sampleQuiz = new ArrayList<Quiz>();
-        correctAnswers1[0] = "42";
-        correctAnswers1[1] = "" + projectId + " 24";
-        String[] wrongAnswers = {"a god created creature", "a sum of my mistakes"};
-        sampleQuiz.add(new Quiz("multiple", "Who am I and if so, how many?", correctAnswers1, wrongAnswers));
-
-        String[] correctAnswers2 = new String[2];
-        correctAnswers2[0] = "ja, nicht?!";
-        correctAnswers2[1] = "nee, oder doch?!";
-        wrongAnswers = new String[]{"Mephistopheles", "Der alte Hexenmeister!?", "Der Schimmelreiter", "alle beide"};
-        sampleQuiz.add(new Quiz("multiple", "Ist das nun des Pudels wahrer Kern?", correctAnswers2, wrongAnswers));
+        correctAnswers.add("42");
+        correctAnswers.add("" + projectId + " 24");
+        incorrectAnswers.add("a god created creature");
+        incorrectAnswers.add( "a sum of my mistakes");
+        sampleQuiz.add(new Quiz("multiple", "Who am I and if so, how many?", correctAnswers, incorrectAnswers));
+        correctAnswers.clear();
+        incorrectAnswers.clear();
+        correctAnswers.add("ja, nicht?!");
+        correctAnswers.add("nee, oder doch?!");
+        incorrectAnswers.add("Mephistopheles");
+        incorrectAnswers.add("Der alte Hexenmeister!?");
+        incorrectAnswers.add("Der Schimmelreiter");
+        incorrectAnswers.add("alle beide");
+        sampleQuiz.add(new Quiz("multiple", "Ist das nun des Pudels wahrer Kern?", correctAnswers, incorrectAnswers));
 
         return sampleQuiz;
 }
 
     @Override
-    public void postPeerRating(String projectId, String groupId, ArrayList<PeerRating> peerRatings) {
-        int breakpoint = 0;
+    public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId) {
+        int breakpoint = 0; //todo: print an http-answer for the ajax-request to receive
     }
 
     @Override
@@ -68,17 +79,17 @@ public class PeerAssessmentDummy implements IPeerAssessment {
 
     @Override
     public List<Grading> calculateAssessment(ArrayList<Performance> totalPerformance) {
-        double[] allAssessements = new double[totalPerformance.size()];
+        double[] allAssessments = new double[totalPerformance.size()];
         Grading[] grading = new Grading[totalPerformance.size()];
 
         for (int i = 0; i < totalPerformance.size(); i++) {
             for (int j = 0; j < totalPerformance.get(i).getQuizAnswer().length; j++) {
-                allAssessements[i] += totalPerformance.get(i).getQuizAnswer()[j];
+                allAssessments[i] += totalPerformance.get(i).getQuizAnswer()[j];
             }
-            allAssessements[i] = allAssessements[i] / totalPerformance.get(i).getQuizAnswer().length;
+            allAssessments[i] = allAssessments[i] / totalPerformance.get(i).getQuizAnswer().length;
         }
         for (int i = 0; i < totalPerformance.size(); i++) {
-            Grading shuttle = new Grading(totalPerformance.get(i).getStudentIdentifier(), allAssessements[i]);
+            Grading shuttle = new Grading(totalPerformance.get(i).getStudentIdentifier(), allAssessments[i]);
             grading[i] = shuttle;
         }
         return Arrays.asList(grading);
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 ba71e076fd48efce2dd0ba5231f62994cf1962e7..cab554f4d68d1ead2b6447697eee36d1a2add6be 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
@@ -3,6 +3,7 @@ package unipotsdam.gf.modules.assessment.controller.view;
 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.PeerAssessment;
 import unipotsdam.gf.modules.assessment.controller.service.PeerAssessmentDummy;
 
 import javax.ws.rs.*;
@@ -12,7 +13,8 @@ import java.util.List;
 
 @Path("/assessments")
 public class QuizView implements IPeerAssessment {
-    private static IPeerAssessment peer =  new PeerAssessmentDummy();
+    private static IPeerAssessment peer =  new PeerAssessmentDummy();   //TestSubject
+    //private static IPeerAssessment peer =  new PeerAssessment();      //correct DB-conn and stuff
     @GET
     @Produces(MediaType.APPLICATION_JSON)
     @Path("/project/{projectId}/quiz/{quizId}")
@@ -33,8 +35,9 @@ public class QuizView implements IPeerAssessment {
     @Consumes(MediaType.APPLICATION_JSON)
     @Path("/peer/project/{projectId}/group/{groupId}")
     @Override
-    public void postPeerRating(@PathParam("projectId") String projectId, @PathParam("groupId") String groupId, ArrayList<PeerRating> peerRatings){
-        peer.postPeerRating(projectId,groupId,peerRatings);
+    public void postPeerRating(ArrayList<PeerRating> peerRatings,@PathParam("projectId") String projectId, @PathParam("groupId") String groupId){
+        peer.postPeerRating(peerRatings, projectId,groupId);
+        //todo: checkout the POST-variable. should be peerRating but its null atm.
     }
 
     @POST
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationDummyService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationDummyService.java
index 3d989429228f1c213263794b0df7c741f87507cb..c9c17f71e19cf357b9b0703df97d89b93621cdba 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationDummyService.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationDummyService.java
@@ -2,6 +2,7 @@ package unipotsdam.gf.modules.communication.service;
 
 import unipotsdam.gf.config.Constants;
 import unipotsdam.gf.core.management.Management;
+import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.core.management.user.User;
 import unipotsdam.gf.interfaces.ICommunication;
 import unipotsdam.gf.modules.communication.model.Message;
@@ -100,6 +101,18 @@ public class CommunicationDummyService implements ICommunication {
         return Constants.ROCKET_CHAT_URL + "/channel/" + channelName + "?layout=embedded";
     }
 
+    @Override
+    public void sendSingleMessage(Message message, User user) {
+        // TODO implement as email or directed message, popup after login or whatever
+        System.out.println("sending email with message: "+ message.getMessage() + " to: "+ user.getEmail());
+    }
+
+    @Override
+    public void sendMessageToUsers(Project project, String message) {
+        // TODO implement as email or directed message, popup after login or whatever
+        System.out.println("sending email with message: "+ message + " to: "+ project.getId());
+    }
+
     // TODO: remove after done implementing
     // just for postman testing
     public User getUser() {
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/DummyJournalImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/DummyJournalImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..469ac93850bbde4ece18e5e03a7a524636e8a4fc
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/DummyJournalImpl.java
@@ -0,0 +1,33 @@
+package unipotsdam.gf.modules.journal;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import unipotsdam.gf.core.management.project.Project;
+import unipotsdam.gf.interfaces.IJournal;
+import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
+import unipotsdam.gf.modules.journal.service.DummyJournalService;
+
+public class DummyJournalImpl implements IJournal {
+
+
+    private Logger log = LoggerFactory.getLogger(DummyJournalImpl.class);
+
+    @Override
+    public String exportJournal(StudentIdentifier student) {
+        // TODO Impl was macht das hier?
+
+        return null;
+    }
+
+    @Override
+    public Boolean getPortfoliosForEvaluationPrepared(Project project) {
+
+        log.debug("checking fake constraints for the portfolio evaluation");
+        return false;
+    }
+
+    @Override
+    public void assignMissingPortfolioTasks(Project project) {
+        log.debug("assigning fake MissingPortfolioTasks");
+    }
+}
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
new file mode 100644
index 0000000000000000000000000000000000000000..16d31e35a5dce1f97d2d4d63c9f027b7a9f27076
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java
@@ -0,0 +1,117 @@
+package unipotsdam.gf.modules.journal.model;
+
+
+import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
+
+import static unipotsdam.gf.view.MarkdownUtils.convertMarkdownToHtml;
+
+/**
+ * Model Class for the learnig journal of the e-portfolio
+ */
+public class Journal {
+
+    private long id;
+    private StudentIdentifier studentIdentifier;
+    private String creator;
+    private String entryHTML;
+    private String entryMD;
+    private long timestamp;
+    private Visibility visibility;
+    private String category;//TODO enum
+
+    public Journal() {}
+
+    public Journal(long id, StudentIdentifier studentIdentifier, String entry, long timestamp, Visibility visibility, String category) {
+        this.id = id;
+        this.studentIdentifier = studentIdentifier;
+        // TODO setName per StudentID
+        this.entryHTML = convertMarkdownToHtml(entry);
+        this.entryMD = entry;
+        this.timestamp = timestamp;
+        this.visibility = visibility;
+        this.category = category;
+    }
+
+    public void setEntry(String entry){
+        this.entryMD = entry;
+        this.entryHTML = convertMarkdownToHtml(entry);
+    }
+
+
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public StudentIdentifier getStudentIdentifier() {
+        return studentIdentifier;
+    }
+
+    public void setStudentIdentifier(StudentIdentifier studentIdentifier) {
+        this.studentIdentifier = studentIdentifier;
+    }
+
+    public String getEntryHTML() {
+        return entryHTML;
+    }
+
+    public void setEntryHTML(String entryHTML) {
+        this.entryHTML = entryHTML;
+    }
+
+    public long getTimestamp() {
+        return timestamp;
+    }
+
+    public void setTimestamp(long timestamp) {
+        this.timestamp = timestamp;
+    }
+
+    public Visibility getVisibility() {
+        return visibility;
+    }
+
+    public void setVisibility(Visibility visibility) {
+        this.visibility = visibility;
+    }
+
+    public String getCategory() {
+        return category;
+    }
+
+    public void setCategory(String category) {
+        this.category = category;
+    }
+
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+
+    public String getEntryMD() {
+        return entryMD;
+    }
+
+    public void setEntryMD(String entryMD) {
+        this.entryMD = entryMD;
+    }
+
+    @Override
+    public String toString() {
+        return "Journal{" +
+                "id=" + id +
+                ", studentIdentifier=" + studentIdentifier +
+                ", creator='" + creator + '\'' +
+                ", entryHTML='" + entryHTML + '\'' +
+                ", timestamp=" + timestamp +
+                ", visibility=" + visibility +
+                ", category='" + category + '\'' +
+                '}';
+    }
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/JournalFilter.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/JournalFilter.java
new file mode 100644
index 0000000000000000000000000000000000000000..07fd1274e0420554670449b108225b4697c198f5
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/JournalFilter.java
@@ -0,0 +1,6 @@
+package unipotsdam.gf.modules.journal.model;
+
+public enum JournalFilter {
+
+    ALL,OWN
+}
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
new file mode 100644
index 0000000000000000000000000000000000000000..51f14b21ca29e9e0afb414aaf8fd9250de22b3c9
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescription.java
@@ -0,0 +1,133 @@
+package unipotsdam.gf.modules.journal.model;
+
+import unipotsdam.gf.core.management.project.Project;
+
+import java.util.ArrayList;
+import java.util.Map;
+
+import static unipotsdam.gf.view.MarkdownUtils.convertMarkdownToHtml;
+
+/**
+ * Model class for the project descriptionHTML of the e portfolio
+ */
+
+public class ProjectDescription {
+
+    private long id;
+    private String name;
+    private String descriptionHTML;
+    private String descriptionMD;
+    private boolean open;
+    private Project project;
+    private Map<String,String> links;
+    private ArrayList<String> group;
+    private long timestamp;
+
+    public ProjectDescription() {
+    }
+
+    public ProjectDescription(long id, String name, String description, Project project, Map<String, String> links, ArrayList<String> group, long timestamp) {
+        this.id = id;
+        this.name = name;
+        this.descriptionHTML = convertMarkdownToHtml(description);
+        this.descriptionMD =description;
+        this.project = project;
+        this.links = links;
+        this.group = group;
+        this.timestamp = timestamp;
+        this.open =true;
+    }
+
+    public void setDescription (String description){
+        this.descriptionMD = description;
+        this.descriptionHTML = convertMarkdownToHtml(description);
+    }
+
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getDescriptionHTML() {
+        return descriptionHTML;
+    }
+
+    public void setDescriptionHTML(String descriptionHTML) {
+        this.descriptionHTML = descriptionHTML;
+    }
+
+    public Project getProject() {
+        return project;
+    }
+
+    public void setProject(Project project) {
+        this.project = project;
+    }
+
+    public Map<String, String> getLinks() {
+        return links;
+    }
+
+    public void setLinks(Map<String, String> links) {
+        this.links = links;
+    }
+
+    public ArrayList<String> getGroup() {
+        return group;
+    }
+
+    public void setGroup(ArrayList<String> group) {
+        this.group = group;
+    }
+
+    public long getTimestamp() {
+        return timestamp;
+    }
+
+    public void setTimestamp(long timestamp) {
+        this.timestamp = timestamp;
+    }
+
+    public boolean isOpen() {
+        return open;
+    }
+
+    public void setOpen(boolean open) {
+        this.open = open;
+    }
+
+    public String getDescriptionMD() {
+        return descriptionMD;
+    }
+
+    public void setDescriptionMD(String descriptionMD) {
+        this.descriptionMD = descriptionMD;
+    }
+
+
+    @Override
+    public String toString() {
+        return "ProjectDescription{" +
+                "id=" + id +
+                ", name='" + name + '\'' +
+                ", descriptionHTML='" + descriptionHTML + '\'' +
+                ", descriptionMD='" + descriptionMD + '\'' +
+                ", open=" + open +
+                ", project=" + project +
+                ", links=" + links +
+                ", group=" + group +
+                ", timestamp=" + timestamp +
+                '}';
+    }
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Visibility.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Visibility.java
new file mode 100644
index 0000000000000000000000000000000000000000..ce31ce305802ac036a27a2d452ee86926aac472f
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Visibility.java
@@ -0,0 +1,4 @@
+package unipotsdam.gf.modules.journal.model;
+
+public enum Visibility { ALL, GROUP, DOZENT, MINE
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyJournalService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyJournalService.java
new file mode 100644
index 0000000000000000000000000000000000000000..d005bbd9dd17092bd316eea835c49ce5f8c66661
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyJournalService.java
@@ -0,0 +1,159 @@
+package unipotsdam.gf.modules.journal.service;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+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 java.util.ArrayList;
+import java.util.Calendar;
+
+/**
+ * Service Implementation to test rest, no Database operations
+ */
+
+public class DummyJournalService implements JournalService {
+
+    private Logger log = LoggerFactory.getLogger(DummyJournalService.class);
+
+
+    private Calendar cal = Calendar.getInstance();
+
+    private long id = 4;
+
+    private ArrayList<Journal> journals = new ArrayList<>();
+
+    public DummyJournalService(){
+
+        resetList();
+    }
+
+    @Override
+    public Journal getJournal(String id) {
+        for (Journal j : journals) {
+            if(j.getId() == Long.valueOf(id)){
+                return j;
+            }
+        }
+        return null;
+    }
+
+    @Override
+    public ArrayList<Journal> getAllJournals(String student, String project, JournalFilter filter) {
+        log.debug(">> get all journals(" + student  + "," + project + ","  + filter + ")");
+
+        ArrayList<Journal> result = new ArrayList<>();
+
+        for (Journal j: journals) {
+
+            //always show own Journals
+            if(j.getStudentIdentifier().getStudentId().equals(student)){
+                result.add(j);
+            }else{
+
+                // if Visibility All, show if Filter allows it
+                if (j.getVisibility() == Visibility.ALL && filter==JournalFilter.ALL){
+                    result.add(j);
+                }
+
+                //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);
+                }
+
+                //TODO if Dozent
+            }
+
+        }
+        log.debug("<< get all journals(" + student , "," + project + ")");
+
+        return result;
+    }
+
+    @Override
+    public ArrayList<Journal> getAllJournals(String student, String project) {
+        return getAllJournals(student,project,JournalFilter.ALL);
+     }
+
+    @Override
+    public boolean saveJournal(long id, String student, String project, String text, String visibility, String category) {
+        if (id == -1){
+
+            StudentIdentifier studentId = new StudentIdentifier(student,project);
+            journals.add(new Journal(this.id++, studentId, text , cal.getTimeInMillis(), stringToVisibility(visibility) , category));
+
+        } else {
+            for (Journal j : journals){
+                if(j.getId() == id){
+                    j.setEntry(text);
+                    j.setVisibility(stringToVisibility(visibility));
+                    j.setCategory(category);
+                }
+            }
+            resetList();
+        }
+        return true;
+    }
+
+    @Override
+    public boolean deleteJournal(long id) {
+        for (Journal j : journals) {
+            if (j.getId() == id) {
+                journals.remove(j);
+                return true;
+            }
+        }
+        return false;
+    }
+
+    @Override
+    public void closeJournal(String journal) {
+
+    }
+
+    private Visibility stringToVisibility(String visibility) {
+        // If String does not match enum IllegalArgumentException
+        Visibility v ;
+        try{
+            v = Visibility.valueOf(visibility);
+        }catch (IllegalArgumentException e){
+            v = Visibility.MINE;
+            log.debug("Illegal argument for visibility, default to MINE");
+        }
+        return v;
+    }
+
+    private void resetList() {
+
+        StudentIdentifier studentIdentifier = new StudentIdentifier("0","0");
+        StudentIdentifier studentIdentifier2 = new StudentIdentifier("0","1");
+
+        String test = "**nec** nec facilisis nibh, sed sagittis tortor. Suspendisse vel felis ac leo dignissim efficitur. Nunc non egestas eros, sit amet vestibulum nunc. Sed bibendum varius molestie. Proin augue mauris, mollis sed efficitur efficitur, sagittis quis eros. Praesent tincidunt tincidunt porttitor. Maecenas quis ornare tellus. Nunc euismod vestibulum neque, sed luctus neque convallis in. Duis molestie ex ut nunc dignissim condimentum ut vitae dui. Vestibulum diam lorem, eleifend sit amet lobortis nec, vulputate a leo. In nec ante felis. Maecenas interdum nunc et odio placerat fringilla. Aenean felis purus, mollis id lectus non, fringilla tincidunt mi. Nunc sed rutrum ex, vel tempus odio.";
+
+        Journal j1 = new Journal(0,studentIdentifier,test, cal.getTimeInMillis() , Visibility.ALL, "Recherche");
+        j1.setCreator("Test Test");
+        Journal j2 = new Journal(1,studentIdentifier,test, cal.getTimeInMillis() , Visibility.MINE, "Untersuchungskonzept");
+        j2.setCreator("Test Test");
+        Journal j3 = new Journal(2,studentIdentifier,test, cal.getTimeInMillis() , Visibility.GROUP, "Methodik");
+        j3.setCreator("Test Test");
+        Journal j4 = new Journal(3,studentIdentifier,test, cal.getTimeInMillis() , Visibility.DOZENT ,"Recherche");
+        j4.setCreator("Test Test");
+        Journal j5 = new Journal(4,studentIdentifier2,test, cal.getTimeInMillis() , Visibility.GROUP, "Durchführung");
+        j5.setCreator("ASD DSA");
+
+        journals = new ArrayList<>();
+
+        journals.add(j1);
+        journals.add(j2);
+        journals.add(j3);
+        journals.add(j4);
+        journals.add(j5);
+
+    }
+
+
+
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyProjectDescription.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyProjectDescription.java
new file mode 100644
index 0000000000000000000000000000000000000000..83d23f00d26a72cadeaecbd95f3b68d9d6d83704
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyProjectDescription.java
@@ -0,0 +1,63 @@
+package unipotsdam.gf.modules.journal.service;
+
+import unipotsdam.gf.core.management.project.Project;
+import unipotsdam.gf.modules.journal.model.ProjectDescription;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+
+public class DummyProjectDescription implements ProjectDescriptionService {
+
+    private ProjectDescription testProject;
+
+    public DummyProjectDescription(){
+
+        HashMap<String,String> link = new HashMap<>();
+        link.put("Test", "www.test.de");
+        link.put("Google", "www.google.de");
+
+        ArrayList<String> group = new ArrayList<>();
+        group.add("Test Person");
+        group.add("Person Test");
+
+        String desc = " *Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet* \n" +
+                "\n" +
+                "**Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.** \n" +
+                "\n" +
+                "![Bild](https://upload.wikimedia.org/wikipedia/commons/thumb/1/1c/FuBK_testcard_vectorized.svg/2000px-FuBK_testcard_vectorized.svg.png)\n" +
+                "\n" +
+                "Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. \n" +
+                "\n" +
+                "Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. ";
+
+        testProject = new ProjectDescription(0,"Eine kreative Ãœberschrift",desc, new Project(), link, group, new Date().getTime());
+    }
+
+
+    @Override
+    public ProjectDescription getProject(String project) {
+        return testProject;
+    }
+
+    @Override
+    public void saveProjectText(String text) {
+        testProject.setDescription(text);
+    }
+
+    @Override
+    public void addLink(String link, String name) {
+        //convert String to List
+        //setLinks
+    }
+
+    @Override
+    public void deleteLink(String link) {
+
+    }
+
+    @Override
+    public void closeDescription(String desc) {
+
+    }
+}
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
new file mode 100644
index 0000000000000000000000000000000000000000..c247215c82bb98e7f41d807fb22a8c9a2f87d360
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalService.java
@@ -0,0 +1,59 @@
+package unipotsdam.gf.modules.journal.service;
+
+import unipotsdam.gf.modules.journal.model.Journal;
+import unipotsdam.gf.modules.journal.model.JournalFilter;
+
+import java.util.ArrayList;
+
+/**
+ * Service for learning Journal
+ */
+
+public interface JournalService {
+
+    /**
+     * Returns a specific Journal
+     * @param id id of Journal
+     * @return JSON of Journal
+     */
+    Journal getJournal(String id);
+
+    /**
+     * Returns all Journals for a student, filtered whether only own or all Journals are requested
+     * @param student the requested student
+     * @param project the requested project
+     * @param filter OWN or ALL
+     * @return Json of all Journals
+     */
+    ArrayList<Journal> getAllJournals(String student, String project, JournalFilter filter);
+
+    /**
+     * Returns all Journals for a student
+     * @param student the requested student
+     * @param project the requested project
+     * @return Json of all Journals
+     */
+    ArrayList<Journal> getAllJournals(String student, String project);
+
+    /**
+     * Saves or edits a Journal
+     * @param id id, -1 if new Journal
+     * @param student owner of the Journal
+     * @param project associated Project
+     * @param text content of the Journal
+     * @param visibility visibility of the Journal
+     * @param category category of the Journal
+     * @return true if success
+     */
+     boolean saveJournal(long id, String student, String project, String text, String visibility, String category);
+
+    /**
+     * deletes a Journal
+     * @param id id of the Journal
+     * @return true if success
+     */
+     boolean deleteJournal(long id);
+
+
+    void closeJournal(String journal);
+}
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
new file mode 100644
index 0000000000000000000000000000000000000000..dfe3966fe100e53173466b5d66ecf2861d5d9e15
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionService.java
@@ -0,0 +1,21 @@
+package unipotsdam.gf.modules.journal.service;
+
+import unipotsdam.gf.modules.journal.model.ProjectDescription;
+
+/**
+ * Service for learning Journal
+ */
+
+public interface ProjectDescriptionService {
+
+
+    ProjectDescription getProject(String project);
+
+    void saveProjectText(String text);
+
+    void addLink(String link, String name);
+
+    void deleteLink(String link);
+
+    void closeDescription(String desc);
+}
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
new file mode 100644
index 0000000000000000000000000000000000000000..218ad0706a6b71c2ec61726f48034e9db002d39f
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/JournalView.java
@@ -0,0 +1,174 @@
+package unipotsdam.gf.modules.journal.view;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import unipotsdam.gf.modules.journal.model.Journal;
+import unipotsdam.gf.modules.journal.model.JournalFilter;
+import unipotsdam.gf.modules.journal.service.DummyJournalService;
+import unipotsdam.gf.modules.journal.service.JournalService;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+
+/**
+ * View for the learning journal
+ *
+ * TODO error handling, (maybe) method to change visibility
+ */
+
+@Path("/journal")
+public class JournalView {
+
+    private Logger log = LoggerFactory.getLogger(JournalView.class);
+    private JournalService journalService = new DummyJournalService();
+
+    /**
+     * Returns a specific Journal
+     * @param id id of Journal
+     * @return JSON of Journal
+     */
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    @Path("{id}")
+    public Response getJournal (@PathParam("id") String id){
+
+        log.debug(">>> getJournal: id=" + id );
+
+        Journal result = journalService.getJournal(id);
+
+        log.debug("<<< getJournal: result=" + result.toString());
+
+        return Response.ok(result).build();
+    }
+
+    /**
+     * Returns all Journals for a student, filtered whether only own or all Journals are requested
+     * @param student the requested student
+     * @param project the requested project
+     * @param filter OWN or ALL
+     * @return Json of all Journals
+     */
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    @Path("/journals/{student}/{project}/{filter}")
+    public Response getAllJournals (@PathParam("student") String student, @PathParam("project") String project, @PathParam("filter") String filter){
+
+        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);
+
+        log.debug(">>> getJournals: size=" + result.size());
+
+        return Response.ok(result).build();
+    }
+
+    /**
+     * Returns all Journals for a student
+     * @param student the requested student
+     * @param project the requested project
+     * @return Json of all Journals
+     */
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    @Path("/journals/{student}/{project}")
+    public Response getAllJournals (@PathParam("student") String student, @PathParam("project") String project){
+
+        log.debug(">>> getJournals: student=" + student + " project=" + project );
+
+        ArrayList<Journal> result = journalService.getAllJournals(student,project);
+
+        log.debug(">>> getJournals: size=" + result.size());
+
+        return Response.ok(result).build();
+    }
+
+    /**
+     * Saves or edits a Journal
+     * @param id id, -1 if new Journal
+     * @param student owner of the Journal
+     * @param project associated Project
+     * @param text content of the Journal
+     * @param visibility visibility of the Journal
+     * @param category category of the Journal
+     * @return Empty Response
+     */
+
+    @POST
+    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+    @Produces(MediaType.TEXT_PLAIN)
+    @Path("/save")
+    public Response saveJournal(@FormParam("id") long id, @FormParam("student") String student,
+                                @FormParam("project") String project, @FormParam("text") String text,
+                                @FormParam("visibility") String visibility, @FormParam("category") String category) {
+
+        log.debug(">>> saveJournal");
+
+        journalService.saveJournal(id, student, project, text, visibility, category);
+
+        //TODO token
+        URI location;
+        try {
+            location = new URI("../pages/eportfolio.jsp?token=test");
+            log.debug("<<< saveJournal: redirect to "  +location.toString());
+            return Response.temporaryRedirect(location).build();
+
+        } catch (URISyntaxException e) {
+            e.printStackTrace();
+            log.debug("saveJournal: redirect failed" );
+        }
+
+        log.debug("<<< saveJournal");
+
+        return Response.ok().build();
+
+    }
+
+    /**
+     * deletes a Journal
+     * @param id id of the Journal
+     * @return Empty Response
+     */
+
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    @Path("/delete/{id}")
+    public Response deleteJournal(@PathParam("id") long id) {
+
+        log.debug(">>> deleteJournal: id=" + id);
+
+        journalService.deleteJournal(id);
+
+        log.debug("<<< deleteJournal");
+
+        return Response.ok().build();
+    }
+
+    //close journal
+    @POST
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Path("/close")
+    public Response closeJournal(String journal){
+        log.debug(">>> closeJournal: " + journal);
+
+        journalService.closeJournal(journal);
+        //TODO token
+        try {
+            URI location = new URI("../pages/eportfolio.jsp?");
+            log.debug("<<< closeJournal: redirect to "  +location.toString());
+            return Response.temporaryRedirect(location).build();
+
+        } catch (URISyntaxException e) {
+            e.printStackTrace();
+            log.debug("closeJournal: redirect failed" );
+        }
+
+        log.debug("<<< closeJournal");
+        return Response.ok().build();
+    }
+
+}
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
new file mode 100644
index 0000000000000000000000000000000000000000..ba29c2592521befb9c182edad18ec13d0b10b288
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java
@@ -0,0 +1,138 @@
+package unipotsdam.gf.modules.journal.view;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import unipotsdam.gf.modules.journal.model.ProjectDescription;
+import unipotsdam.gf.modules.journal.service.DummyProjectDescription;
+import unipotsdam.gf.modules.journal.service.ProjectDescriptionService;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+/**
+ * View for the project description
+ *
+ * TODO error handling
+ */
+
+@Path("/projectdescription")
+public class ProjectDescriptionView {
+
+    private Logger log = LoggerFactory.getLogger(ProjectDescriptionView.class);
+    private ProjectDescriptionService descriptionService = new DummyProjectDescription();
+
+    //get Description
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    @Path("{project}")
+    public Response getProjectDescription(@PathParam("project") String project){
+        log.debug(">>> getProjectDescription: " + project);
+
+        ProjectDescription result = descriptionService.getProject(project);
+
+        log.debug(">>> getProjectDescription");
+        return Response.ok(result).build();
+    }
+
+    //save Description
+    @POST
+    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+    @Produces(MediaType.TEXT_PLAIN)
+    @Path("/saveText")
+    public Response saveProjectText(@FormParam("student")String student,@FormParam("project")String project,@FormParam("text")String text){
+        log.debug(">>> saveText: " + text);
+
+        descriptionService.saveProjectText(text);
+
+        //TODO token
+        try {
+            URI location = new URI("../pages/eportfolio.jsp?token=test");
+            log.debug("<<< saveText: redirect to "  +location.toString());
+            return Response.temporaryRedirect(location).build();
+
+        } catch (URISyntaxException e) {
+            e.printStackTrace();
+            log.debug("saveText: redirect failed" );
+        }
+
+        log.debug("<<< saveText");log.debug(">>> saveText");
+
+        return Response.ok().build();
+    }
+
+    //add Link
+    @POST
+    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+    @Path("/addLink")
+    public Response addLink(@FormParam("link") String link, @FormParam("name") String name){
+        log.debug(">>> addLink: " + name + ":" + link);
+
+        descriptionService.addLink(link, name );
+
+
+        try {
+            URI location = new URI("../pages/eportfolio.jsp");
+            log.debug("<<< addLink: redirect to "  +location.toString());
+            return Response.temporaryRedirect(location).build();
+
+        } catch (URISyntaxException e) {
+            e.printStackTrace();
+            log.debug("addLink: redirect failed" );
+        }
+
+        log.debug(">>> addLink");
+
+        return Response.ok().build();
+    }
+
+
+    //delete Link
+    @POST
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Path("/deleteLink")
+    public Response deleteLink(String link){
+        log.debug(">>> deleteLink: " + link);
+
+        descriptionService.deleteLink(link);
+        //TODO token
+        try {
+            URI location = new URI("../pages/eportfolio.jsp");
+            log.debug("<<< deleteLink: redirect to "  +location.toString());
+            return Response.temporaryRedirect(location).build();
+
+        } catch (URISyntaxException e) {
+            e.printStackTrace();
+            log.debug("deleteLink: redirect failed" );
+        }
+
+        log.debug("<<< deleteLink");
+        return Response.ok().build();
+    }
+
+    //close descr
+    @POST
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Path("/close")
+    public Response closeDescription(String desc){
+        log.debug(">>> closeDescription: " + desc);
+
+        descriptionService.closeDescription(desc);
+        //TODO token
+        try {
+            URI location = new URI("../pages/eportfolio.jsp");
+            log.debug("<<< closeDescription: redirect to "  +location.toString());
+            return Response.temporaryRedirect(location).build();
+
+        } catch (URISyntaxException e) {
+            e.printStackTrace();
+            log.debug("closeDescription: redirect failed" );
+        }
+
+        log.debug("<<< closeDescription");
+        return Response.ok().build();
+    }
+
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/utils/Category.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/Category.java
similarity index 82%
rename from gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/utils/Category.java
rename to gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/Category.java
index 0929f342834ff143da72c6ebfa74ee911138338e..d371d33983460d0893f9136329b8aea4f36f0379 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/utils/Category.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/Category.java
@@ -1,4 +1,4 @@
-package unipotsdam.gf.core.management.utils;
+package unipotsdam.gf.modules.peer2peerfeedback;
 
 /**
  Categories for feedback and documents
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/DummyFeedback.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/DummyFeedback.java
new file mode 100644
index 0000000000000000000000000000000000000000..a8a2d0d178ac2f5bd516b2e5a4a4d151c28f9c32
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/DummyFeedback.java
@@ -0,0 +1,43 @@
+package unipotsdam.gf.modules.peer2peerfeedback;
+
+import unipotsdam.gf.core.management.project.Project;
+import unipotsdam.gf.core.management.user.User;
+import unipotsdam.gf.interfaces.Feedback;
+
+import java.io.File;
+import java.util.ArrayList;
+
+public class DummyFeedback implements Feedback {
+    @Override
+    public Peer2PeerFeedback createPeer2PeerFeedbackmask(
+            User feedbackuser, User selectedstudent, File document) {
+        return null;
+    }
+
+    @Override
+    public Boolean giveFeedback(Peer2PeerFeedback feedback, File document) {
+        return null;
+    }
+
+    @Override
+    public ArrayList<Peer2PeerFeedback> showFeedback(User student) {
+        return null;
+    }
+
+    @Override
+    public int countFeedback(User student) {
+        return 0;
+    }
+
+    @Override
+    public Boolean checkFeedbackConstraints(Project project) {
+        // TODO implement cornstaints
+        System.out.println("Checking fake constraints");
+        return true;
+    }
+
+    @Override
+    public void assigningMissingFeedbackTasks(Project project) {
+        System.out.println("assigning fake tasks");
+    }
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/ExampleFeedback.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/ExampleFeedback.java
index bc040fad7ccfad8993d3a1f33ca2eebfbefb48a3..9b44f2d2e81a8ca1133da2917cfb47ba69bfdb7d 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/ExampleFeedback.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/ExampleFeedback.java
@@ -1,7 +1,6 @@
 package unipotsdam.gf.modules.peer2peerfeedback;
 
 import unipotsdam.gf.core.management.user.User;
-import unipotsdam.gf.core.management.utils.Category;
 
 import java.io.File;
 
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/Peer2PeerFeedback.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/Peer2PeerFeedback.java
index d68e106fb4c8d007e1d5b1a5a8c5e7eef4289487..55bd0e9dad14bc9e1954f223599ebdb4587f0dd6 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/Peer2PeerFeedback.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/Peer2PeerFeedback.java
@@ -1,7 +1,6 @@
 package unipotsdam.gf.modules.peer2peerfeedback;
 
 import unipotsdam.gf.core.management.user.User;
-import unipotsdam.gf.core.management.utils.Category;
 
 import java.io.File;
 
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/Bibliography.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/Bibliography.java
new file mode 100644
index 0000000000000000000000000000000000000000..0bacc005a1cbac915cd0fc5f4beeb31664a90cec
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/Bibliography.java
@@ -0,0 +1,4 @@
+package unipotsdam.gf.modules.researchreport;
+
+public class Bibliography {
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/ResearchQuestion.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/ResearchQuestion.java
new file mode 100644
index 0000000000000000000000000000000000000000..e61f025f056a69ea18659cb52b7151e01b951446
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/ResearchQuestion.java
@@ -0,0 +1,4 @@
+package unipotsdam.gf.modules.researchreport;
+
+public class ResearchQuestion {
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/ResearchReport.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/ResearchReport.java
new file mode 100644
index 0000000000000000000000000000000000000000..c90d34735321bcdeb5b81ecc16acf509529d9625
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/ResearchReport.java
@@ -0,0 +1,110 @@
+package unipotsdam.gf.modules.researchreport;
+
+import java.io.File;
+import java.util.List;
+public class ResearchReport {
+    // TODO add properties
+    private String title;
+    private ResearchQuestion researchQuestion;
+    private List<String> learningGoals;
+    private String method;
+    private String research;
+    private Bibliography bibliography;
+    private String researchResult;
+    private String evaluation;
+    private File picture;
+    private Timeplanning timeplan;
+
+    public ResearchReport(String title, ResearchQuestion researchQuestion, List<String> learningGoals, String method, String research, Bibliography bibliography, String researchResult, String evaluation, File picture, Timeplanning timeplan) {
+        this.title = title;
+        this.researchQuestion = researchQuestion;
+        this.learningGoals = learningGoals;
+        this.method = method;
+        this.research = research;
+        this.bibliography = bibliography;
+        this.researchResult = researchResult;
+        this.evaluation = evaluation;
+        this.picture = picture;
+        this.timeplan = timeplan;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public ResearchQuestion getResearchQuestion() {
+        return researchQuestion;
+    }
+
+    public void setResearchQuestion(ResearchQuestion researchQuestion) {
+        this.researchQuestion = researchQuestion;
+    }
+
+    public List<String> getLearningGoals() {
+        return learningGoals;
+    }
+
+    public void setLearningGoals(List<String> learningGoals) {
+        this.learningGoals = learningGoals;
+    }
+
+    public String getMethod() {
+        return method;
+    }
+
+    public void setMethod(String method) {
+        this.method = method;
+    }
+
+    public String getResearch() {
+        return research;
+    }
+
+    public void setResearch(String research) {
+        this.research = research;
+    }
+
+    public Bibliography getBibliography() {
+        return bibliography;
+    }
+
+    public void setBibliography(Bibliography bibliography) {
+        this.bibliography = bibliography;
+    }
+
+    public String getResearchResult() {
+        return researchResult;
+    }
+
+    public void setResearchResult(String researchResult) {
+        this.researchResult = researchResult;
+    }
+
+    public String getEvaluation() {
+        return evaluation;
+    }
+
+    public void setEvaluation(String evaluation) {
+        this.evaluation = evaluation;
+    }
+
+    public File getPicture() {
+        return picture;
+    }
+
+    public void setPicture(File picture) {
+        this.picture = picture;
+    }
+
+    public Timeplanning getTimeplan() {
+        return timeplan;
+    }
+
+    public void setTimeplan(Timeplanning timeplan) {
+        this.timeplan = timeplan;
+    }
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ResearchReport.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/ResearchReportManagement.java
similarity index 78%
rename from gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ResearchReport.java
rename to gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/ResearchReportManagement.java
index 4bb338e0f2c896bb167faf964eee6697620613c0..5355ab90768c8eadfc0800c2553dd70a483f5324 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ResearchReport.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/ResearchReportManagement.java
@@ -1,6 +1,6 @@
-package unipotsdam.gf.interfaces;
+package unipotsdam.gf.modules.researchreport;
 
-import java.io.File;
+import unipotsdam.gf.modules.researchreport.ResearchReport;
 
 import java.io.File;
 
@@ -9,7 +9,7 @@ import java.io.File;
  */
 
 
-public interface ResearchReport {
+public interface ResearchReportManagement {
 
     /**
      * Create a File
@@ -17,7 +17,7 @@ public interface ResearchReport {
      * @param researchReport Name of the Report
      * @return Returns the reportId
      */
-    String createReseachReport(ResearchReport researchReport);
+    String createResearchReport(ResearchReport researchReport);
 
 
     /**
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/Timeplanning.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/Timeplanning.java
new file mode 100644
index 0000000000000000000000000000000000000000..f1ef159bf9bcf9929d02219b5bf660812e2d674f
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/Timeplanning.java
@@ -0,0 +1,4 @@
+package unipotsdam.gf.modules.researchreport;
+
+public class Timeplanning {
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/view/MarkdownUtils.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/view/MarkdownUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..9f626e2ccbeb9b48b003a00e4ea7dd62b04345a1
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/view/MarkdownUtils.java
@@ -0,0 +1,25 @@
+package unipotsdam.gf.view;
+
+import org.commonmark.node.Node;
+import org.commonmark.parser.Parser;
+import org.commonmark.renderer.html.HtmlRenderer;
+
+/**
+ * Utility class to convert markdown to html and back
+ */
+
+public class MarkdownUtils {
+
+    /**
+     * Converts a markdown text to html
+     * @param markdown markdown text
+     * @return html text
+     */
+    public static String convertMarkdownToHtml(String markdown){
+        Parser parser = Parser.builder().build();
+        Node document = parser.parse(markdown);
+        HtmlRenderer renderer = HtmlRenderer.builder().build();
+        return renderer.render(document);
+    }
+
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/view/Messages.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/view/Messages.java
new file mode 100644
index 0000000000000000000000000000000000000000..986c7d741e87d479673663e4afccd5d685bc2249
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/view/Messages.java
@@ -0,0 +1,20 @@
+package unipotsdam.gf.view;
+
+import unipotsdam.gf.core.management.project.Project;
+
+public class Messages {
+    public static String GroupFormation(Project project){
+        // TODO add link to site + markup
+        return "Die Gruppen wurden für den Kurs "+ project.getId() + " erstellt";
+    }
+
+    public static String NewFeedbackTask(Project project) {
+        // TODO add link to site + markup
+        return "Eine neue Feedbackaufgabe wurde für den Kurs "+ project.getId() + " erstellt";
+    }
+
+    public static String AssessmentPhaseStarted(Project project) {
+        // TODO add link to site + markup
+        return "Die Bewertungsphase hat begonnen. Bitte geht auf ... und macht ....";
+    }
+}
diff --git a/gemeinsamforschen/src/main/resources/log4j2.xml b/gemeinsamforschen/src/main/resources/log4j2.xml
index fccc9f408e851d4bf039588024aba0cea9771354..44a5bde6b293c2233cb735339118c356d16db9dc 100644
--- a/gemeinsamforschen/src/main/resources/log4j2.xml
+++ b/gemeinsamforschen/src/main/resources/log4j2.xml
@@ -6,7 +6,7 @@
         </Console>
     </Appenders>
     <Loggers>
-        <Root level="info">
+        <Root level="debug">
             <AppenderRef ref="Console"/>
         </Root>
     </Loggers>
diff --git a/gemeinsamforschen/src/main/webapp/assets/css/annotationStyle.css b/gemeinsamforschen/src/main/webapp/assets/css/annotationStyle.css
new file mode 100644
index 0000000000000000000000000000000000000000..b69d4dc4cf8a2fd900e7ad1debdf79650ce9f2d2
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/css/annotationStyle.css
@@ -0,0 +1,154 @@
+body, html {
+    height: 100vh;
+    width: 100vw;
+}
+ol {
+    padding: 0px;
+    margin: 0px;
+    list-style-type: none;
+}
+.content-mainpage {
+    display: flex;
+    box-sizing: border-box;
+    font-family: Arial;
+    height: 100%;
+    overflow-y: hidden;
+}
+.rightcolumn {
+    float: right;
+    width: 25%;
+    display: inline-block;
+    overflow: scroll;
+    /* background-color: blue; */
+}
+.leftcolumn {
+    padding: 10px;
+    float: left;
+    width: 75%;
+    display: inline-block;
+    /* background-color: yellow; */
+}
+.rightcontent {
+    margin: 10px;
+}
+.leftcontent {
+    max-height: 100%;
+    display: flex;
+    flex-flow: column;
+    /* background-color: white; */
+}
+.spacing {
+    height: 10px;
+    /* background-color: orange; */
+}
+
+.annotation-card {
+    width: 100%;
+    box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);
+    transition: 0.3s;
+    border-radius: 5px;
+    display: inline-block;
+    background-color: white;
+}
+.annotation-card:hover {
+    box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2);
+}
+.annotation-header {
+    padding: 5px;
+    display: flex;
+    flex-wrap: wrap;
+    align-items: center;
+    border-top-right-radius: 5px;
+    border-top-left-radius: 5px;
+    color: white;			}
+.annotation-header i {
+    font-size: 11px;
+}
+.annotation-header span {
+    font-size: 11px;
+    margin-left: 5px;
+    margin-right: 5px;
+}
+.annotation-header a:link {
+    color: white;
+    text-decoration: none;
+}
+.annotation-header a:visited {
+    color: white;
+    text-decoration: none;
+}
+.annotation-header a:active {
+    color: white;
+    text-decoration: none;
+}
+.annotation-header a:hover {
+    color: #e6e6e6;
+    text-decoration: none;
+}
+.annotation-header-title {
+    display: flex;
+    flex-flow: column;
+    width: calc(100% - 40px);
+}
+.annotation-header-toggle {
+    height: 40px;
+    width: 40px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    cursor: pointer;
+}
+.annotation-body {
+    padding: 8px;
+    border-bottom-right-radius: 5px;
+    border-bottom-left-radius: 5px;
+}
+.annotation-body p {
+    margin: 0px;
+    font-size: 13px;
+}
+.overflow-hidden {
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+}
+.annotation-footer {
+    padding: 5px;
+    padding-top: 0px;
+    text-align: right;
+    font-size: 9px;
+    color: lightgrey;
+    display: flex;
+}
+.annotation-footer span {
+    margin-left: 5px;
+}
+.annotation-footer-delete {
+    margin-right: 5px;
+    cursor: pointer;
+}
+.flex-one {
+    flex: 1
+}
+.container-fluid-content {
+    display: flex;
+    flex-flow: column;
+    height: 100%;
+}
+.flex {
+    display: flex;
+}
+.full-height {
+    height: 100%;
+}
+.leftcontent-buttons-next {
+    float: right;
+    margin: 20px;
+}
+.leftcontent-text {
+    overflow: scroll;
+}
+.resize-vertical {
+    resize: vertical;
+}
+
diff --git a/gemeinsamforschen/src/main/webapp/assets/css/create-journal.css b/gemeinsamforschen/src/main/webapp/assets/css/create-journal.css
new file mode 100644
index 0000000000000000000000000000000000000000..1dd6779c31e8b87cacda2f728638f7d1bca4ddb0
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/css/create-journal.css
@@ -0,0 +1,27 @@
+.journal-form-container {
+	display: grid;
+	grid-gap:  10px;
+	grid-template-columns: 1fr 1fr 1fr;
+	grid-template-areas:
+	"visibility category ..."
+	"editor editor editor"
+	"buttons ... ...."
+	;
+} 
+
+.journal-form-visibility{
+	grid-area: visibility;
+}
+
+.journal-form-category{
+	grid-area: category;
+}
+
+.journal-form-editor{
+	grid-area: editor;
+}
+
+.journal-form-buttons{
+	grid-area: buttons;
+}
+
diff --git a/gemeinsamforschen/src/main/webapp/assets/css/e-portfolio.css b/gemeinsamforschen/src/main/webapp/assets/css/e-portfolio.css
new file mode 100644
index 0000000000000000000000000000000000000000..c987b53b4701008b110f05cfe674ae9fc5d02f15
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/css/e-portfolio.css
@@ -0,0 +1,64 @@
+.journal-description-container{
+    display: grid;
+    grid-gap: 10px;
+    grid-template-columns: 2fr 1fr 15%;
+    grid-template-areas:
+            "title edit group"
+            "text text links"
+            "text text ..."
+;
+}
+
+.journal-description-title{
+    grid-area:title;
+}
+
+.journal-description-edit{
+    grid-area:edit;
+}
+
+.journal-description-group{
+    grid-area:group;
+}
+
+.journal-description-text{
+    grid-area:text;
+}
+
+.journal-description-links{
+    grid-area:links;
+}
+
+.journal-container{
+    display: grid;
+    grid-gap: 10px;
+    grid-template-columns: 1fr 1fr 2fr 2fr 15%;
+    grid-template-areas:
+    "name date category edit ..."
+    "avatar text text text ..."
+    ;
+}
+
+.journal-name{
+    grid-area:name;
+}
+
+.journal-date{
+    grid-area:date;
+}
+
+.journal-category{
+    grid-area:category;
+}
+
+.journal-edit{
+    grid-area:edit;
+}
+
+.journal-avatar{
+    grid-area:avatar;
+}
+
+.journal-text{
+    grid-area:text;
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/css/editDescription.css b/gemeinsamforschen/src/main/webapp/assets/css/editDescription.css
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/gemeinsamforschen/src/main/webapp/assets/css/footer.css b/gemeinsamforschen/src/main/webapp/assets/css/footer.css
new file mode 100644
index 0000000000000000000000000000000000000000..2e2c0e2201dbb15067036094d7b3347845b22d96
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/css/footer.css
@@ -0,0 +1,43 @@
+.pg-rest{
+    background:#DDDDDD;
+}
+
+.pg-enrollment {
+    background: #777777;
+    width:5%;
+}
+
+.pg-groups {
+    background: #AAAA77;
+    width:15%;
+}
+
+.pg-dossier {
+    background: #AA77AA;
+    width:30%;
+}
+
+.pg-feedback {
+    background: #77AAAA;
+    width:45%;
+}
+
+.pg-reflection {
+    background: #55AA55;
+    width:60%;
+}
+
+.pg-presentation {
+    background: #5555AA;
+    width:70%;
+}
+
+.pg-assessment {
+    background: #AA5555;
+    width:85%;
+}
+
+.pg-done {
+    background: #34DD44;
+    width:100%;
+}
diff --git a/gemeinsamforschen/src/main/webapp/assets/css/researchReport.css b/gemeinsamforschen/src/main/webapp/assets/css/researchReport.css
new file mode 100644
index 0000000000000000000000000000000000000000..bd132c97584a6d2df270969e785a565d28f9c3d6
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/css/researchReport.css
@@ -0,0 +1,182 @@
+/*
+html, body
+    width: 100%
+    height: 100%
+    margin: 0
+    padding: 0
+    font-size: 10px
+    font-family: 'Roboto', sans-serif
+    background-color: gray
+
+.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
+            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 {
+  width: 100%;
+  height: 100%;
+  margin: 0;
+  padding: 0;
+  font-size: 10px;
+  font-family: "Roboto", sans-serif;
+  background-color: gray;
+}
+
+.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;
+}
+.researchReportMenu nav 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;
+}
+.researchReportEditor .editor-inhalt {
+  margin: 6rem;
+  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;
+}
+.researchReportProgress nav {
+  font-size: 1.5rem;
+}
+.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/styles.css b/gemeinsamforschen/src/main/webapp/assets/css/styles.css
index b4a3cba5eaa0697dd95ceb3a0436550950ed4f1c..fffdfbf285b9cafc55d919ae1328ecfe7aa31cfb 100644
--- a/gemeinsamforschen/src/main/webapp/assets/css/styles.css
+++ b/gemeinsamforschen/src/main/webapp/assets/css/styles.css
@@ -5,6 +5,10 @@
     opacity: 0;
 }
 
+tr .pageChanger{
+    cursor:pointer;
+}
+
 .loader {
     display: block;
     margin-left: 470px;
diff --git a/gemeinsamforschen/src/main/webapp/assets/css/upload-unstructured.css b/gemeinsamforschen/src/main/webapp/assets/css/upload-unstructured.css
new file mode 100644
index 0000000000000000000000000000000000000000..16ff7e4ce9ecbb4d462b22445ac2bbe064279705
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/css/upload-unstructured.css
@@ -0,0 +1,143 @@
+ol {
+    padding: 0px;
+    margin: 0px;
+    list-style-type: none;
+}
+.mainpage {
+    display: flex;
+    box-sizing: border-box;
+    font-family: Arial;
+    height: 100%;
+}
+.rightcolumn {
+    float: right;
+    width: 25%;
+    display: inline-block;
+    /* background-color: blue; */
+}
+.leftcolumn {
+    float: left;
+    width: 75%;
+    display: inline-block;
+    /* background-color: yellow; */
+}
+.rightcontent {
+    margin: 10px;
+}
+.leftcontent {
+    margin: 10px;
+    /* background-color: white; */
+}
+.spacing {
+    height: 10px;
+    /* background-color: orange; */
+}
+
+.annotation-card {
+    width: 100%;
+    box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);
+    transition: 0.3s;
+    border-radius: 5px;
+    display: inline-block;
+    background-color: white;
+}
+.annotation-card:hover {
+    box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2);
+}
+.annotation-header {
+    padding: 5px;
+    display: flex;
+    flex-wrap: wrap;
+    align-items: center;
+    border-top-right-radius: 5px;
+    border-top-left-radius: 5px;
+    color: white;			}
+.annotation-header i {
+    font-size: 11px;
+}
+.annotation-header span {
+    font-size: 11px;
+    margin-left: 5px;
+    margin-right: 5px;
+}
+.annotation-header a:link {
+    color: white;
+    text-decoration: none;
+}
+.annotation-header a:visited {
+    color: white;
+    text-decoration: none;
+}
+.annotation-header a:active {
+    color: white;
+    text-decoration: none;
+}
+.annotation-header a:hover {
+    color: #e6e6e6;
+    text-decoration: none;
+}
+.annotation-header-title {
+    display: flex;
+    flex-flow: column;
+    width: calc(100% - 40px);
+}
+.annotation-header-toggle {
+    height: 40px;
+    width: 40px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    cursor: pointer;
+}
+.annotation-body {
+    padding: 8px;
+    border-bottom-right-radius: 5px;
+    border-bottom-left-radius: 5px;
+}
+.annotation-body p {
+    margin: 0px;
+    font-size: 13px;
+}
+.overflow-hidden {
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+}
+.annotation-footer {
+    padding: 5px;
+    padding-top: 0px;
+    text-align: right;
+    font-size: 9px;
+    color: lightgrey;
+    display: flex;
+}
+.annotation-footer span {
+    margin-left: 5px;
+}
+.annotation-footer-delete {
+    margin-right: 5px;
+    cursor: pointer;
+}
+.annotation-footer-date {
+    flex: 1
+}
+
+
+
+.unstructured-textarea {
+    resize: none;
+}
+.document-text-buttons {
+    margin-top: 10px;
+    display: inline;
+}
+.document-text-buttons-lock {
+    float: left;
+}
+.document-text-buttons-back {
+    float: left;
+}
+.document-text-buttons-save {
+    float: right;
+}
+
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/Quiz.js b/gemeinsamforschen/src/main/webapp/assets/js/Quiz.js
new file mode 100644
index 0000000000000000000000000000000000000000..afd43343d62eb5b43aa235ceb3c94683ede88baf
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/Quiz.js
@@ -0,0 +1,26 @@
+$(document).ready(function(){
+    $.ajax({
+        url: '../rest/assessments/project/1/quiz/',
+        type: 'GET',
+        success: function (data) {
+            var table = document.getElementById('myQuizzes');
+            for (var quiz = 0; quiz < data.length; quiz++){
+                var answers = data[quiz].correctAnswers.concat(data[quiz].incorrectAnswers);
+                var colspan = answers.length;
+                var trQuestion = document.createElement('TR');
+                trQuestion.className="pageChanger";
+                trQuestion.innerHTML = '<td colspan="' + colspan + '"><h3>' +
+                    '<a href="viewQuiz.jsp?token='+getUserTokenFromUrl()+'&quizId='+ encodeURI(data[quiz].question) + '"</a>' +
+                    data[quiz].question+'</h3></td>';
+                table.appendChild(trQuestion);
+            }
+        },
+        error: function (a, b, c) {
+            alert('Fehler ' + a);
+        }
+    });
+
+    $('#newQuiz').on('click', function(){
+        location.href="createQuiz.jsp?token="+getUserTokenFromUrl();
+    });
+});
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/annotationScript.js b/gemeinsamforschen/src/main/webapp/assets/js/annotationScript.js
new file mode 100644
index 0000000000000000000000000000000000000000..7ca850714f87359c130171de86eed305354b345e
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/annotationScript.js
@@ -0,0 +1,530 @@
+// initialize userToken, userColors and targetId
+var userToken = getUserTokenFromUrl();
+var userColors = new Map();
+var userColorsDark = new Map();
+var targetId = 200;
+
+// declare document text, start and end character
+var documentText, startCharacter, endCharacter;
+
+/**
+ * This function will fire when the DOM is ready
+ */
+$(document).ready(function() {
+
+    /**
+     * Context menu handler
+     */
+    $.contextMenu({
+        selector: '.context-menu-one',
+        callback: function(key, options) {
+
+            // action for 'annotation' click
+            if (key == 'annotation') {
+                // show modal if something is selected
+                if (getSelectedText().length > 0) {
+                    startCharacter = window.getSelection().getRangeAt(0).startOffset;
+                    endCharacter = window.getSelection().getRangeAt(0).endOffset;
+
+                    // display annotation create modal
+                    $('#annotation-create-modal').modal("show");
+                }
+            }
+
+        },
+        items: {
+            "annotation": {name: "Annotation", icon: "edit"}
+        }
+    });
+
+    /**
+     * continue button
+     */
+    $('#btnContinue').click(function () {
+        location.href="givefeedback.jsp?token=" + getUserTokenFromUrl();
+    });
+
+
+
+    /**
+     * validation of annotation create form inside the modal
+     */
+    $('#annotation-create-form').validate({
+        rules: {
+            title: {
+                required: true,
+                maxlength: 120
+            },
+            comment: {
+                required: true,
+                maxlength: 400
+            }
+        },
+        messages: {
+            title: {
+                required: "Ein Titel wird benötigt",
+                maxlength: "Maximal 120 Zeichen erlaubt"
+            },
+            comment: {
+                required: "Ein Kommentar wird benötigt",
+                maxlength: "Maximal 400 Zeichen erlaubt"
+            }
+        }
+    });
+
+    /**
+     * Save button of the annotation create modal
+     * hide modal and build new annotation
+     */
+    $('#btnSave').click(function () {
+        if ($('#annotation-create-form').valid()) {
+            // get title and comment from form
+            var title = $('#annotation-form-title').val();
+            var comment = $('#annotation-form-comment').val();
+
+            // hide and clear the modal
+            $('#annotation-create-modal').modal('hide');
+
+            // save the new annotation in db and display it
+            saveNewAnnotation(title, comment, startCharacter, endCharacter);
+        }
+    });
+
+    /**
+     * Clear the title and comment input field of the modal
+     */
+    $('#annotation-create-modal').on('hidden.bs.modal', function(){
+        // clear title
+        $('#annotation-form-title').val('');
+        // clear comment
+        $('#annotation-form-comment').val('')
+    });
+
+    documentText = $('#documentText').html();
+
+    // fetch annotations from server on page start
+    getAnnotations(targetId, function (response) {
+        // iterate over annotations and display each
+        $.each(response, function (i, annotation) {
+            displayAnnotation(annotation);
+        })
+    });
+
+});
+
+/**
+ * POST: Save an annotation in the database
+ *
+ * @param annotationPostRequest The post request
+ * @param responseHandler The response handler
+ */
+function createAnnotation(annotationPostRequest, responseHandler) {
+    var url = "../rest/annotations/";
+    var json = JSON.stringify(annotationPostRequest);
+    $.ajax({
+        url: url,
+        type: "POST",
+        data: json,
+        contentType: "application/json",
+        dataType: "json",
+        success: function (response) {
+            responseHandler(response);
+        }
+    });
+}
+
+/**
+ * PATCH: Alter an annotation in database
+ *
+ * @param id The annotation id
+ * @param annotationPatchRequest The patch request
+ * @param responseHandler The response handler
+ */
+function alterAnnotation(id, annotationPatchRequest, responseHandler) {
+    var url = "../rest/annotations/" + id;
+    var json = JSON.stringify(annotationPatchRequest);
+    $.ajax({
+        url: url,
+        type: "PATCH",
+        data: json,
+        contentType: "application/json",
+        dataType: "json",
+        success: function (response) {
+            responseHandler(response);
+        }
+    });
+}
+
+/**
+ * DELETE: Delete an annotation from database
+ *
+ * @param id The annotation id
+ */
+function deleteAnnotation(id) {
+    var url = "../rest/annotations/" + id;
+    $.ajax({
+        url: url,
+        type: "DELETE",
+        dataType: "json",
+        success: function (response) {
+            // Nothing to do
+        }
+    });
+}
+
+/**
+ * GET: Get all annotations from database for a specific target
+ *
+ *
+ * @param targetId The target id
+ * @param responseHandler The response handler
+ */
+function getAnnotations(targetId, responseHandler) {
+    var url = "../rest/annotations/target/" + targetId;
+    $.ajax({
+        url: url,
+        type: "GET",
+        dataType: "json",
+        success: function (response) {
+            // sort the responding annotations by timestamp (DESC)
+            response.sort(function (a, b) {
+                return a.timestamp - b.timestamp;
+            });
+            // handle the response
+            responseHandler(response);
+        }
+    });
+}
+
+/**
+ * Delete annotation from list
+ *
+ * @param elem The parent li element
+ * @param id The id of the annotation
+ */
+function deleteAnnotationHandler(elem, id) {
+    // remove annotation from list
+    elem.remove()
+    // remove highlighted text
+    deleteHighlightedText();
+    // remove annotation from database
+    deleteAnnotation(id)
+}
+
+/**
+ * Display annotation in the list
+ *
+ * @param annotation The annotation to be displayed
+ */
+function displayAnnotation(annotation) {
+    // fetch list of annotations
+    var list = $('#annotations')
+
+    var deleteIcon = "fas fa-trash";
+    var dateIcon = "fas fa-calendar";
+    if (isTimestampToday(annotation.timestamp)) {
+        dateIcon = "fas fa-clock";
+    }
+
+    // insert annotation card
+    list.prepend(
+        // list element
+        $('<li>')
+            .attr('class', 'listelement')
+            .append(
+                // annotation card
+                $('<div>').attr('class', 'annotation-card')
+                    .mouseenter(function () {
+                        $(this).children('.annotation-header').css('background-color', getDarkUserColor(annotation.userToken));
+                    })
+                    .mouseleave(function () {
+                        $(this).children('.annotation-header').css('background-color', getUserColor(annotation.userToken));
+                    })
+                    .append(
+                        // annotation header
+                        $('<div>').attr('class', 'annotation-header')
+                            .css('background-color', getUserColor(annotation.userToken))
+                            .append(
+                                // header data
+                                $('<div>').attr('class', 'annotation-header-title')
+                                    .append(
+                                        // user
+                                        $('<div>').attr('class', 'overflow-hidden')
+                                            .append(
+                                                $('<i>').attr('class', 'fas fa-user')
+                                            )
+                                            .append(
+                                                $('<span>').append(annotation.userToken)
+                                            )
+                                    )
+                                    .append(
+                                        // title
+                                        $('<div>').attr('class', 'overflow-hidden')
+                                            .append(
+                                                $('<i>').attr('class', 'fas fa-bookmark')
+                                            )
+                                            .append(
+                                                $('<span>').append(annotation.body.title)
+                                            )
+                                    )
+                            )
+                            .append(
+                                // unfold button
+                                $('<div>').attr('class', 'annotation-header-toggle')
+                                    .click(function () {
+                                        toggleButtonHandler($(this));
+                                    })
+                                    .append(
+                                        $('<i>').attr('class', 'fas fa-chevron-down')
+                                    )
+                            )
+                    )
+                    .append(
+                        // annotation body
+                        $('<div>').attr('class', 'annotation-body')
+                            .append(
+                                $('<p>').attr('class', 'overflow-hidden').append(annotation.body.comment)
+                            )
+                    )
+                    .append(
+                        // annotation footer
+                        $('<div>').attr('class', 'annotation-footer')
+                            .append(
+                                // delete
+                                function () {
+                                    if (userToken == annotation.userToken) {
+                                        return $('<div>').attr('class', 'annotation-footer-delete')
+                                            .append(
+                                                $('<i>').attr('class', deleteIcon)
+                                            )
+                                            .click(function () {
+                                                deleteAnnotationHandler($(this).closest('li'), annotation.id)
+                                            })
+                                    }
+                                }
+                            )
+                            .append(
+                                // timestamp
+                                $('<div>').attr('class', 'flex-one overflow-hidden')
+                                    .append(
+                                        $('<i>').attr('class', dateIcon)
+                                    )
+                                    .append(
+                                        $('<span>').append(timestampToReadableTime(annotation.timestamp))
+                                    )
+                            )
+
+
+                    )
+            )
+            .data('annotation', annotation)
+            .mouseenter(function () {
+                addHighlightedText(annotation.body.startCharacter, annotation.body.endCharacter, annotation.userToken);
+            })
+            .mouseleave(function () {
+                deleteHighlightedText();
+            })
+            .append(function () {
+                if ($('#annotations li').filter( ".listelement" ).length > 0) {
+                    return $('<div>').attr('class', 'spacing')
+                }
+            })
+    );
+}
+
+/**
+ * Add a highlighted text at specific position
+ *
+ * @param startCharacter The offset of the start character
+ * @param endCharacter The offset of the end character
+ * @param userToken The user token
+ */
+function addHighlightedText(startCharacter, endCharacter, userToken) {
+    // create <span> tag with the annotated text
+    var replacement = $('<span></span>').css('background-color', getUserColor(userToken)).html(documentText.slice(startCharacter, endCharacter));
+
+    // wrap an <p> tag around the replacement, get its parent (the <p>) and ask for the html
+    var replacementHtml = replacement.wrap('<p/>').parent().html();
+
+    // insert the replacementHtml
+    var newDocument = documentText.slice(0, startCharacter) + replacementHtml + documentText.slice(endCharacter);
+
+    // set new document text
+    $('#documentText').html(newDocument);
+}
+
+/**
+ * Restore the base text
+ */
+function deleteHighlightedText() {
+    $('#documentText').html(documentText);
+}
+
+/**
+ * Get the text value of the selected text
+ *
+ * @returns {string} The text
+ */
+function getSelectedText() {
+    if(window.getSelection){
+        return window.getSelection().toString();
+    }
+    else if(document.getSelection){
+        return document.getSelection();
+    }
+    else if(document.selection){
+        return document.selection.createRange().text;
+    }
+}
+
+/**
+ * Get color based on user id
+ *
+ * @param userToken The id of the user
+ * @returns {string} The user color
+ */
+function getUserColor(userToken) {
+    // insert new color if there is no userToken key
+    if (userColors.get(userToken) == null) {
+        generateRandomColor(userToken);
+    }
+    // return the color
+    return userColors.get(userToken);
+}
+
+/**
+ * Get dark color based on user id
+ *
+ * @param userToken The token of the user
+ * @returns {string} The dark user color
+ */
+function getDarkUserColor(userToken) {
+    // insert new color if there is no userToken key
+    if (userColorsDark.get(userToken) == null) {
+        generateRandomColor(userToken);
+    }
+    // return the color
+    return userColorsDark.get(userToken);
+}
+
+/**
+ * Generate a random color of the format 'rgb(r, g, b)'
+ *
+ * @param userToken The given user token
+ */
+function generateRandomColor(userToken) {
+    var r = Math.floor(Math.random()*56)+170;
+    var g = Math.floor(Math.random()*56)+170;
+    var b = Math.floor(Math.random()*56)+170;
+    var r_d = r - 50;
+    var g_d = g - 50;
+    var b_d = b - 50;
+
+    var color = 'rgb(' + r + ',' + g + ',' + b + ')';
+    var colorDark = 'rgb(' + r_d + ',' + g_d + ',' + b_d + ')';
+
+    userColors.set(userToken, color);
+    userColorsDark.set(userToken, colorDark);
+}
+
+/**
+ * Calculate and build a readable timestamp from an unix timestamp
+ *
+ * @param timestamp A unix timestamp
+ * @returns {string} A readable timestamp
+ */
+function timestampToReadableTime(timestamp) {
+    // build Date object from timestamp
+    var annotationDate = new Date(timestamp);
+    // declare response
+    var responseTimestamp;
+
+    // if annotation is from today
+    if (isTimestampToday(timestamp)) {
+        // get hours from date
+        var hours = annotationDate.getHours();
+        // get minutes from date
+        var minutes = "0" + annotationDate.getMinutes();
+        // get seconds from date
+        // var seconds = "0" + annotationDate.getSeconds();
+
+        // build readable timestamp
+        responseTimestamp = hours + ":" + minutes.substr(-2);
+    }
+    // else annotation is not from today
+    else {
+        // get date
+        var date = annotationDate.getDate();
+        // get month
+        var month = annotationDate.getMonth();
+        // get year
+        var year = annotationDate.getFullYear();
+
+        // build readable timestamp
+        responseTimestamp = date + "." + month + "." + year;
+    }
+
+    return responseTimestamp;
+}
+
+/**
+ * Check if given timestamp is from today
+ *
+ * @param timestamp The given timestamp in milliseconds
+ * @returns {boolean} Returns true if the timestamp is from today
+ */
+function isTimestampToday(timestamp) {
+    // now
+    var now = new Date();
+    // build Date object from timestamp
+    var date = new Date(timestamp);
+
+    // return true if timestamp is today
+    if (now.getDate() == date.getDate() && now.getMonth() == date.getMonth() && now.getFullYear() == date.getFullYear()) {
+        return true;
+    }
+    else {
+        return false;
+    }
+}
+
+/**
+ * Toggle between the toggle button status
+ *
+ * @param element The given toggle button
+ */
+function toggleButtonHandler(element) {
+    // open and close annotation text
+    element.parent().siblings(".annotation-body").children("p").toggleClass("overflow-hidden");
+    // toggle between up and down button
+    element.children("i").toggleClass("fa-chevron-down fa-chevron-up")
+}
+
+/**
+ * Save a new annotation in database and list
+ *
+ * @param title The title of the new annotation
+ * @param comment The comment of the new annotation
+ * @param startCharacter The startCharacter based on the annotated text
+ * @param endCharacter The endCharacter based on the annotated text
+ */
+function saveNewAnnotation(title, comment, startCharacter, endCharacter) {
+    // build annotationPostRequest
+    var annotationPostRequest = {
+        userToken: userToken,
+        targetId: targetId,
+        body: {
+            title: title,
+            comment: comment,
+            startCharacter: startCharacter,
+            endCharacter: endCharacter
+        }
+    };
+
+    // send new annotation to back-end and display it in list
+    createAnnotation(annotationPostRequest, function(response) {
+        // display the new annotation
+        displayAnnotation(response);
+
+    });
+}
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/createJournal.js b/gemeinsamforschen/src/main/webapp/assets/js/createJournal.js
new file mode 100644
index 0000000000000000000000000000000000000000..7a5dba5aafdd669caacaef14fc31b945f8665016
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/createJournal.js
@@ -0,0 +1,44 @@
+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){return pair[1];}
+    }
+    return(false);
+}
+
+$(document).ready(function() {
+    $('#backLink').on('click', function(){
+        location.href="eportfolio.jsp?token="+getUserTokenFromUrl();
+    });
+
+    var journalID = getQueryVariable("journal");
+    console.log(journalID);
+    if(journalID){
+        $.ajax({
+            url: "../rest/journal/"+journalID
+        }).then(function(data) {
+            $('#editor').append(data.entryMD);
+
+            //TODO preselet in select tags
+            new InscrybMDE({
+                element: document.getElementById("editor"),
+                spellChecker: false,
+                forceSync: true,
+            });
+
+            console.log(data);
+
+        });
+    } else {
+        new InscrybMDE({
+            element: document.getElementById("editor"),
+            spellChecker: false,
+            forceSync: true,
+        });
+    }
+
+
+})
\ 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
new file mode 100644
index 0000000000000000000000000000000000000000..409171b0173bbcbd105b0d9955123fc78570d606
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/createProject.js
@@ -0,0 +1,5 @@
+$(document).ready(function(){
+    $('#submit').on('click', function(){
+        location.href="specificRequirement.jsp?token="+getUserTokenFromUrl();
+    });
+});
\ 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
new file mode 100644
index 0000000000000000000000000000000000000000..764a7a90dfd06ce45531d359c31d592b3a39c0f7
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/createQuiz.js
@@ -0,0 +1,5 @@
+$(document).ready(function () {
+    $("#save").on('click', function () {
+        document.location = "Quiz.jsp?token=" + getUserTokenFromUrl();
+    });
+});
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/e-portfolio.js b/gemeinsamforschen/src/main/webapp/assets/js/e-portfolio.js
new file mode 100644
index 0000000000000000000000000000000000000000..658ed766e9a605fa961f40420cebbfeeeee51e4d
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/e-portfolio.js
@@ -0,0 +1,135 @@
+//TODO Get student and project form context
+
+$(document).ready(function() {
+    $('#editDescriptionLink').on('click', function(){
+        /*TODO getJournal*/
+        location.href="editDescription.jsp?project=0&token="+getUserTokenFromUrl();
+    });
+
+    $('#createJournalLink').on('click', function(){
+        location.href="createJournal.jsp?token="+getUserTokenFromUrl();
+    });
+
+    $.ajax({
+        url: "../rest/projectdescription/0"
+    }).then(function(data) {
+        $('.journal-description-title').append('<h2>' + data.name + '</h2>');
+        $('.journal-description-text').append(data.descriptionHTML);
+        for(var link in data.links){
+            $('.journal-description-links').append('<button class="btn btn-default btn-xs" onclick=\'linkLoeschen("'+link+'")\'> <i class="fa fa-trash" aria-hidden="true" ></i></button><a href=\' + data.links[link] + \'>' + link + '</a> <br/>');
+        }
+        $('.journal-description-links').append('<button type="button" class="btn btn-default btn-xs" data-toggle="modal" data-target="#addLinkModal"><i class="fa fa-plus" aria-hidden="true"></i></button>');
+
+        for(var g in data.group){
+            $('.journal-description-group').append(data.group[g]+ '<br/>');
+
+        }
+        console.log(data);
+    });
+
+    $.ajax({
+        url: "../rest/journal//journals/0/0"
+    }).then(function(data) {
+        loadJournals(data);
+        console.log(data);
+    });
+
+});
+
+function timestampToDateString(timestamp) {
+    var date = new Date(timestamp);
+    return date.toLocaleString("de-DE");
+}
+
+function filterJournals() {
+    var filter = $( '#journalfilter option:selected' ).val();
+
+    $('.journal').empty();
+
+    $.ajax({
+        url: "../rest/journal//journals/0/0/"+filter
+    }).then(function(data) {
+        loadJournals(data);
+        console.log(data);
+
+    });
+
+}
+
+function loadJournals(data) {
+    for (var journal in data) {
+        $('.journal').append(
+            '<div class="journal-container">' +
+                '<div class="journal-avatar">' +
+                  'getBild' +
+                '</div>' +
+                '<div class="journal-date"> ' +
+                     timestampToDateString(data[journal].timestamp) +
+                '</div>' +
+                '<div class="journal-name">' +
+                    data[journal].creator +
+                '</div>' +
+                '<div class="journal-category">' +
+                    data[journal].category +
+                '</div>' +
+                '<div class="journal-edit" align="right">' +
+                    '<a class="btn btn-default btn-sm" href="createJournal.jsp?token='+getUserTokenFromUrl()+'&journal=' + data[journal].id + '"><i class="fa fa-pencil"></i> Bearbeiten</a>' +
+                    '<a class="btn btn-default btn-sm" data-toggle="modal" data-target="#closeJournalModal"><i class="fa fa-check-square" aria-hidden="true"></i>Abschlie&szlig;en</a>' +
+                '</div>' +
+                '<div class="journal-text">' +
+                    data[journal].entryHTML +
+                '</div>' +
+            '</div><br><br>')
+    }};
+
+
+function linkLoeschen(name) {
+    console.log("löschen" + name);
+    $.ajax({
+        type: "POST",
+        url: "../rest/projectdescription/deleteLink",
+        data: JSON.stringify(name),
+        contentType: "application/json; charset=utf-8",
+        crossDomain: true,
+        dataType: "json",
+        success: function (data, status, jqXHR) {
+
+            alert(success);
+        }
+    });
+
+}
+
+function closeJournal(journal) {
+    console.log("löschen" + journal);
+    $.ajax({
+        type: "POST",
+        url: "../rest/journal/close",
+        data: JSON.stringify(journal),
+        contentType: "application/json; charset=utf-8",
+        crossDomain: true,
+        dataType: "json",
+        success: function (data, status, jqXHR) {
+
+            alert(success);
+        }
+    });
+
+}
+
+function closeJournal(description) {
+    console.log("löschen" + description);
+    $.ajax({
+        type: "POST",
+        url: "../rest/projectdescription/close",
+        data: JSON.stringify(description),
+        contentType: "application/json; charset=utf-8",
+        crossDomain: true,
+        dataType: "json",
+        success: function (data, status, jqXHR) {
+
+            alert(success);
+        }
+    });
+
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/editDescription.js b/gemeinsamforschen/src/main/webapp/assets/js/editDescription.js
new file mode 100644
index 0000000000000000000000000000000000000000..77eeb04452f089e8369c9b75875eaa3ee2fe4b8b
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/editDescription.js
@@ -0,0 +1,21 @@
+$(document).ready(function() {
+    $('#backLink').on('click', function(){
+        location.href="eportfolio.jsp?token="+getUserTokenFromUrl();
+    });
+
+    $.ajax({
+        url: "../rest/projectdescription/0"
+        }).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);
+
+    });
+})
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/enrollProject.js b/gemeinsamforschen/src/main/webapp/assets/js/enrollProject.js
new file mode 100644
index 0000000000000000000000000000000000000000..5969e8ae46238871a6b97f80c039b3df93fee435
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/enrollProject.js
@@ -0,0 +1,5 @@
+$(document).ready(function () {
+    $('#submit').on('click',function(){
+        document.location="specificSkills.jsp?token="+getUserTokenFromUrl();
+    });
+});
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js
index a42d6489e0ef6234a63275d85c978a6d2155c399..7cefb9d460fc4665b58ae33f96bed4267a86b0bb 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js
@@ -6,6 +6,11 @@ $(document).ready(function() {
         assessPeer();
     });
 });
+
+function getUser(){//todo: you can see what you need to do
+    return "dummy";
+}
+
 function assessPeer(){
     var peerRating = {
         "fromPeer": getUser(),
@@ -28,7 +33,7 @@ function assessPeer(){
         },
         data: JSON.stringify(dataP),
         success: function(){
-
+            location.href="takeQuiz.jsp?token="+getUserTokenFromUrl();
         },
         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
new file mode 100644
index 0000000000000000000000000000000000000000..33e3ada606d22727234e01d6fa131f67e1240009
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/footer.js
@@ -0,0 +1,31 @@
+$(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/overview-docent.js b/gemeinsamforschen/src/main/webapp/assets/js/overview-docent.js
index f762ed709be5276d8285ef97c9decca9ebe4057f..0bd803d816901c10c4bb47c9ecc6ecf281f7d543 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/overview-docent.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/overview-docent.js
@@ -2,4 +2,11 @@ $(document).ready(function(){
     $('#project1Link').on('click', function(){
         location.href="project-docent.jsp?token="+getUserTokenFromUrl();
     });
-});
+    $('#project2Link').on('click', function(){
+        location.href="project-docent.jsp?token="+getUserTokenFromUrl();
+    });
+    $('#createProject').on('click', function(){
+        location.href="createProject.jsp?token="+getUserTokenFromUrl();
+    });
+
+});
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/overview-student.js b/gemeinsamforschen/src/main/webapp/assets/js/overview-student.js
index 58a1b769651bb338348cdd908d25faa7b9c4037e..2cf207efe43ac69de868491e3264e78c837b0e9c 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/overview-student.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/overview-student.js
@@ -2,4 +2,7 @@ $(document).ready(function(){
     $('#project1Link').on('click', function(){
         location.href="project-student.jsp?token="+getUserTokenFromUrl();
     });
+    $('#enrollProject').on('click', function(){
+        location.href="enrollProject.jsp?token="+getUserTokenFromUrl();
+    });
 });
\ 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
new file mode 100644
index 0000000000000000000000000000000000000000..ffc7facbdd443de53ce28d7faeb0cefd84298e7a
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/project-student.js
@@ -0,0 +1,23 @@
+$(document).ready(function(){
+    /*
+    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="upload-unstructured.jsp?token="+getUserTokenFromUrl();
+    })
+});
\ 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
new file mode 100644
index 0000000000000000000000000000000000000000..8d6c7c7b53d0fd8323dd23e2abea8d79c298954c
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/rateContribution.js
@@ -0,0 +1,28 @@
+$(document).ready(function () {
+    var ejournalFeedback = new InscrybMDE({
+        element: document.getElementById("ejournalFeedback"),
+        spellChecker: false,
+        //toolbar: ["bold", "italic", "heading", "|", "quote", "table", "code", "|" , "side-by-side", "fullscreen"],
+        minHeight: "80px",
+    });
+    var presentationFeedback = new InscrybMDE({
+        element: document.getElementById("presentationFeedback"),
+        spellChecker: false,
+        //toolbar: ["bold", "italic", "heading", "|", "quote", "table", "code", "|" , "side-by-side", "fullscreen"],
+        minHeight: "80px",
+    });
+    var dossierFeedback = new InscrybMDE({
+        element: document.getElementById("dossierFeedback"),
+        spellChecker: false,
+        //toolbar: ["bold", "italic", "heading", "|", "quote", "table", "code", "|" , "side-by-side", "fullscreen"],
+        minHeight: "80px",
+    });
+
+
+    editor.style = "min-height: 100px";
+
+
+    $('#submit').on('click',function(){
+        document.location="project-student.jsp?token="+getUserTokenFromUrl();
+    });
+});
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/specificRequirement.js b/gemeinsamforschen/src/main/webapp/assets/js/specificRequirement.js
new file mode 100644
index 0000000000000000000000000000000000000000..40c84748cff204b67f7f49349153b96cd5912936
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/specificRequirement.js
@@ -0,0 +1,5 @@
+$(document).ready(function(){
+    $('#submit').on('click', function(){
+        location.href="project-docent.jsp?token="+getUserTokenFromUrl();
+    });
+});
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/specificSkills.js b/gemeinsamforschen/src/main/webapp/assets/js/specificSkills.js
new file mode 100644
index 0000000000000000000000000000000000000000..d55c4b1fa845c86459c75ffd8713837886254528
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/specificSkills.js
@@ -0,0 +1,5 @@
+$(document).ready(function () {
+    $('#submit').on('click',function(){
+        document.location="project-docent.jsp?token="+getUserTokenFromUrl();
+    });
+});
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/takeQuiz.js b/gemeinsamforschen/src/main/webapp/assets/js/takeQuiz.js
index 68179aa9e1fa56b698992bc3212e2bd41b2d4a94..9bc226153048dc0874087970dddf8a9965b3295e 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/takeQuiz.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/takeQuiz.js
@@ -34,18 +34,29 @@ $(document).ready(function () {
         success: function (data) {
             var table = document.getElementById('tableQuiz');
             for (var quiz = 0; quiz < data.length; quiz++){
+                var question = data[quiz].question.replace(/ /g,"").replace("?","").replace(",","");
                 var answers = data[quiz].correctAnswers.concat(data[quiz].incorrectAnswers);
                 var colspan = answers.length;
                 var trQuestion = document.createElement('TR');
-                var question = '<td colspan="' + colspan + '">' + data[quiz].question + '</td>';
-                trQuestion.innerHTML = question;
+                var tdQuestion = '<td colspan="' + colspan + '"' +
+                    'data-toggle="collapse" href="#'+question+'" aria-expanded="false" aria-controls="'+question+'">' +
+                    '' + data[quiz].question + '</td>';
+                trQuestion.innerHTML = tdQuestion;
                 var trAnswers = document.createElement('TR');
                 answers = shuffle(answers);
-                var answersTd='<div class="quiz" id="quiz" data-toggle="buttons"><td style="display: block;">';
+                var answersTd='<td style="display: block;"><div class="quiz collapse" id="'+question+'" data-toggle="buttons">';
                 for (var i = 0; i < answers.length; i++) {
-                    answersTd = answersTd + '<div><label class="element-animation1 btn btn-lg btn-primary btn-block"><span class="btn-label"><i class="glyphicon glyphicon-chevron-right"></i></span><input type="checkbox">' + answers[i] + '</label></div>';
+                    answersTd = answersTd + '<div>' +
+                        '<label class="element-animation1 btn btn-lg btn-primary btn-block">' +
+                        '<span class="btn-label">' +
+                        '<i class="glyphicon glyphicon-chevron-right">' +
+                        '</i>' +
+                        '</span>' +
+                        '<input type="checkbox">' + answers[i] + '' +
+                        '</label>' +
+                        '</div>';
                 }
-                question ="";
+                tdQuestion ="";
                 answers=[];
                 trAnswers.innerHTML = answersTd+'</div></td>';
                 table.appendChild(trQuestion);
@@ -57,7 +68,7 @@ $(document).ready(function () {
         }
     });
     $("#submitQuiz").on("click", function () {
-
+        document.location="rateContribution.jsp?token="+getUserTokenFromUrl();
     });
 });
 
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/uploadUnstructured.js b/gemeinsamforschen/src/main/webapp/assets/js/uploadUnstructured.js
new file mode 100644
index 0000000000000000000000000000000000000000..dd85243d662c9bf71e25212e89c42597e830c3d9
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/uploadUnstructured.js
@@ -0,0 +1,490 @@
+// initialize userId, userColors and targetId
+var userId = randomUserId();
+var userColors = new Map();
+var userColorsDark = new Map();
+var targetId = 200;
+
+// declare document text
+var documentText;
+
+/**
+ * This function will fire when the DOM is ready
+ */
+$(document).ready(function() {
+
+    /**
+     * Context menu handler
+     */
+    $.contextMenu({
+        selector: '.context-menu-one',
+        callback: function(key, options) {
+
+            // close context menu
+            window.close;
+
+            // initialize selected body
+            var body = getSelectedTextFromTextArea();
+
+            // if user selected something
+            if (body.length > 0) {
+                // annotationPostRequest
+                var request = {
+                    userId: userId,
+                    targetId: targetId,
+                    body: body,
+                    startCharacter: window.getSelection().getRangeAt(0).startOffset,
+                    endCharacter: window.getSelection().getRangeAt(0).endOffset
+                };
+
+                console.log(request);
+
+                createAnnotation(request, function(response) {
+                    // display the new annotation
+                    displayAnnotation(response);
+
+                });
+            }
+
+        },
+        items: {
+            "annotation": {name: "Annotation", icon: "edit"}
+        }
+    });
+
+    $('#btnSave').click(function () {
+        location.href="project-student.jsp?token="+getUserTokenFromUrl();
+    });
+
+    $('#btnBack').click(function () {
+        location.href="project-student.jsp?token="+getUserTokenFromUrl();
+    });
+
+    documentText = $('#documentText').html();
+
+    // fetch annotations from server on page start
+    getAnnotations(targetId, function (response) {
+        // iterate over annotations and display each
+        $.each(response, function (i, annotation) {
+            displayAnnotation(annotation);
+        })
+    });
+
+});
+
+/**
+ * POST: Save an annotation in the database
+ *
+ * @param annotationPostRequest The post request
+ * @param responseHandler The response handler
+ */
+function createAnnotation(annotationPostRequest, responseHandler) {
+    var url = "http://localhost:8080/rest/annotations/";
+    var json = JSON.stringify(annotationPostRequest);
+    $.ajax({
+        url: url,
+        type: "POST",
+        data: json,
+        contentType: "application/json",
+        dataType: "json",
+        success: function (response) {
+            responseHandler(response);
+        }
+    });
+}
+
+/**
+ * PATCH: Alter an annotation in database
+ *
+ * @param id The annotation id
+ * @param annotationPatchRequest The patch request
+ * @param responseHandler The response handler
+ */
+function alterAnnotation(id, annotationPatchRequest, responseHandler) {
+    var url = "http://localhost:8080/rest/annotations/" + id;
+    var json = JSON.stringify(annotationPatchRequest);
+    $.ajax({
+        url: url,
+        type: "PATCH",
+        data: json,
+        contentType: "application/json",
+        dataType: "json",
+        success: function (response) {
+            responseHandler(response);
+        }
+    });
+}
+
+/**
+ * DELETE: Delete an annotation from database
+ *
+ * @param id The annotation id
+ */
+function deleteAnnotation(id) {
+    var url = "http://localhost:8080/rest/annotations/" + id;
+    $.ajax({
+        url: url,
+        type: "DELETE",
+        dataType: "json",
+        success: function (response) {
+            // Nothing to do
+        }
+    });
+}
+
+/**
+ * GET: Get all annotations from database for a specific target
+ *
+ *
+ * @param targetId The target id
+ * @param responseHandler The response handler
+ */
+function getAnnotations(targetId, responseHandler) {
+    var url = "http://localhost:8080/rest/annotations/target/" + targetId;
+    $.ajax({
+        url: url,
+        type: "GET",
+        dataType: "json",
+        success: function (response) {
+            // sort the responding annotations by timestamp (DESC)
+            response.sort(function (a, b) {
+                return a.timestamp - b.timestamp;
+            });
+            // handle the response
+            responseHandler(response);
+        }
+    });
+}
+
+/**
+ * Delete annotation from list
+ *
+ * @param elem The parent li element
+ * @param id The id of the annotation
+ */
+function deleteUnstructuredAnnotationHandler(elem, id) {
+    // remove annotation from list
+    elem.remove()
+    // remove annotation from database
+    deleteAnnotation(id)
+}
+
+/**
+ * Display annotation in the list
+ *
+ * @param annotation The annotation to be displayed
+ */
+function displayAnnotation(annotation) {
+    // fetch list of annotations
+    var list = $('#annotations')
+
+    var deleteIcon = "fas fa-trash";
+    var dateIcon = "fas fa-calendar";
+    if (isTimestampToday(annotation.timestamp)) {
+        dateIcon = "fas fa-clock";
+    }
+
+    // insert annotation card
+    list.prepend(
+        $('<li>')
+            .attr('class', 'listelement')
+            .append(
+                $('<div>').attr('class', 'annotation-card')
+                    .mouseenter(function () {
+                        $(this).children('.annotation-header').css('background-color', getDarkUserColor(annotation.userId));
+                    })
+                    .mouseleave(function () {
+                        $(this).children('.annotation-header').css('background-color', getUserColor(annotation.userId));
+                    })
+                    .append(
+                        $('<div>').attr('class', 'annotation-header')
+                            .css('background-color', getUserColor(annotation.userId))
+                            .append(
+                                $('<div>').attr('class', 'annotation-header-title')
+                                    .append(
+                                        $('<div>').attr('class', 'overflow-hidden')
+                                            .append(
+                                                $('<i>').attr('class', 'fas fa-user')
+                                            )
+                                            .append(
+                                                $('<span>').append(annotation.userId)
+                                            )
+                                    )
+                                    .append(
+                                        $('<div>').attr('class', 'overflow-hidden')
+                                            .append(
+                                                $('<i>').attr('class', 'fas fa-bookmark')
+                                            )
+                                            .append(
+                                                $('<span>').append('title' + annotation.userId)
+                                            )
+                                    )
+                            )
+                            .append(
+                                $('<div>').attr('class', 'annotation-header-toggle')
+                                    .click(function () {
+                                        toggleButtonHandler($(this));
+                                    })
+                                    .append(
+                                        $('<i>').attr('class', 'fas fa-chevron-down')
+                                    )
+                            )
+                    )
+                    .append(
+                        $('<div>').attr('class', 'annotation-body')
+                            .append(
+                                $('<p>').attr('class', 'overflow-hidden').append(annotation.body)
+                            )
+                    )
+                    .append(
+                        $('<div>').attr('class', 'annotation-footer')
+                            .append(
+                                function () {
+                                    if (userId == annotation.userId) {
+                                        return $('<div>').attr('class', 'annotation-footer-delete')
+                                            .append(
+                                                $('<i>').attr('class', deleteIcon)
+                                            )
+                                            .click(function () {
+                                                deleteUnstructuredAnnotationHandler($(this).closest('li'), annotation.id)
+                                            })
+                                    }
+                                }
+                            )
+                            .append(
+                                $('<div>').attr('class', 'annotation-footer-date overflow-hidden')
+                                    .append(
+                                        $('<i>').attr('class', dateIcon)
+                                    )
+                                    .append(
+                                        $('<span>').append(timestampToReadableTime(annotation.timestamp))
+                                    )
+                            )
+
+
+                    )
+            )
+            .data('annotation', annotation)
+            .append(function () {
+                if ($('#annotations li').filter( ".listelement" ).length > 0) {
+                    return $('<div>').attr('class', 'spacing')
+                }
+            })
+    );
+}
+
+/**
+ * Add a highlighted text at specific position
+ *
+ * @param startCharacter The offset of the start character
+ * @param endCharacter The offset of the end character
+ * @param userId The user id
+ */
+function addHighlightedText(startCharacter, endCharacter, userId) {
+    // create <span> tag with the annotated text
+    var replacement = $('<span></span>').css('background-color', getUserColor(userId)).html(documentText.slice(startCharacter, endCharacter));
+
+    // wrap an <p> tag around the replacement, get its parent (the <p>) and ask for the html
+    var replacementHtml = replacement.wrap('<p/>').parent().html();
+
+    // insert the replacementHtml
+    var newDocument = documentText.slice(0, startCharacter) + replacementHtml + documentText.slice(endCharacter);
+
+    // set new document text
+    $('#documentText').html(newDocument);
+}
+
+/**
+ * Restore the base text
+ */
+function deleteHighlightedText() {
+    $('#documentText').html(documentText);
+}
+
+/**
+ * Get the text value of the selected text
+ *
+ * @returns {string} The text
+ */
+function getSelectedText() {
+    if(window.getSelection){
+        return window.getSelection().toString();
+    }
+    else if(document.getSelection){
+        return document.getSelection();
+    }
+    else if(document.selection){
+        return document.selection.createRange().text;
+    }
+}
+
+/**
+ * Get the text value of the selected text from a textarea
+ *
+ * @returns {string} The text
+ */
+function getSelectedTextFromTextArea() {
+    // if firefox
+    if( navigator.userAgent.toLowerCase().indexOf('firefox') > -1 ){
+        // reference to the textarea
+        var txtarea = document.getElementById("upload-area");
+        // get index of first character
+        var start = txtarea.selectionStart;
+        // get index of last character
+        var end = txtarea.selectionEnd;
+        // return substring from start to end
+        return txtarea.value.substring(start, end);
+    }
+    else if(window.getSelection){
+        return window.getSelection().toString();
+    }
+    else if(document.getSelection){
+        return document.getSelection();
+    }
+    else if(document.selection){
+        return document.selection.createRange().text;
+    }
+}
+
+/**
+ * Get color based on user id
+ *
+ * @param userId The id of the user
+ * @returns {string} The user color
+ */
+function getUserColor(userId) {
+    // insert new color if there is no userId key
+    if (userColors.get(userId) == null) {
+        generateRandomColor(userId);
+    }
+    // return the color
+    return userColors.get(userId);
+}
+
+/**
+ * Get dark color based on user id
+ *
+ * @param userId The id of the user
+ * @returns {string} The dark user color
+ */
+function getDarkUserColor(userId) {
+    // insert new color if there is no userId key
+    if (userColorsDark.get(userId) == null) {
+        generateRandomColor(userId);
+    }
+    // return the color
+    return userColorsDark.get(userId);
+}
+
+/**
+ * Generate a random color of the format 'rgb(r, g, b)'
+ *
+ * @param userId The given user id
+ */
+function generateRandomColor(userId) {
+    var r = Math.floor(Math.random()*56)+170;
+    var g = Math.floor(Math.random()*56)+170;
+    var b = Math.floor(Math.random()*56)+170;
+    var r_d = r - 50;
+    var g_d = g - 50;
+    var b_d = b - 50;
+
+    var color = 'rgb(' + r + ',' + g + ',' + b + ')';
+    var colorDark = 'rgb(' + r_d + ',' + g_d + ',' + b_d + ')';
+
+    userColors.set(userId, color);
+    userColorsDark.set(userId, colorDark);
+}
+
+/**
+ * Calculate and build a readable timestamp from an unix timestamp
+ *
+ * @param timestamp A unix timestamp
+ * @returns {string} A readable timestamp
+ */
+function timestampToReadableTime(timestamp) {
+    // build Date object from timestamp
+    var annotationDate = new Date(timestamp);
+    // declare response
+    var responseTimestamp;
+
+    // if annotation is from today
+    if (isTimestampToday(timestamp)) {
+        // get hours from date
+        var hours = annotationDate.getHours();
+        // get minutes from date
+        var minutes = "0" + annotationDate.getMinutes();
+        // get seconds from date
+        // var seconds = "0" + annotationDate.getSeconds();
+
+        // build readable timestamp
+        responseTimestamp = hours + ":" + minutes.substr(-2);
+    }
+    // else annotation is not from today
+    else {
+        // get date
+        var date = annotationDate.getDate();
+        // get month
+        var month = annotationDate.getMonth();
+        // get year
+        var year = annotationDate.getFullYear();
+
+        // build readable timestamp
+        responseTimestamp = date + "." + month + "." + year;
+    }
+
+    return responseTimestamp;
+}
+
+/**
+ * Check if given timestamp is from today
+ *
+ * @param timestamp The given timestamp in milliseconds
+ * @returns {boolean} Returns true if the timestamp is from today
+ */
+function isTimestampToday(timestamp) {
+    // now
+    var now = new Date();
+    // build Date object from timestamp
+    var date = new Date(timestamp);
+
+    // return true if timestamp is today
+    if (now.getDate() == date.getDate() && now.getMonth() == date.getMonth() && now.getFullYear() == date.getFullYear()) {
+        return true;
+    }
+    else {
+        return false;
+    }
+}
+
+/**
+ * Toggle between the toggle button status
+ *
+ * @param element The given toggle button
+ */
+function toggleButtonHandler(element) {
+    // open and close annotation text
+    element.parent().siblings(".annotation-body").children("p").toggleClass("overflow-hidden");
+    // toggle between up and down button
+    element.children("i").toggleClass("fa-chevron-down fa-chevron-up")
+}
+
+function lockButtonHandler() {
+    var lock = $('#btnLock').children('i')
+    lock.toggleClass("fa-lock-open fa-lock")
+
+    var area = $('#upload-area')
+    if (area.attr('readonly'))  {
+        area.attr('readonly', false);
+    }
+    else {
+        area.attr('readonly', true);
+    }
+}
+
+/*
+    MOCKUP FUNCTIONS
+ */
+function randomUserId() {
+    return Math.floor((Math.random() * 12) + 1);;
+}
+
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/utility.js b/gemeinsamforschen/src/main/webapp/assets/js/utility.js
index dac28eb2de49b29e1df606bb4f4cbe2abd9f4627..bbbf0394ae1ca308e21b690477ddb39619fd9161 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/utility.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/utility.js
@@ -6,5 +6,6 @@ function getUserTokenFromUrl() {
         $_GET[decodeURIComponent(temp[0])] = decodeURIComponent(temp[1]);
     }
     return $_GET['token'];
+
 }
 
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/viewQuiz.js b/gemeinsamforschen/src/main/webapp/assets/js/viewQuiz.js
new file mode 100644
index 0000000000000000000000000000000000000000..362479e7371bfb8ea4637c238ec8dc0c874b3543
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/viewQuiz.js
@@ -0,0 +1,67 @@
+$(document).ready(function () {
+    var loading = $('#loadbar').hide();
+    $(document)
+        .ajaxStart(function () {
+            loading.show();
+        }).ajaxStop(function () {
+        loading.hide();
+    });
+
+    $("label.btn").on('click', function () {
+        var choice = $(this).find('input:radio').val();
+        $('#loadbar').show();
+        $('#quiz').fadeOut();
+        setTimeout(function () {
+            $("#answer").html($(this).checking(choice));
+            $('#quiz').show();
+            $('#loadbar').fadeOut();
+            /* something else */
+        }, 1500);
+    });
+
+    $ans = 3;
+
+    $.fn.checking = function (ck) {
+        if (ck != $ans)
+            return 'INCORRECT';
+        else
+            return 'CORRECT';
+    };
+    var parts = window.location.search.substr(1).split("&");
+    var $_GET = {};
+    for (var i = 0; i < parts.length; i++) {
+        var temp = parts[i].split("=");
+        $_GET[decodeURIComponent(temp[0])] = decodeURIComponent(temp[1]);
+    }
+    var quizId = $_GET['quizId'];
+
+    $.ajax({
+        url: '../rest/assessments/project/1/quiz/'+quizId,
+        type: 'GET',
+        success: function (data) {
+            var table = document.getElementById('tableQuiz');
+            var answers = data.correctAnswers.concat(data.incorrectAnswers);
+            var colspan = answers.length;
+            var trQuestion = document.createElement('TR');
+            var question = '<td colspan="' + colspan + '">' + data.question + '</td>';
+            trQuestion.innerHTML = question;
+            var trAnswers = document.createElement('TR');
+            var answersTd = '<div class="quiz" id="quiz" data-toggle="buttons"><td style="display: block;">';
+            for (var i = 0; i < data.correctAnswers.length; i++) {
+                answersTd = answersTd + '<div><label class="element-animation1 btn btn-lg btn-success btn-block"><span class="btn-label"><i class="glyphicon glyphicon-chevron-right"></i></span><input type="checkbox">' + data.correctAnswers[i] + '</label></div>';
+            }
+            for (i = 0; i < data.incorrectAnswers.length; i++) {
+                answersTd = answersTd + '<div><label class="element-animation1 btn btn-lg btn-danger btn-block"><span class="btn-label"><i class="glyphicon glyphicon-chevron-right"></i></span><input type="checkbox">' + data.incorrectAnswers[i] + '</label></div>';
+            }
+            trAnswers.innerHTML = answersTd + '</div></td>';
+            table.appendChild(trQuestion);
+            table.appendChild(trAnswers);
+        },
+        error: function (a, b, c) {
+            alert('Fehler ' + a);
+        }
+    });
+    $("#submitQuiz").on("click", function () {
+
+    });
+});
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/Quiz.jsp b/gemeinsamforschen/src/main/webapp/pages/Quiz.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..276a9e024dcc1658c5290b3774cde54dd4029047
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/Quiz.jsp
@@ -0,0 +1,54 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: fides-WHK
+  Date: 21.06.2018
+  Time: 12:37
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
+
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>fltrail</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>
+    <script src="../assets/js/utility.js"></script>
+    <script src="../assets/js/Quiz.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">
+</head>
+
+<body>
+<div id="wrapper">
+    <menu:menu></menu:menu>
+    <div class="page-content-wrapper">
+        <div class="container-fluid">
+            <h1 id="projectId">project1
+                <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>
+        <table class="table-striped">
+            <tbody id="myQuizzes">
+
+            </tbody>
+        </table>
+        <button class="btn btn-primary" id="newQuiz">neues Quiz</button>
+
+    </div>
+</div>
+
+</body>
+</html>
diff --git a/gemeinsamforschen/src/main/webapp/pages/annotation-document.jsp b/gemeinsamforschen/src/main/webapp/pages/annotation-document.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..1b1515c1712672bbae51adc783f37c9800176678
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/annotation-document.jsp
@@ -0,0 +1,118 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>muster-gemeinsam-forschen</title>
+
+    <!-- css - annotationStyle -->
+    <link rel="stylesheet" type="text/css" href="../assets/css/annotationStyle.css">
+    <!-- css - contextMenu -->
+    <link href="https://swisnl.github.io/jQuery-contextMenu/dist/jquery.contextMenu.css" rel="stylesheet" type="text/css" />
+    <!-- css - bootstrap -->
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
+    <!-- css - styles -->
+    <link rel="stylesheet" href="../assets/css/styles.css">
+    <!-- css - font awesome -->
+    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">
+    <!-- css - sidebar -->
+    <link rel="stylesheet" href="../assets/css/Sidebar-Menu.css">
+
+    <!-- js - jQuery -->
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
+    <!-- js - jQuery validation plugin -->
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.14.0/jquery.validate.min.js"></script>
+    <!-- js - bootstrap -->
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
+    <!-- js - jQuery ui position -->
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js" type="text/javascript"></script>
+    <!-- js - contextMenu script -->
+    <script src="https://swisnl.github.io/jQuery-contextMenu/dist/jquery.contextMenu.js" type="text/javascript"></script>
+    <!-- js - utility script -->
+    <script src="../assets/js/utility.js"></script>
+    <!-- js - annotationScript -->
+    <script src="../assets/js/annotationScript.js"></script>
+
+</head>
+
+<body>
+    <div id="wrapper" class="full-height">
+        <menu:menu></menu:menu>
+        <div class="page-content-wrapper full-height">
+            <div class="container-fluid full-height">
+                <div class="container-fluid-content">
+                    <div class="flex">
+                        <h1>gemeinsam Forschen
+                            <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 class="content-mainpage">
+                        <div class="leftcolumn">
+                            <div class="leftcontent">
+                                <div class="leftcontent-text context-menu-one" id="documentText">
+                                    Style never met and those among great. At no or september sportsmen he perfectly happiness attending. Depending listening delivered off new she procuring satisfied sex existence. Person plenty answer to exeter it if. Law use assistance especially resolution cultivated did out sentiments unsatiable. Way necessary had intention happiness but september delighted his curiosity. Furniture furnished or on strangers neglected remainder engrossed. Shot what able cold new the see hold. Friendly as an betrayed formerly he. Morning because as to society behaved moments. Put ladies design mrs sister was. Play on hill felt john no gate. Am passed figure to marked in. Prosperous middletons is ye inhabiting as assistance me especially. For looking two cousins regular amongst.
+                                    Style never met and those among great. At no or september sportsmen he perfectly happiness attending. Depending listening delivered off new she procuring satisfied sex existence. Person plenty answer to exeter it if. Law use assistance especially resolution cultivated did out sentiments unsatiable. Way necessary had intention happiness but september delighted his curiosity. Furniture furnished or on strangers neglected remainder engrossed. Shot what able cold new the see hold. Friendly as an betrayed formerly he. Morning because as to society behaved moments. Put ladies design mrs sister was. Play on hill felt john no gate. Am passed figure to marked in. Prosperous middletons is ye inhabiting as assistance me especially. For looking two cousins regular amongst.
+                                </div>
+                                <div class="leftcontent-buttons">
+                                    <div class="leftcontent-buttons-next">
+                                        <button id="btnContinue" type="button" class="btn btn-secondary">Weiter</button>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="rightcolumn">
+                            <div class="rightcontent">
+                                <ol id="annotations">
+                                </ol>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <!-- annotation create modal -->
+        <div id="annotation-create-modal" class="modal fade" role="dialog">
+            <div class="modal-dialog modal-dialog-centered modal-sm">
+                <div class="modal-content">
+
+                    <!-- modal header -->
+                    <div class="modal-header flex">
+                        <h4 class="modal-title flex-one">Annotation</h4>
+                        <button type="button" class="close" data-dismiss="modal">&times;</button>
+                    </div>
+
+                    <!-- modal body -->
+                    <div class="modal-body">
+                        <form id="annotation-create-form">
+                            <div class="form-group">
+                                <label for="annotation-form-title" class="col-form-label">Titel:</label>
+                                <input type="text" class="form-control" id="annotation-form-title" name="title">
+                            </div>
+                            <div class="form-group">
+                                <label for="annotation-form-comment" class="col-form-label">Kommentar:</label>
+                                <textarea class="form-control resize-vertical" id="annotation-form-comment" name="comment"></textarea>
+                            </div>
+                        </form>
+                        <!-- modal footer -->
+                        <div class="modal-footer">
+                            <button type="button" class="btn btn-secondary" data-dismiss="modal">Abbrechen</button>
+                            <button id="btnSave" type="button" class="btn btn-success">Speichern</button>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</body>
+
+</html>
diff --git a/gemeinsamforschen/src/main/webapp/pages/createJournal.jsp b/gemeinsamforschen/src/main/webapp/pages/createJournal.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..ac3da978546d0d608c6fcd1d99595ce45592035f
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/createJournal.jsp
@@ -0,0 +1,105 @@
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+
+<!DOCTYPE html>
+<html>
+
+<head>
+	<meta charset="utf-8">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0">
+	<title>Tagebucheintrag erstellen</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">
+	<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.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>
+	<script src="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script>
+	<script src="../assets/js/utility.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" type="text/css" href="../assets/css/create-journal.css">
+
+</head>
+
+<body>
+<div id="wrapper">
+	<menu:menu></menu:menu>
+
+	<div class="page-content-wrapper">
+		<div class="container-fluid">
+			<h1 id="projectId">project1
+				<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>
+			<table>
+				<tr>
+					<td  id="yourContent">
+						<h1> Tagebucheintrag erstellen </h1>
+
+						<form id="journalform" class="form-journal" method="POST" action="../rest/journal/save" >
+
+							<input type="hidden" name="student" value="0">
+							<input type="hidden" name="project" value="0">
+
+							<div class="journal-form-container">
+
+								<div class = "journal-form-visibility">
+									Sichtbarkeit:
+									<select id="visibility" name="visibility" form="journalform">
+										<option value="ALL"> Alle </option>
+										<option value="GROUP"> Gruppe </option>
+										<option value="DOZENT"> Dozent </option>
+										<option value="NONE"> Nur Ich </option>
+									</select>
+								</div>
+
+								<div class = "journal-form-category">
+									Kategorie:
+									<select name="category" form="journalform">
+										<option value="TITEL"> Titel </option>
+										<option value="RECHERCHE"> Recherche </option>
+										<option value="LITERATURVERZEICHNIS"> Literaturverzeichnis </option>
+										<option value="FORSCHUNGSFRAGE"> Forschungsfrage </option>
+										<option value="UNTERSUCHUNGSKONZEPT"> Untersuchungskonzept </option>
+										<option value="METHODIK"> Methodik </option>
+										<option value="DURCHFUEHRUNG"> Durchführung </option>
+										<option value="AUSWERTUNG"> Auswertung </option>
+
+									</select>
+								</div>
+
+
+								<div class ="journal-form-editor">
+                                    <textarea id = "editor" name="text" form="journalform" >
+                                    </textarea>
+								</div>
+
+								<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>
+
+							</div>
+						</form>
+
+					</td>
+				</tr>
+			</table>
+		</div>
+	</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>
+<script  src="../assets/js/createJournal.js"></script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/createProject.jsp b/gemeinsamforschen/src/main/webapp/pages/createProject.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..b13361095939684046b7ab9328d3f42eb6f3bbf2
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/createProject.jsp
@@ -0,0 +1,47 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
+
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>fltrail</title>
+    <link rel="stylesheet" href="../assets/css/styles.css">
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.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">
+    <script src="../assets/js/utility.js"></script>
+    <script src="../assets/js/createProject.js"></script>
+
+</head>
+
+<body>
+<div id="wrapper">
+    <menu:menu></menu:menu>
+    <div class="page-content-wrapper">
+        <div class="container-fluid">
+
+            <h1>Einschreiben in einen Kurs</h1>
+            <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>
+        </div>
+        <div style="margin-left: 2%;">
+            <br><br>
+            <label>Projektname: <input placeholder="Projektname"></label>
+            <label>Passwort: <input placeholder="Passwort"></label>
+        </div>
+        <button class="btn btn-default" type="button" id="submit">beitreten</button>
+    </div>
+</div>
+
+
+</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 b9741e2ee9962d42c06531d2052593db0a4a4f4a..ad122bc926c195526ea109c12152f1a24209e498 100644
--- a/gemeinsamforschen/src/main/webapp/pages/createQuiz.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/createQuiz.jsp
@@ -1,16 +1,49 @@
-<%--
-  Created by IntelliJ IDEA.
-  User: fides-WHK
-  Date: 21.06.2018
-  Time: 12:37
-  To change this template use File | Settings | File Templates.
---%>
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
+
 <html>
 <head>
-    <title>gemeinsam Forschen</title>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>fltrail</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>
+    <script src="../assets/js/utility.js"></script>
+    <script src="../assets/js/createQuiz.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">
+
 </head>
+
 <body>
-<h1>hier werden quizzes vom Dozenten oder Studenten erstellt</h1>
+<div id="wrapper">
+    <menu:menu></menu:menu>
+    <div class="page-content-wrapper">
+        <div class="container-fluid">
+            <h1>Projekt1</h1>
+            <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>
+        </div>
+        <div style="margin-left:50px;">
+            <div>
+            <input placeholder="Ihre Frage">
+            </div>
+            <div><label><input type="radio" name="type">Schwierigkeit 3</label></div>
+            <div><label><input type="radio" name="type">Schwierigkeit 2</label></div>
+            <div><label><input type="radio" name="type">Schwierigkeit 1</label></div>
+            <div><input placeholder="korrekte Antwort"><button> + </button><button> - </button></div>
+            <div><input placeholder="inkorrekte Antwort"><button> + </button><button> - </button></div>
+            <button id="save">speichern</button>
+        </div>
+    </div>
+</div>
+
 </body>
 </html>
diff --git a/gemeinsamforschen/src/main/webapp/pages/editDescription.jsp b/gemeinsamforschen/src/main/webapp/pages/editDescription.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..1113922a4f20be7a8a92d2d5689be1ded6c64c08
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/editDescription.jsp
@@ -0,0 +1,79 @@
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Tagebucheintrag erstellen</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">
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.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>
+    <script src="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script>
+    <script src="../assets/js/utility.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" type="text/css" href="../assets/css/editDescription.css">
+
+</head>
+
+<body>
+<div id="wrapper">
+    <menu:menu></menu:menu>
+
+    <div class="page-content-wrapper">
+        <div class="container-fluid">
+            <h1 id="projectId">project1
+                <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>
+            <table>
+                <tr>
+                    <td  id="yourContent">
+                        <h1> Projektbeschreibung bearbeiten </h1>
+
+                        <form id="descriptionform" class="form-journal" method="POST" action="../rest/projectdescription/saveText">
+
+                            <input type="hidden" name="student" value="0">
+                            <input type="hidden" name="project" value="0">
+
+                            <div class="description-form-container">
+
+                                <div class ="description-form-editor">
+                                    <textarea id = "editor" name="text" form="descriptionform" >
+                                    </textarea>
+                                </div>
+
+                                <div class="description-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>
+
+                            </div>
+                        </form>
+
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </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>
+<script  src="../assets/js/editDescription.js"></script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/enrollProject.jsp b/gemeinsamforschen/src/main/webapp/pages/enrollProject.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..4de718d37303e1c498deb9b562be7b2826f68a4b
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/enrollProject.jsp
@@ -0,0 +1,47 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
+
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>fltrail</title>
+    <link rel="stylesheet" href="../assets/css/styles.css">
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.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">
+    <script src="../assets/js/utility.js"></script>
+    <script src="../assets/js/enrollProject.js"></script>
+
+</head>
+
+<body>
+<div id="wrapper">
+    <menu:menu></menu:menu>
+    <div class="page-content-wrapper">
+        <div class="container-fluid">
+
+            <h1>Einschreiben in einen Kurs</h1>
+            <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>
+        </div>
+        <div style="margin-left: 2%;">
+            <br><br>
+            <label>Projektname: <input placeholder="Projektname"></label>
+            <label>Passwort: <input placeholder="Passwort"></label>
+        </div>
+        <button class="btn btn-default" type="button" id="submit">beitreten</button>
+    </div>
+</div>
+
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/eportfolio.jsp b/gemeinsamforschen/src/main/webapp/pages/eportfolio.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..9b8c7327608fa000855677daa9af7c1e62a1619e
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/eportfolio.jsp
@@ -0,0 +1,167 @@
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>E-Portfolio</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">
+    <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/e-portfolio.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>
+    <script src="../assets/js/utility.js"></script>
+
+</head>
+
+<body>
+<div id="wrapper">
+    <menu:menu></menu:menu>
+
+    <div class="page-content-wrapper">
+        <div class="container-fluid">
+            <h1 id="projectId">project1
+                <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>
+            <table>
+                <tr>
+                    <td  id="yourContent">
+
+                        <h1>E-Portfolio</h1>
+
+                        <ul class="nav nav-tabs">
+                            <li class="active"><a data-toggle="tab" href="#description">Beschreibung</a></li>
+                            <li><a data-toggle="tab" href="#journal-container">Lerntagebuch</a></li>
+                         </ul>
+                        <div class="tab-content">
+
+                            <div id = "description" class="tab-pane fade in active ">
+                              <div class="journal-description-container">
+                                    <div class="journal-description-title">
+                                    </div>
+                                    <div class="journal-description-edit" align="right">
+                                        <a id="editDescriptionLink" class="btn btn-default btn-sm">
+                                            <i class="fa fa-pencil"></i> Bearbeiten</a>
+                                        <a class="btn btn-default btn-sm" data-toggle="modal" data-target="#closeDescriptionModal"><i class="fa fa-check-square" aria-hidden="true"></i>Abschlie&szlig;en</a>
+
+                                    </div>
+                                    <div class="journal-description-text">
+                                    </div>
+                                    <div class="journal-description-group">
+                                        <h3>Gruppe</h3>
+                                    </div>
+                                    <div class="journal-description-links">
+                                        <h3>Links</h3>
+
+                                    </div>
+
+                                </div>
+                            </div>
+
+                            <div id="journal-container" class="tab-pane fade">
+                                    <h2>Lerntagebuch</h2>
+                                    <div class="input-group">
+                                    <select id="journalfilter" class="form-control" style="width:auto;" onchange="filterJournals()">
+                                        <option value="ALL">Alle</option>
+                                        <option value="OWN">Eigene</option>
+                                    </select>
+
+                                    <a id="createJournalLink"class="btn btn-default btn-sm" >Neu</a>
+                                </div>
+                                <div class="journal">
+                                </div>
+                        </div>
+                        </div>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div>
+</div>
+
+<div class="modal fade" id="addLinkModal" role="dialog">
+    <div class="modal-dialog modal-sm">
+        <div class="modal-content">
+            <div class="modal-header">
+                <button type="button" class="close" data-dismiss="modal">&times;</button>
+                <h4 class="modal-title">Link hinzuf&uuml;gen</h4>
+            </div>
+            <div class="modal-body">
+                <form id="linkform" method="POST" action="../rest/projectdescription/addLink" >
+                    Name:<br>
+                    <input type="text" name="name" form="linkform">
+                    <br>
+                    URL:<br>
+                    <input type="text" name="link" form="linkform">
+                    <br><br>
+                    <input class="btn btn-default" type="submit"  >
+                    <button type="button" class="btn btn-default" data-dismiss="modal">Abbrechen</button>
+                </form>
+            </div>
+        </div>
+    </div>
+</div>
+
+
+<div class="modal fade" id="closeJournalModal" role="dialog">
+    <div class="modal-dialog modal-sm">
+        <div class="modal-content">
+            <div class="modal-header">
+                <button type="button" class="close" data-dismiss="modal">&times;</button>
+                <h4 class="modal-title">Tagebucheintrag schließen</h4>
+            </div>
+            <div class="modal-body">
+                Tagebucheintrag schließen? Dieser Eintrag kann nach Bestätigung nicht mehr bearbeitet werden.
+            </div>
+            <div class="modal-footer">
+                <div class="btn-group">
+                    <button type="button" class="btn btn-primary mr-auto">Ja</button>
+                    <button type="button" class="btn btn-secondary" data-dismiss="modal">Nein</button>
+
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<div class="modal fade" id="closeDescriptionModal" role="dialog">
+    <div class="modal-dialog modal-sm">
+        <div class="modal-content">
+            <div class="modal-header">
+                <button type="button" class="close" data-dismiss="modal">&times;</button>
+                <h4 class="modal-title">Beschreibung schließen</h4>
+            </div>
+            <div class="modal-body">
+                Beschreibung schließen? Die Projektbeschreibung kann nach Bestätigung nicht mehr bearbeitet werden.
+            </div>
+            <div class="modal-footer">
+                <div class="btn-group">
+                    <button type="button" class="btn btn-primary mr-auto" data-dismiss="modal">Ja</button>
+                    <button type="button" class="btn btn-secondary" data-dismiss="modal">Nein</button>
+
+                </div>
+            </div>
+        </div>
+    </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>
+<script src="../assets/js/e-portfolio.js"></script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/finalAssessments.jsp b/gemeinsamforschen/src/main/webapp/pages/finalAssessments.jsp
index 29d953e8dbb3e58a857498cf416bd66797ee41b7..09ec382b8294edad32f29670b1ea81ec835e3ef8 100644
--- a/gemeinsamforschen/src/main/webapp/pages/finalAssessments.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/finalAssessments.jsp
@@ -1,5 +1,5 @@
-<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
-<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 
 <!DOCTYPE html>
 <html>
@@ -8,13 +8,14 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>muster-gemeinsam-forschen</title>
 
-    <script src="../assets/js/finalAssessment.js"></script>
     <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">
+    <script src="../assets/js/utility.js"></script>
+    <script src="../assets/js/finalAssessment.js"></script>
     <link rel="stylesheet" href="../assets/css/Sidebar-Menu-1.css">
     <link rel="stylesheet" href="../assets/css/Sidebar-Menu.css">
 </head>
@@ -41,257 +42,256 @@
                         <h1>Assessment for project1 </h1>
                         <!-- here will be all the content -->
                         <div class="container">
-                                <h2>Carousel Example</h2>
-                                <div id="myCarousel" class="carousel slide" data-ride="carousel">
-                                    <!-- 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>
+                            <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="carousel-inner">
-                                        <div class="item active">
-                                            <table class="table-striped peerStudent"
-                                                   style="width:70%;border:1px solid; margin:auto;" id="student1">
-                                                <tr>
-                                                    <td align="center">
-                                                        <img src="../assets/img/1.jpg" alt="student1"
-                                                             style="width:20%;">
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <h3>Führungsqualität</h3>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <label>gut<input type="radio" value="5"
-                                                                         name="leadership1"></label>
-                                                        <input type="radio" value="4" name="leadership1">
-                                                        <input type="radio" value="3" name="leadership1">
-                                                        <input type="radio" value="2" name="leadership1">
-                                                        <label><input type="radio" value="1" name="leadership1">
-                                                            ungenügend</label>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <h3>Kooperationsbereitschaft</h3>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <label><input type="radio" value="5" name="cooparation1">
-                                                            gut</label>
-                                                        <input type="radio" value="4" name="cooparation1">
-                                                        <input type="radio" value="3" name="cooparation1">
-                                                        <input type="radio" value="2" name="cooparation1">
-                                                        <label><input type="radio" value="1" name="cooparation1">
-                                                            ungenügend</label>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <h3>Pünktlichkeit</h3>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <label><input type="radio" value="5" name="punctual1">
-                                                            gut</label>
-                                                        <input type="radio" value="4" name="punctual1">
-                                                        <input type="radio" value="3" name="punctual1">
-                                                        <input type="radio" value="2" name="punctual1">
-                                                        <label><input type="radio" value="1" name="punctual1">
-                                                            ungenügend</label>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <h3>Selbstständigkeit</h3>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <label><input type="radio" value="5" name="autonomous1">
-                                                            gut</label>
-                                                        <input type="radio" value="4" name="autonomous1">
-                                                        <input type="radio" value="3" name="autonomous1">
-                                                        <input type="radio" value="2" name="autonomous1">
-                                                        <label><input type="radio" value="1" name="autonomous1">
-                                                            ungenügend</label>
-                                                    </td>
-                                                </tr>
-                                            </table>
-                                        </div>
-
-                                        <div class="item">
-                                            <table class="table-striped peerStudent"
-                                                   style="width:70%;border:1px solid; margin:auto;"  id="student2">
-                                                <tr>
-                                                    <td align="center">
-                                                        <img src="../assets/img/2.jpg" alt="student2"
-                                                             style="width:20%;">
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <h3>Führungsqualität</h3>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <label>gut<input type="radio" value="5"
-                                                                         name="leadership2"></label>
-                                                        <input type="radio" value="4" name="leadership2">
-                                                        <input type="radio" value="3" name="leadership2">
-                                                        <input type="radio" value="2" name="leadership2">
-                                                        <label><input type="radio" value="1" name="leadership2">
-                                                            ungenügend</label>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <h3>Kooperationsbereitschaft</h3>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <label><input type="radio" value="5" name="cooparation2">
-                                                            gut</label>
-                                                        <input type="radio" value="4" name="cooparation2">
-                                                        <input type="radio" value="3" name="cooparation2">
-                                                        <input type="radio" value="2" name="cooparation2">
-                                                        <label><input type="radio" value="1" name="cooparation2">
-                                                            ungenügend</label>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <h3>Pünktlichkeit</h3>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <label><input type="radio" value="5" name="punctual2">
-                                                            gut</label>
-                                                        <input type="radio" value="4" name="punctual2">
-                                                        <input type="radio" value="3" name="punctual2">
-                                                        <input type="radio" value="2" name="punctual2">
-                                                        <label><input type="radio" value="1" name="punctual2">
-                                                            ungenügend</label>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <h3>Selbstständigkeit</h3>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <label><input type="radio" value="5" name="autonomous2">
-                                                            gut</label>
-                                                        <input type="radio" value="4" name="autonomous2">
-                                                        <input type="radio" value="3" name="autonomous2">
-                                                        <input type="radio" value="2" name="autonomous2">
-                                                        <label><input type="radio" value="1" name="autonomous2">
-                                                            ungenügend</label>
-                                                    </td>
-                                                </tr>
-                                            </table>
-                                        </div>
+                                <!-- Wrapper for slides -->
+                                <div class="carousel-inner">
+                                    <div class="item active">
+                                        <table class="table-striped peerStudent"
+                                               style="width:70%;border:1px solid; margin:auto;" id="student1">
+                                            <tr>
+                                                <td align="center">
+                                                    <img src="../assets/img/1.jpg" alt="student1"
+                                                         style="width:20%;">
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <h3>Führungsqualität</h3>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <label>gut<input type="radio" value="5"
+                                                                     name="leadership1"></label>
+                                                    <input type="radio" value="4" name="leadership1">
+                                                    <input type="radio" value="3" name="leadership1">
+                                                    <input type="radio" value="2" name="leadership1">
+                                                    <label><input type="radio" value="1" name="leadership1">
+                                                        ungenügend</label>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <h3>Kooperationsbereitschaft</h3>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <label><input type="radio" value="5" name="cooparation1">
+                                                        gut</label>
+                                                    <input type="radio" value="4" name="cooparation1">
+                                                    <input type="radio" value="3" name="cooparation1">
+                                                    <input type="radio" value="2" name="cooparation1">
+                                                    <label><input type="radio" value="1" name="cooparation1">
+                                                        ungenügend</label>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <h3>Pünktlichkeit</h3>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <label><input type="radio" value="5" name="punctual1">
+                                                        gut</label>
+                                                    <input type="radio" value="4" name="punctual1">
+                                                    <input type="radio" value="3" name="punctual1">
+                                                    <input type="radio" value="2" name="punctual1">
+                                                    <label><input type="radio" value="1" name="punctual1">
+                                                        ungenügend</label>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <h3>Selbstständigkeit</h3>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <label><input type="radio" value="5" name="autonomous1">
+                                                        gut</label>
+                                                    <input type="radio" value="4" name="autonomous1">
+                                                    <input type="radio" value="3" name="autonomous1">
+                                                    <input type="radio" value="2" name="autonomous1">
+                                                    <label><input type="radio" value="1" name="autonomous1">
+                                                        ungenügend</label>
+                                                </td>
+                                            </tr>
+                                        </table>
+                                    </div>
 
-                                        <div class="item">
-                                            <table class="table-striped peerStudent"
-                                                   style="width:70%;border:1px solid; margin:auto;" id="student3">
-                                                <tr>
-                                                    <td align="center">
-                                                        <img src="../assets/img/3.jpg" alt="student3"
-                                                             style="width:20%;">
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <h3>Führungsqualität</h3>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <label>gut<input type="radio" value="5"
-                                                                         name="leadership3"></label>
-                                                        <input type="radio" value="4" name="leadership3">
-                                                        <input type="radio" value="3" name="leadership3">
-                                                        <input type="radio" value="2" name="leadership3">
-                                                        <label><input type="radio" value="1" name="leadership3">
-                                                            ungenügend</label>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <h3>Kooperationsbereitschaft</h3>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <label><input type="radio" value="5" name="cooparation3">
-                                                            gut</label>
-                                                        <input type="radio" value="4" name="cooparation3">
-                                                        <input type="radio" value="3" name="cooparation3">
-                                                        <input type="radio" value="2" name="cooparation3">
-                                                        <label><input type="radio" value="1" name="cooparation3">
-                                                            ungenügend</label>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <h3>Pünktlichkeit</h3>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <label><input type="radio" value="5" name="punctual3">
-                                                            gut</label>
-                                                        <input type="radio" value="4" name="punctual3">
-                                                        <input type="radio" value="3" name="punctual3">
-                                                        <input type="radio" value="2" name="punctual3">
-                                                        <label><input type="radio" value="1" name="punctual3">
-                                                            ungenügend</label>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <h3>Selbstständigkeit</h3>
-                                                    </td>
-                                                </tr>
-                                                <tr>
-                                                    <td align="center">
-                                                        <label><input type="radio" value="5" name="autonomous3">
-                                                            gut</label>
-                                                        <input type="radio" value="4" name="autonomous3">
-                                                        <input type="radio" value="3" name="autonomous3">
-                                                        <input type="radio" value="2" name="autonomous3">
-                                                        <label><input type="radio" value="1" name="autonomous3">
-                                                            ungenügend</label>
-                                                    </td>
-                                                </tr>
-                                            </table>
-                                        </div>
+                                    <div class="item">
+                                        <table class="table-striped peerStudent"
+                                               style="width:70%;border:1px solid; margin:auto;" id="student2">
+                                            <tr>
+                                                <td align="center">
+                                                    <img src="../assets/img/2.jpg" alt="student2"
+                                                         style="width:20%;">
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <h3>Führungsqualität</h3>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <label>gut<input type="radio" value="5"
+                                                                     name="leadership2"></label>
+                                                    <input type="radio" value="4" name="leadership2">
+                                                    <input type="radio" value="3" name="leadership2">
+                                                    <input type="radio" value="2" name="leadership2">
+                                                    <label><input type="radio" value="1" name="leadership2">
+                                                        ungenügend</label>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <h3>Kooperationsbereitschaft</h3>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <label><input type="radio" value="5" name="cooparation2">
+                                                        gut</label>
+                                                    <input type="radio" value="4" name="cooparation2">
+                                                    <input type="radio" value="3" name="cooparation2">
+                                                    <input type="radio" value="2" name="cooparation2">
+                                                    <label><input type="radio" value="1" name="cooparation2">
+                                                        ungenügend</label>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <h3>Pünktlichkeit</h3>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <label><input type="radio" value="5" name="punctual2">
+                                                        gut</label>
+                                                    <input type="radio" value="4" name="punctual2">
+                                                    <input type="radio" value="3" name="punctual2">
+                                                    <input type="radio" value="2" name="punctual2">
+                                                    <label><input type="radio" value="1" name="punctual2">
+                                                        ungenügend</label>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <h3>Selbstständigkeit</h3>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <label><input type="radio" value="5" name="autonomous2">
+                                                        gut</label>
+                                                    <input type="radio" value="4" name="autonomous2">
+                                                    <input type="radio" value="3" name="autonomous2">
+                                                    <input type="radio" value="2" name="autonomous2">
+                                                    <label><input type="radio" value="1" name="autonomous2">
+                                                        ungenügend</label>
+                                                </td>
+                                            </tr>
+                                        </table>
                                     </div>
 
-                                    <!-- Left and right controls -->
-                                    <a class="left carousel-control" href="#myCarousel" data-slide="prev">
-                                        <span class="glyphicon glyphicon-chevron-left"></span>
-                                        <span class="sr-only">Previous</span>
-                                    </a>
-                                    <a class="right carousel-control" href="#myCarousel" data-slide="next">
-                                        <span class="glyphicon glyphicon-chevron-right"></span>
-                                        <span class="sr-only">Next</span>
-                                    </a>
+                                    <div class="item">
+                                        <table class="table-striped peerStudent"
+                                               style="width:70%;border:1px solid; margin:auto;" id="student3">
+                                            <tr>
+                                                <td align="center">
+                                                    <img src="../assets/img/3.jpg" alt="student3"
+                                                         style="width:20%;">
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <h3>Führungsqualität</h3>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <label>gut<input type="radio" value="5"
+                                                                     name="leadership3"></label>
+                                                    <input type="radio" value="4" name="leadership3">
+                                                    <input type="radio" value="3" name="leadership3">
+                                                    <input type="radio" value="2" name="leadership3">
+                                                    <label><input type="radio" value="1" name="leadership3">
+                                                        ungenügend</label>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <h3>Kooperationsbereitschaft</h3>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <label><input type="radio" value="5" name="cooparation3">
+                                                        gut</label>
+                                                    <input type="radio" value="4" name="cooparation3">
+                                                    <input type="radio" value="3" name="cooparation3">
+                                                    <input type="radio" value="2" name="cooparation3">
+                                                    <label><input type="radio" value="1" name="cooparation3">
+                                                        ungenügend</label>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <h3>Pünktlichkeit</h3>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <label><input type="radio" value="5" name="punctual3">
+                                                        gut</label>
+                                                    <input type="radio" value="4" name="punctual3">
+                                                    <input type="radio" value="3" name="punctual3">
+                                                    <input type="radio" value="2" name="punctual3">
+                                                    <label><input type="radio" value="1" name="punctual3">
+                                                        ungenügend</label>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <h3>Selbstständigkeit</h3>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td align="center">
+                                                    <label><input type="radio" value="5" name="autonomous3">
+                                                        gut</label>
+                                                    <input type="radio" value="4" name="autonomous3">
+                                                    <input type="radio" value="3" name="autonomous3">
+                                                    <input type="radio" value="2" name="autonomous3">
+                                                    <label><input type="radio" value="1" name="autonomous3">
+                                                        ungenügend</label>
+                                                </td>
+                                            </tr>
+                                        </table>
+                                    </div>
                                 </div>
-                                <button class="btn btn-success" id="assessThePeer">Gruppe bewerten</button>
+
+                                <!-- Left and right controls -->
+                                <a class="left carousel-control" href="#myCarousel" data-slide="prev">
+                                    <span class="glyphicon glyphicon-chevron-left"></span>
+                                    <span class="sr-only">Previous</span>
+                                </a>
+                                <a class="right carousel-control" href="#myCarousel" data-slide="next">
+                                    <span class="glyphicon glyphicon-chevron-right"></span>
+                                    <span class="sr-only">Next</span>
+                                </a>
+                            </div>
+                            <button class="btn btn-success" id="assessThePeer">Gruppe bewerten</button>
                         </div>
                     </td>
                     <td id="chat">
diff --git a/gemeinsamforschen/src/main/webapp/pages/givefeedback.jsp b/gemeinsamforschen/src/main/webapp/pages/givefeedback.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..c01c2a3c665c4a23f249fac3e5cba112107e885e
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/givefeedback.jsp
@@ -0,0 +1,203 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+
+<!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">
+    <script src="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script>
+    <script src="https://cdn.rawgit.com/showdownjs/showdown/1.8.5/dist/showdown.min.js"></script>
+    <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>
+</head>
+
+<body>
+<div id="wrapper">
+    <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>
+        <div>
+            <table>
+                <tr>
+                    <h2> Gib dein Feedback ein!</h2>
+                    <div class="line-spacer"></div>
+                    <p><span> Datei zum Feedback: SelectedFile.pdf </span></p>
+                    <p class="text-primary"><span> Kategorie: Untersuchungskonzept </span></p>
+                    <hr />
+                    <div class="form-check">
+                        <input class="form-check-input" type="checkbox" value="" id="defaultCheck1">
+                        <label class="form-check-label" for="defaultCheck1">
+                            Das fand ich gut
+                        </label>
+                    </div>
+                    <div class="form-check">
+                        <input class="form-check-input" type="checkbox" value="" id="defaultCheck2">
+                        <label class="form-check-label" for="defaultCheck1">
+                            Ich habe noch eine Frage
+                        </label>
+                    </div>
+                    <div class="form-check">
+                        <input class="form-check-input" type="checkbox" value="" id="defaultCheck3">
+                        <label class="form-check-label" for="defaultCheck1">
+                            Das wuerde ich anders machen
+                        </label>
+                    </div>
+                    <div class="form-check">
+                        <input class="form-check-input" type="checkbox" value="" id="defaultCheck4">
+                        <label class="form-check-label" for="defaultCheck1">
+                            Ich habe eine Idee
+                        </label>
+                    </div>
+                    <hr />
+                    <div class="line-spacer"></div>
+                    <td  id="Peerfeedback" valign="top">
+
+
+                        <div style="height:100px;padding-bottom:100px;">
+			            <textarea id="demo1">
+				            Das ist ein Test!
+			            </textarea>
+                        </div>
+
+                        <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",
+                            });
+
+
+                            editor.style = "min-height: 100px";
+
+                            function save() {
+                                console.log("save");
+                                console.log(editor.value());
+
+                                var converter = new showdown.Converter(),
+                                    text      = editor.value(),
+                                    html      = converter.makeHtml(text);
+
+                                document.getElementById('output').innerHTML = html;11
+                            }
+
+                        </script>
+
+                        <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>
+</table>
+</div>
+</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/overview-docent.jsp b/gemeinsamforschen/src/main/webapp/pages/overview-docent.jsp
index 3b51adde07e1878eaa3eabcebb3d3bacbe01c17a..a25d71d8d35bdaa5a3760e11eb5d7e23b3a044f0 100644
--- a/gemeinsamforschen/src/main/webapp/pages/overview-docent.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/overview-docent.jsp
@@ -12,6 +12,8 @@
     <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>
+    <script src="../assets/js/utility.js"></script>
+    <script src="../assets/js/overview-docent.js"></script>
 
     <link rel="stylesheet" href="../assets/fonts/font-awesome.min.css">
     <link rel="stylesheet" href="../assets/css/Community-ChatComments.css">
@@ -31,7 +33,7 @@
                           style="font-size:29px;margin-left:5px;margin-top:-25px;"></span></a>
         <div>
             <table id="projects">  <!-- getElementById('projects').append um neue Projekte anzufügen -->
-                <tr style="cursor:pointer" role="button">
+                <tr class="pageChanger">
                     <td>
                         <a id="project1Link">
                             <h1>dummy Projekt1</h1>
@@ -64,9 +66,9 @@
                 <tr>
                     <td></td>
                 </tr>
-                <tr style="cursor:pointer" role="button">
+                <tr class="pageChanger">
                     <td>
-                        <a href="project-docent.jsp">
+                        <a id="project2Link">
                             <h1>dummy Projekt2</h1>
                         </a>
                     </td>
@@ -96,7 +98,7 @@
                 </tr>
             </table>
         </div>
-        <button class="btn btn-default" type="button" style="margin-left:250px;">Projekt erstellen</button>
+        <button class="btn btn-default" type="button" id="createProject" style="margin-left:250px;">Projekt erstellen</button>
     </div>
 </div>
 
diff --git a/gemeinsamforschen/src/main/webapp/pages/overview-student.jsp b/gemeinsamforschen/src/main/webapp/pages/overview-student.jsp
index fd000e5ebcc933f52c5ca6b4946638e170031135..ab21d52a2995b2e150d0883d456dd72fce018d53 100644
--- a/gemeinsamforschen/src/main/webapp/pages/overview-student.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/overview-student.jsp
@@ -1,4 +1,4 @@
-<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 
 <!DOCTYPE html>
@@ -24,15 +24,16 @@
 <div id="wrapper">
     <menu:menu></menu:menu>
     <div class="page-content-wrapper">
-
-        <h1>Übersicht für Student1</h1>
-        <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>
+        <div class="container-fluid">
+            <h1>Übersicht für Student1</h1>
+            <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>
+        </div>
         <div>
             <table id="projects">  <!-- getElementById('projects').append um neue Projekte anzufügen -->
-                <tr style="cursor:pointer" role="button">
+                <tr class="pageChanger">
                     <td>
                         <a id="project1Link">
                             <h1>dummy Projekt1</h1>
@@ -46,6 +47,7 @@
                             <div class="panel panel-default">
                                 <div class="panel-heading">
                                     <h3 class="panel-title">Newsfeed </h3>
+                                    Status: abgeschlossen mit Bewertung 2+
                                 </div>
                                 <div class="panel-body">
                                     <ul class="list-group">
@@ -65,9 +67,9 @@
                 <tr>
                     <td></td>
                 </tr>
-                <tr style="cursor:pointer" role="button">
+                <tr class="pageChanger">
                     <td>
-                        <a href="project-docent.jsp">
+                        <a href="project-student.jsp">
                             <h1>dummy Projekt2</h1>
                         </a>
                     </td>
@@ -79,6 +81,7 @@
                             <div class="panel panel-default">
                                 <div class="panel-heading">
                                     <h3 class="panel-title">Newsfeed </h3>
+                                    Status: Gruppenbildung
                                 </div>
                                 <div class="panel-body">
                                     <ul class="list-group">
@@ -97,7 +100,7 @@
                 </tr>
             </table>
         </div>
-        <button class="btn btn-default" type="button" style="margin-left:250px;">Projekt beitreten</button>
+        <button class="btn btn-default" type="button" style="margin-left:250px;" id="enrollProject">Projekt beitreten</button>
     </div>
 </div>
 
diff --git a/gemeinsamforschen/src/main/webapp/pages/profile.jsp b/gemeinsamforschen/src/main/webapp/pages/profile.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..7f37281156d4d10c858001fff953e5d9c5aa6b29
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/profile.jsp
@@ -0,0 +1,135 @@
+<%@ page import="unipotsdam.gf.core.management.ManagementImpl" %>
+<%@ page import="unipotsdam.gf.core.management.user.User" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+
+<!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">
+</head>
+
+
+<%
+    // Retrieve user to be used here
+    String token = request.getParameter("token");
+    ManagementImpl management = new ManagementImpl();
+    User user =  management.getUserByToken(token);
+%>
+
+<body>
+<div id="wrapper">
+    <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>
+
+            <div class="container">
+                <div class="row">
+                    <%-- about --%>
+                    <div class="col-sm-4">
+                        <h3>&Uuml;ber mich</h3>
+                        <%-- TODO: retrieve profile data --%>
+                        <ul class="list-group">
+                            <li class="list-group-item">
+                                <p>Name: <%=user.getName()%></p>
+                            </li>
+                            <li class="list-group-item">
+                                <p>Sonstiges:</p>
+                            </li>
+                        </ul>
+
+                    </div>
+
+                    <%-- activites --%>
+                    <div class="col-sm-4">
+                        <h3>Aktivit&auml;t</h3>
+                        <%-- TODO: Retrieve achievements from database--%>
+                        <ul class="list-group">
+                            <li class="list-group-item">
+                                <p>
+                                    Forschungsfrage erstellt
+                                    <a href="#">
+                                        <span class="glyphicon glyphicon-link"></span>
+                                    </a>
+                                </p>
+                            </li>
+                            <li class="list-group-item">
+                                <p>
+                                    Quiz "Goethe" erstellt
+                                    <a href="#">
+                                        <span class="glyphicon glyphicon-link"></span>
+                                    </a>
+                                </p>
+                            </li>
+                            <li class="list-group-item">
+                                <p>
+                                    Quiz "Schiller-Test" bearbeitet (3/5)
+                                    <a href="#">
+                                        <span class="glyphicon glyphicon-link"></span>
+                                    </a>
+                                </p>
+                            </li>
+                            <li class="list-group-item">
+                                <p>
+                                    Günther reviewed
+                                    <a href="#">
+                                        <span class="glyphicon glyphicon-link"></span>
+                                    </a>
+                                </p>
+                            </li>
+                        </ul>
+                    </div>
+
+                    <%-- achievements --%>
+                    <div class="col-sm-4">
+                        <h3>Erfolge</h3>
+                        <%-- TODO: get achievements --%>
+
+                        <ul class="list-group">
+                            <li class="list-group-item">
+                                Quiz "Thermodynamik" ohne Fehler absolviert
+                            </li>
+                            <li class="list-group-item">
+                                Dossier vollständig hochgeladen
+                            </li>
+                        </ul>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </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 bd4a51d7cc9182d70ab3e56aa6b47b0479630b93..e7323fe38f582b0f9fccaba76f4a000b6175f2bf 100644
--- a/gemeinsamforschen/src/main/webapp/pages/project-docent.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/project-docent.jsp
@@ -1,36 +1,46 @@
-<!DOCTYPE html>
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 <%@ taglib prefix = "communication" uri = "/communication/chatWindow.tld"%>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+
+
+<!DOCTYPE html>
 <html>
 
 <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <title>project-student (copy)</title>
-    <link rel="stylesheet" href="../assets/bootstrap/css/bootstrap.min.css">
-    <link rel="stylesheet" href="../assets/css/Community-ChatComments.css">
+    <title>fltrail</title>
     <link rel="stylesheet" href="../assets/css/styles.css">
-    <script src="../assets/js/jquery.min.js"></script>
-    <script src="../assets/bootstrap/js/bootstrap.min.js"></script>
-    <script src="../assets/js/AlertAssessmentOutlier.js"></script>
-
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.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">
+    <script src="../assets/js/utility.js"></script>
 </head>
 
 <body>
+<div id="wrapper">
+    <menu:menu></menu:menu>
+
+    <div class="page-content-wrapper">
+        <div class="container-fluid">
     <h1>dummy Projekt1 für Dozent1</h1><button class="btn btn-default" type="button">Gruppen erstellen</button><button class="btn btn-default" type="button">Projekt finalisieren</button><button class="btn btn-default" type="button">Exportiere Projektergebnisse</button>
+        </div>
     <button
         class="btn btn-default" type="button">Exportiere Zwischenstand</button><button class="btn btn-default" type="button">Quizfrage erstellen</button>
         <div>
             <div class="container">
                 <div class="row">
-                    <div class="col-md-4">
+                    <div class="col-md-6">
                         <div class="table-responsive" style="width:294px;">
                             <table class="table">
                                 <thead>
                                     <tr>
                                         <th>Gruppe1 </th>
                                         <th>Beiträge </th>
-                                        <th> <button id="ProblemGrp1">!</button> </th>
-                                        <p id="demo"></p>
                                     </tr>
                                 </thead>
                                 <tbody>
@@ -86,10 +96,7 @@
                             </table>
                         </div>
                     </div>
-                    <div class="col-md-4">
-                        <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/74/Liniendiagramm-Beispiel.svg/750px-Liniendiagramm-Beispiel.svg.png", width="280">
-                    </div>
-                    <div class="col-md-4">
+                    <div class="col-md-6">
                         <div class="panel panel-default">
                             <div class="panel-heading">
                                 <h3 class="panel-title">ProjektChat</h3>
@@ -138,8 +145,9 @@
                 </div>
             </div>
         </div>
+    </div>
+</div>
     <communication:chatWindow orientation="right"></communication:chatWindow>
-
 </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 56d203004a59c56540948d5011d9f3089cd8908b..d67bfa0b603a4d3ab4a805976c19bc16b3c70bf6 100644
--- a/gemeinsamforschen/src/main/webapp/pages/project-student.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/project-student.jsp
@@ -1,5 +1,12 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%--suppress XmlDuplicatedId --%>
+
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
 
+
+<!--todo: E-mail an Studenten als Notifikation für Phasenwechsel -->
+
+
 <!DOCTYPE html>
 <html>
 
@@ -9,12 +16,18 @@
     <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">
+    <link rel="stylesheet" href="../assets/css/footer.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">
+    <script src="../assets/js/footer.js"></script>
+    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">
+    <script src="../assets/js/utility.js"></script>
+    <script src="../assets/js/project-student.js"></script>
+    <script src="../assets/js/Sidebar-Menu.js"></script>
 </head>
 
 <body>
@@ -23,57 +36,112 @@
 
     <div class="page-content-wrapper">
         <div class="container-fluid">
-            <h1 id="projectId">project1
+            <h1 id="projectId">Project 1</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-envelope"
-                      style="font-size:27px;margin-top:-17px;margin-left:600px;"></span>
+                <span class="glyphicon glyphicon-cog" style="font-size:29px;margin-right:30px;margin-top:3px;"></span>
             </a>
-            <a href="#">
-                <span class="glyphicon glyphicon-cog" style="font-size:29px;margin-left:5px;margin-top:-25px;"></span>
-            </a></h1>
+
         </div>
         <div>
             <table>
                 <tr>
                     <td  id="yourContent">
-                        <h1>your content guys and girls!</h1>
+                        <h1>Feedbackable Students</h1>
                         <!-- here will be all the content -->
-                        <table>
+                        <table id="myGroupMembers">
                             <tr>
-                                <td>
+
+                                <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</li>
-                                        <li>Blumen ins Hausaufgabenheft geklebt</li>
+
+                                        <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>
+                                        </a>
                                     </ul>
                                 </td>
-                                <td> </td>
-                                <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>feedback zu Herbarium im Hausaufgabenheft gegeben</li>
-                                        <li>Blumen an Vegetarier verfüttert</li>
-                                        <li>Die armen Vegetarier</li>
+                                        <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>
+                                <td></td>
+
+                                <td width="100px" valign="top">
                                     <h3>student3</h3>
                                     <img src="../assets/img/3.jpg">
                                     <a href="#">student3@uni.de</a>
                                     <hr>
                                     <ul>
-                                        <li>Viva la Floristika</li>
+                                        <li>
+                                            "Viva la Floristika" - Titel 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>
                                     </ul>
                                 </td>
+
                             </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">
@@ -137,11 +205,23 @@
             </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>
 </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-student.jsp.orig b/gemeinsamforschen/src/main/webapp/pages/project-student.jsp.orig
new file mode 100644
index 0000000000000000000000000000000000000000..79ff3d3adb039143a4b44e810eddd80c2d1906c6
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/project-student.jsp.orig
@@ -0,0 +1,221 @@
+<<<<<<< HEAD
+<%--suppress XmlDuplicatedId --%>
+=======
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+
+>>>>>>> PeerAssessmentAxel
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+
+<!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">
+    <link rel="stylesheet" href="../assets/css/footer.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">
+<<<<<<< HEAD
+    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">
+    <script src="../assets/js/utility.js"></script>
+    <script src="../assets/js/project-student.js"></script>
+=======
+    <script src="../assets/js/jquery.min.js"></script>
+    <script src="../assets/js/footer.js"></script>
+    <script src="../assets/bootstrap/js/bootstrap.min.js"></script>
+    <script src="../assets/js/Sidebar-Menu.js"></script>
+>>>>>>> PeerAssessmentAxel
+</head>
+
+<body>
+<div id="wrapper">
+    <menu:menu></menu:menu>
+
+    <div class="page-content-wrapper">
+        <div class="container-fluid">
+            <h1 id="projectId">Project 1</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>
+            <table>
+                <tr>
+                    <td  id="yourContent">
+                        <h1>Feedbackable Students</h1>
+                        <!-- here will be all the content -->
+                        <table>
+                            <tr>
+
+                                <td width="100px" valign="top">
+                                    <h3>student1</h3>
+                                    <img src="../assets/img/1.jpg">
+                                    <a href="#">student1@uni.de</a>
+                                    <hr>
+                                    <ul>
+
+                                        <li><a class="annotationview" role="button">
+                                            Projektuebersicht hochgeladen
+                                            <i class="far fa-comments"></i>
+                                            </a>
+                                        </li>
+                                        <li><a class="annotationview" role="button">
+                                            Blumen ins Hausaufgabenheft geklebt
+                                            <i class="far fa-comments"></i>
+                                            </a>
+                                        </li>
+                                        </a>
+                                    </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><a class="annotationview" role="button">
+                                            Blumen an Vegetarier verfuettert
+                                            <i class="far fa-comments"></i>
+                                        </a></li>
+                                        <li><a class="annotationview" role="button">
+                                            Literaturverzeichnis hochgeladen
+                                            <i class="far fa-comments"></i>
+                                            </a></li>
+                                        <li><a class="annotationview" role="button">
+                                            Die armen Vegetarier
+                                            <i class="far fa-comments"></i>
+                                            </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>
+                                        <li><a class="annotationview" role="button">
+                                            "Viva la Floristika" - Titel hochgeladen
+                                            <i class="far fa-comments"></i>
+                                            </a>
+                                        </li>
+                                    </ul>
+                                </td>
+
+                            </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>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div>
+    <footer>
+        <div class="container">
+            <div class="progress">
+                <div class="progress-bar pg-enrollment" role="progressbar" id="progressbar">
+                </div>
+                <div>
+                    Assessment - Präsentationsphase - Dossier - Reflexionsphase - Feedbackphase - Gruppenbildung -  Kursanmeldung
+                </div>
+                <div class="progress-bar pg-rest" role="progressbar">
+                </div>
+            </div>
+            <button id="nextPhase" class="btn btn-light">nächste Phase</button>
+        </div>
+    </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
new file mode 100644
index 0000000000000000000000000000000000000000..1cbd97668612b785995299c089e0dc8313a71732
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/rateContribution.jsp
@@ -0,0 +1,163 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
+<!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>
+    <script src="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script>
+    <script src="https://cdn.rawgit.com/showdownjs/showdown/1.8.5/dist/showdown.min.js"></script>
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css">
+    <script src="../assets/js/rateContribution.js"></script>
+    <script src="../assets/js/utility.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">
+</head>
+
+<body>
+<div id="wrapper">
+    <menu:menu></menu:menu>
+    <div class="page-content-wrapper">
+        <div class="container-fluid">
+            <h1 id="projectId">project1
+                <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>
+            <table>
+                <tr>
+                    <td id="yourContent">
+                        <h1>letzter Schritt im Projekt1 </h1>
+                        <table class="table-striped peerStudent"
+                               style="width:100%;border:1px solid; margin:auto;" id="student1">
+                            <tr>
+                                <td align="center">
+                                    <img src="../assets/img/1.jpg" alt="student1"
+                                         style="width:20%;">
+                                </td>
+                            </tr>
+                            <tr>
+                                <td>
+                                    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="ejournalRating">Perfekt</label>
+                                    <label><input type="radio" name="ejournalRating">Makellos</label>
+                                    <label><input type="radio" name="ejournalRating">regulär</label>
+                                    <label><input type="radio" name="ejournalRating">Makelhaft</label>
+                                    <label><input type="radio" name="ejournalRating">Lädiert</label>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td>
+                                    Dossier:
+                                    Die meisten Menschen sind bereit zu lernen, aber nur die wenigsten, sich belehren zu
+                                    lassen.
+                                    <textarea id="dossierFeedback">
+				                        meine Bewertung
+			                        </textarea>
+                                    <label><input type="radio" name="dossierlRating">Perfekt</label>
+                                    <label><input type="radio" name="dossierRating">Makellos</label>
+                                    <label><input type="radio" name="dossierRating">regulär</label>
+                                    <label><input type="radio" name="dossierRating">Makelhaft</label>
+                                    <label><input type="radio" name="dossierRating">Lädiert</label>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td>
+                                    Präsentation: <a href="#"><i class="fa fa-paperclip"></i></a>
+                                    <textarea id="presentationFeedback">
+				                        meine Bewertung
+			                        </textarea>
+                                    <label><input type="radio" name="presentationRating">Perfekt</label>
+                                    <label><input type="radio" name="presentationRating">Makellos</label>
+                                    <label><input type="radio" name="presentationRating">regulär</label>
+                                    <label><input type="radio" name="presentationRating">Makelhaft</label>
+                                    <label><input type="radio" name="presentationRating">Lädiert</label>
+                                </td>
+                            </tr>
+                        </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>
+</div>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/researchReportBibo.jsp b/gemeinsamforschen/src/main/webapp/pages/researchReportBibo.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..d381386797e3f00c8ffbd18c46527e2cfafb0c8b
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/researchReportBibo.jsp
@@ -0,0 +1,75 @@
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+
+<!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">
+    <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css">
+    <title>Forschungsbericht erstellen</title>
+</head>
+<body>
+
+
+
+<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>
+    </div>
+
+    <div class ="researchReportEditor">
+        <h2 class="editor-inhalt">Literaturverzeichnis eingeben:</h2>
+        <textarea id = "editor" name="text" form="researchReportForm" rows="20" cols="100">
+				</textarea>
+    </div>
+    <div class="ResearchReportButtons">
+        <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="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>
+            </menu>
+        </nav>
+    </div>
+
+</form>
+
+<script>
+
+</script>
+
+</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
new file mode 100644
index 0000000000000000000000000000000000000000..e3329194ddd6e852c0675f67491510c48dfd0f5b
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/researchReportConcept.jsp
@@ -0,0 +1,76 @@
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+
+<!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">
+    <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css">
+    <title>Forschungsbericht erstellen</title>
+</head>
+<body>
+
+
+
+<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>
+    </div>
+
+    <div class ="researchReportEditor">
+        <h2 class="editor-inhalt">Untersuchungskonzept eingeben:</h2>
+        <textarea id = "editor" name="text" form="researchReportForm" rows="20" cols="100">
+				</textarea>
+    </div>
+    <div class="ResearchReportButtons">
+        <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="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>
+            </menu>
+        </nav>
+    </div>
+
+</form>
+
+<script>
+
+</script>
+
+</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
new file mode 100644
index 0000000000000000000000000000000000000000..2e61fc39949c13a82749b721846dbf9b316e00f6
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/researchReportDo.jsp
@@ -0,0 +1,76 @@
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+
+<!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">
+    <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css">
+    <title>Forschungsbericht erstellen</title>
+</head>
+<body>
+
+
+
+<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 7/8</h1>
+    </div>
+
+    <div class ="researchReportEditor">
+        <h2 class="editor-inhalt">Durchf&uuml;hrung eingeben:</h2>
+        <textarea id = "editor" name="text" form="researchReportForm" rows="20" cols="100">
+				</textarea>
+    </div>
+    <div class="ResearchReportButtons">
+        <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="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>
+            </menu>
+        </nav>
+    </div>
+
+</form>
+
+<script>
+
+</script>
+
+</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
new file mode 100644
index 0000000000000000000000000000000000000000..57bea8045cf358e2b2ff765f684d102b49879246
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/researchReportEvaluation.jsp
@@ -0,0 +1,76 @@
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+
+<!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">
+    <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css">
+    <title>Forschungsbericht erstellen</title>
+</head>
+<body>
+
+
+
+<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 8/8</h1>
+    </div>
+
+    <div class ="researchReportEditor">
+        <h2 class="editor-inhalt">Auswertung eingeben:</h2>
+        <textarea id = "editor" name="text" form="researchReportForm" rows="20" cols="100">
+				</textarea>
+    </div>
+    <div class="ResearchReportButtons">
+        <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="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>
+            </menu>
+        </nav>
+    </div>
+
+</form>
+
+<script>
+
+</script>
+
+</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
new file mode 100644
index 0000000000000000000000000000000000000000..cea25f4e97b9503d10ed2ddaa85ae698d6f43b01
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/researchReportMethod.jsp
@@ -0,0 +1,76 @@
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+
+<!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">
+    <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css">
+    <title>Forschungsbericht erstellen</title>
+</head>
+<body>
+
+
+
+<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>
+    </div>
+
+    <div class ="researchReportEditor">
+        <h2 class="editor-inhalt">Methodik eingeben:</h2>
+        <textarea id = "editor" name="text" form="researchReportForm" rows="20" cols="100">
+				</textarea>
+    </div>
+    <div class="ResearchReportButtons">
+        <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="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>
+            </menu>
+        </nav>
+    </div>
+
+</form>
+
+<script>
+
+</script>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/researchReportQuestion.jsp b/gemeinsamforschen/src/main/webapp/pages/researchReportQuestion.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..ec485438f6b2494072e76f5dbdffca885719f771
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/researchReportQuestion.jsp
@@ -0,0 +1,75 @@
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+
+<!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">
+    <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css">
+    <title>Forschungsbericht erstellen</title>
+</head>
+<body>
+
+
+
+
+<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>
+    </div>
+
+    <div class ="researchReportEditor">
+        <h2 class="editor-inhalt">Forschungsfrage eingeben:</h2>
+        <textarea id = "editor" name="text" form="researchReportForm" rows="10" cols="100">
+				</textarea>
+    </div>
+    <div class="ResearchReportButtons">
+        <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="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>
+            </menu>
+        </nav>
+    </div>
+
+</form>
+
+<script>
+</script>
+
+</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
new file mode 100644
index 0000000000000000000000000000000000000000..e9d3d76bf7b411d6eef1e848d46bb471cc7f683e
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/researchReportRecherche.jsp
@@ -0,0 +1,75 @@
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+
+<!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">
+    <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css">
+    <title>Forschungsbericht erstellen</title>
+</head>
+<body>
+
+
+
+<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>
+    </div>
+
+    <div class ="researchReportEditor">
+        <h2 class="editor-inhalt">Recherche eingeben:</h2>
+        <textarea id = "editor" name="text" form="researchReportForm" rows="20" cols="100">
+				</textarea>
+    </div>
+    <div class="ResearchReportButtons">
+        <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="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>
+            </menu>
+        </nav>
+    </div>
+
+</form>
+
+<script>
+
+</script>
+
+</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
new file mode 100644
index 0000000000000000000000000000000000000000..a4bdcacfcc0953dcf759f6b7c13d15544cdc1259
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/researchReportTitle.jsp
@@ -0,0 +1,76 @@
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+
+<!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">
+    <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css">
+    <title>Forschungsbericht erstellen</title>
+</head>
+<body>
+
+
+
+<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 1/8</h1>
+    </div>
+
+    <div class ="researchReportEditor">
+        <h2 class="editor-inhalt">Titel eingeben:</h2>
+        <textarea id = "editor" name="text" form="researchReportForm" rows="20" cols="100">
+				</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>
+    </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>
+            </menu>
+        </nav>
+    </div>
+
+</form>
+
+<script>
+
+</script>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/specificRequirement.jsp b/gemeinsamforschen/src/main/webapp/pages/specificRequirement.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..7c2a043255ef4e1e23096946f9daedf3cea2ae79
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/specificRequirement.jsp
@@ -0,0 +1,61 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
+
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>fltrail</title>
+    <link rel="stylesheet" href="../assets/css/styles.css">
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.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">
+    <script src="../assets/js/utility.js"></script>
+    <script src="../assets/js/specificSkills.js"></script>
+
+</head>
+
+<body>
+<div id="wrapper">
+    <menu:menu></menu:menu>
+    <div class="page-content-wrapper">
+        <div class="container-fluid">
+
+            <h1>Einschreiben in einen Kurs</h1>
+            <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>
+        </div>
+        <div align="center">
+            <h2>Wie schätzen Sie sich in folgenden Kategorien ein?</h2>
+            <br><br>
+            <p><input placeholder="Kriterium1">
+                <label>stark<input type="radio" name="groupCriterion1"></label>
+                <input type="radio" name="groupCriterion1">
+                <input type="radio" name="groupCriterion1">
+                <input type="radio" name="groupCriterion1">
+                <label><input type="radio" name="groupCriterion1">schwach</label>
+            </p>
+            <p><input placeholder="Kriterium2">
+                <label>stark<input type="radio" name="groupCriterion2"></label>
+                <input type="radio" name="groupCriterion2">
+                <input type="radio" name="groupCriterion2">
+                <input type="radio" name="groupCriterion2">
+                <label><input type="radio" name="groupCriterion2">schwach</label>
+            </p>
+            <button type="button" class="btn btn-light"> + </button>
+        </div>
+        <button class="btn btn-default" type="button" id="submit">beitreten</button>
+    </div>
+</div>
+
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/specificSkills.jsp b/gemeinsamforschen/src/main/webapp/pages/specificSkills.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..1f5f24e2d64e948b3cf5873352c35be7a892a02e
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/specificSkills.jsp
@@ -0,0 +1,51 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
+
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>fltrail</title>
+    <link rel="stylesheet" href="../assets/css/styles.css">
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.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">
+    <script src="../assets/js/utility.js"></script>
+    <script src="../assets/js/specificSkills.js"></script>
+
+</head>
+
+<body>
+<div id="wrapper">
+    <menu:menu></menu:menu>
+    <div class="page-content-wrapper">
+        <div class="container-fluid">
+
+            <h1>Einschreiben in einen Kurs</h1>
+            <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>
+        </div>
+        <div align="center">
+            <h2>Wie schätzen Sie sich in folgenden Kategorien ein?</h2>
+            <br><br>
+            <p>groupCriterion1
+            </p>
+            <p>groupCriterion2
+            </p>
+
+        </div>
+        <button class="btn btn-default" type="button" id="submit">beitreten</button>
+    </div>
+</div>
+
+
+</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 6cde53292b46df46048dbeab11ee55ac97b2c3c1..9ddb24242d7dbd999ff642237437caf061612c30 100644
--- a/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp
@@ -12,6 +12,7 @@
     <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/takeQuiz.js"></script>
+    <script src="../assets/js/utility.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">
@@ -19,8 +20,6 @@
 </head>
 
 <body>
-
-
 <div id="wrapper">
     <menu:menu></menu:menu>
     <div class="page-content-wrapper">
diff --git a/gemeinsamforschen/src/main/webapp/pages/upload-unstructured.html b/gemeinsamforschen/src/main/webapp/pages/upload-unstructured.html
new file mode 100644
index 0000000000000000000000000000000000000000..092ea377d8a07edd36cb249bbf8fb6d665072304
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/upload-unstructured.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>muster-gemeinsam-forschen</title>
+
+    <!-- css - annotationStyle -->
+    <link rel="stylesheet" type="text/css" href="../assets/css/upload-unstructured.css">
+    <!-- css - contextMenu -->
+    <link href="https://swisnl.github.io/jQuery-contextMenu/dist/jquery.contextMenu.css" rel="stylesheet" type="text/css" />
+    <!-- css - bootstrap -->
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
+    <!-- css - styles -->
+    <link rel="stylesheet" href="../assets/css/styles.css">
+    <!-- css - font awesome -->
+    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">
+    <!-- css - sidebar -->
+    <link rel="stylesheet" href="../assets/css/Sidebar-Menu.css">
+
+    <!-- js - jQuery -->
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
+    <!-- js - bootstrap -->
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
+    <!-- js - jQuery ui position -->
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js" type="text/javascript"></script>
+    <!-- js - contextMenu script -->
+    <script src="https://swisnl.github.io/jQuery-contextMenu/dist/jquery.contextMenu.js" type="text/javascript"></script>
+    <!-- js - annotationScript -->
+    <script src="../assets/js/uploadUnstructured.js"></script>
+
+</head>
+
+<body>
+<div id="wrapper">
+    <div id="sidebar-wrapper">
+        <ul class="sidebar-nav">
+            <li class="sidebar-brand"><a href="#">overview</a></li>
+            <li><a href="#">Quizfrage</a></li>
+            <li><a href="#">ePortfolio</a></li>
+            <li><a href="#">Beitrag</a></li>
+            <li><a href="#">Bewertung</a></li>
+            <li><a href="#">Logout</a></li>
+        </ul>
+    </div>
+    <div class="page-content-wrapper">
+        <div class="container-fluid">
+            <h1>Unstrukturierte Abgabe
+                <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 class="mainpage">
+                <div class="leftcolumn">
+                    <div class="leftcontent ">
+                        <div class="context-menu-one form-group" id="documentText">
+                            <label for="upload-area">Texteingabe:</label>
+                            <textarea class="unstructured-textarea form-control" rows="20" id="upload-area">
+Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
+
+Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
+
+Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
+
+Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
+
+At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.
+                            </textarea>
+                            </div>
+                        <div class="document-text-buttons">
+                            <button onclick="lockButtonHandler()" type="button" class="btn btn-secondary document-text-buttons-lock" id="btnLock"><i class="fas fa-lock-open" id="lock"></i></button>
+                            <button type="button" class="btn btn-secondary document-text-buttons-save" id="btnSave">Speichern</i></button>
+                        </div>
+                    </div>
+                </div>
+                <div class="rightcolumn">
+                    <div class="rightcontent">
+                        <ol id="annotations">
+                        </ol>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/upload-unstructured.jsp b/gemeinsamforschen/src/main/webapp/pages/upload-unstructured.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..98dba6d3b364f74390ee3854c86089c0fec1f224
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/upload-unstructured.jsp
@@ -0,0 +1,90 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>muster-gemeinsam-forschen</title>
+
+    <!-- css - annotationStyle -->
+    <link rel="stylesheet" type="text/css" href="../assets/css/upload-unstructured.css">
+    <!-- css - contextMenu -->
+    <link href="https://swisnl.github.io/jQuery-contextMenu/dist/jquery.contextMenu.css" rel="stylesheet" type="text/css" />
+    <!-- css - bootstrap -->
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
+    <!-- css - styles -->
+    <link rel="stylesheet" href="../assets/css/styles.css">
+    <!-- css - font awesome -->
+    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">
+    <!-- css - sidebar -->
+    <link rel="stylesheet" href="../assets/css/Sidebar-Menu.css">
+
+    <!-- js - jQuery -->
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
+    <!-- js - bootstrap -->
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
+    <!-- js - jQuery ui position -->
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js" type="text/javascript"></script>
+    <!-- js - contextMenu script -->
+    <script src="https://swisnl.github.io/jQuery-contextMenu/dist/jquery.contextMenu.js" type="text/javascript"></script>
+    <!-- js - utility script -->
+    <script src="../assets/js/utility.js"></script>
+    <!-- js - annotationScript -->
+    <script src="../assets/js/uploadUnstructured.js"></script>
+
+</head>
+
+<body>
+<div id="wrapper">
+    <menu:menu></menu:menu>
+    <div class="page-content-wrapper">
+        <div class="container-fluid">
+            <h1>Unstrukturierte Abgabe
+                <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 class="mainpage">
+                <div class="leftcolumn">
+                    <div class="leftcontent ">
+                        <div class="context-menu-one form-group" id="documentText">
+                            <label for="upload-area">Texteingabe:</label>
+                            <textarea class="unstructured-textarea form-control" rows="20" id="upload-area">
+Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
+
+Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
+
+Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
+
+Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
+
+At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.
+                            </textarea>
+                            </div>
+                        <div class="document-text-buttons">
+                            <button onclick="lockButtonHandler()" type="button" class="btn btn-secondary document-text-buttons-lock" id="btnLock"><i class="fas fa-lock-open" id="lock"></i></button>
+                            <button type="button" class="btn btn-secondary document-text-buttons-back" id="btnBack">Zurück</button>
+                            <button type="button" class="btn btn-primary document-text-buttons-save" id="btnSave">Speichern</button>
+                        </div>
+                    </div>
+                </div>
+                <div class="rightcolumn">
+                    <div class="rightcontent">
+                        <ol id="annotations">
+                        </ol>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp b/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..a484d9381f9a963ff485ca311cae45714c357b14
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp
@@ -0,0 +1,115 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+<!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>
+    <script src="../assets/js/viewQuiz.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">
+</head>
+
+<body>
+
+
+<div id="wrapper">
+    <menu:menu></menu:menu>
+    <div class="page-content-wrapper">
+        <div class="container-fluid">
+            <h1 id="projectId">project1
+                <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>
+            <table>
+                <tr>
+                    <td  id="yourContent">
+                        <h1>Quiz for project1 </h1>
+                        <!-- here will be all the content -->
+                        <table class="table-striped">
+                            <tbody id="tableQuiz">
+
+                            </tbody>
+                        </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>
+</div>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/view_groupfinding_docent.html b/gemeinsamforschen/src/main/webapp/pages/view_groupfinding_docent.html
new file mode 100644
index 0000000000000000000000000000000000000000..663963e4b9500f905cb2704beddc972f7214df39
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/view_groupfinding_docent.html
@@ -0,0 +1,72 @@
+<html>
+<head>
+    <title>Gruppenfindung</title>
+
+    <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
+
+</head>
+
+<body>
+
+<h1>Gruppenfindung </h1>
+
+<script type="text/javascript">
+
+    $(document).ready(function(){
+
+        $("#isSelect").click(function () {
+
+            alert($('input:radio[name=groupfinding]:checked').val());
+
+        });
+
+        $("#selectMale").click(function () {
+
+            $('input:radio[name=groupfinding]:nth(0)').attr('checked',true);
+            //$('input:radio[name=groupfinding]')[0].checked = true;
+
+        });
+
+        $("#selectFemale").click(function () {
+
+            $('input:radio[name=groupfinding]:nth(1)').attr('checked',true);
+            //$('input:radio[name=groupfinding]')[1].checked = true;
+
+        });
+
+        $("#selectUnknown").click(function () {
+
+            $('input:radio[name=groupfinding]:nth(2)').attr('checked',true);
+            //$('input:radio[name=groupfinding]')[2].checked = true;
+
+        });
+
+        $("#reset").click(function () {
+
+            $('input:radio[name=groupfinding]').attr('checked',false);
+
+        });
+
+    });
+</script>
+</head>
+<input type="text" name="coursename">   Bitte Kursname eingeben</input>
+
+<br/>
+<br/>
+<br/>
+<br/>
+
+<input type="radio" name="groupfinding" value="manual">      Manuelle Gruppenbildung</input>
+<input type="radio" name="groupfinding" value="multipleCriteria">Multiple Kriterien</input>
+<input type="radio" name="groupfinding" value="oneCriteria">Einfaches Kriterium</input>
+
+<br/>
+<br/>
+<br/>
+
+<input type='button' value='Weiter' id='isSelect'>
+
+
+</body>
+</html>
diff --git a/gemeinsamforschen/src/main/webapp/pages/view_start_groupfinding.html b/gemeinsamforschen/src/main/webapp/pages/view_start_groupfinding.html
new file mode 100644
index 0000000000000000000000000000000000000000..dff15ad7606f063b0654bb2d564e8d526e243e06
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/view_start_groupfinding.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <style>
+        * {
+            box-sizing: border-box;
+        }
+
+        #myInput {
+            background-image: url('/css/searchicon.png');
+            background-position: 10px 12px;
+            background-repeat: no-repeat;
+            width: 100%;
+            font-size: 16px;
+            padding: 12px 20px 12px 40px;
+            border: 1px solid #ddd;
+            margin-bottom: 12px;
+        }
+
+        #myUL {
+            list-style-type: none;
+            padding: 0;
+            margin: 0;
+        }
+
+        #myUL li a {
+            border: 1px solid #ddd;
+            margin-top: -1px; /* Prevent double borders */
+            background-color: #f6f6f6;
+            padding: 12px;
+            text-decoration: none;
+            font-size: 18px;
+            color: black;
+            display: block
+        }
+
+        #myUL li a:hover:not(.header) {
+            background-color: #eee;
+        }
+
+    </style>
+</head>
+<br>
+
+<h2>Angemeldete Studenten</h2>
+
+</br>
+
+
+
+<p align="left"><u><font color="#FF0000" size="+2">Kriterienbasierte Gruppenbildung</font></u></p>
+<input type="button" value="&#196;ndern">
+</br>
+</br>
+</br>
+
+<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for names.." title="Type in a name">
+
+<ul id="myUL">
+    <li><a href="#">Adele</a></li>
+    <li><a href="#">Agnes</a></li>
+
+    <li><a href="#">Billy</a></li>
+    <li><a href="#">Bob</a></li>
+
+    <li><a href="#">Calvin</a></li>
+    <li><a href="#">Hannes</a></li>
+    <li><a href="#">Zapano</a></li>
+</ul>
+
+
+
+</br>
+</br>
+</br>
+
+<input type="button" value="Gruppenbildung starten">
+
+
+<script>
+    function myFunction() {
+        var input, filter, ul, li, a, i;
+        input = document.getElementById("myInput");
+        filter = input.value.toUpperCase();
+        ul = document.getElementById("myUL");
+        li = ul.getElementsByTagName("li");
+        for (i = 0; i < li.length; i++) {
+            a = li[i].getElementsByTagName("a")[0];
+            if (a.innerHTML.toUpperCase().indexOf(filter) > -1) {
+                li[i].style.display = "";
+            } else {
+                li[i].style.display = "none";
+
+            }
+        }
+    }
+
+
+</script>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/view_student_criteriachoice.html b/gemeinsamforschen/src/main/webapp/pages/view_student_criteriachoice.html
new file mode 100644
index 0000000000000000000000000000000000000000..82b12aa7aa570a7f224c903fb27c5974678b663b
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/view_student_criteriachoice.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html>
+<meta http-equiv="content-type" content="text/html; charset=utf-8">
+<head>
+    <title> Auswahl der Kriterien für Studenten</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <script src="https://unpkg.com/jquery"></script>
+    <script src="https://surveyjs.azureedge.net/1.0.29/survey.jquery.js"></script>
+    <link href="https://surveyjs.azureedge.net/1.0.29/survey.css" type="text/css" rel="stylesheet"/>
+    <link rel="stylesheet" href="./index.css">
+
+</head>
+<br>
+<h2>Auswahl der Kriterien für Studenten</h2>
+
+
+<div id="surveyElement"></div>
+<div id="surveyResult"></div>
+
+
+
+<script type="text/javascript" >
+    Survey
+        .StylesManager
+        .applyTheme("default");
+
+    var json = {
+        pages: [
+            {
+                questions: [
+                    {
+                        type: "matrix",
+                        name: "Quality",
+                        title: "Bitte markiere wie stark die einzelnen Punkte auf Dich zutreffen",
+                        columns: [
+                            {
+                                value: 1,
+                                text: 1
+                            }, {
+                                value: 2,
+                                text: 2
+                            }, {
+                                value: 3,
+                                text: 3
+                            }, {
+                                value: 4,
+                                text: 4
+                            }, {
+                                value: 5,
+                                text: 5
+                            },
+
+                        ],
+                        rows: [
+                            {
+                                value: "affordable",
+                                text: "Ich kann mich selbst so organisieren, dass ich alle Deadlines einhalten kann"
+                            }, {
+                                value: "does what it claims",
+                                text: "Kurz nach der Vorlesung kann ich mich an den Kernstoff erinnern"
+                            }, {
+                                value: "better then others",
+                                text: "Ich kann die meisten Schlüsselkompetenzen verstehen die meinen Kurs betreffen"
+                            }, {
+                                value: "easy to use",
+                                text: "Ich kann mich gut selbst organisieren"
+                            }
+                        ]
+                    }, {
+                        type: "rating",
+                        name: "satisfaction",
+                        title: "Wie zufrieden sind Sie mit Ihrer eigenen Arbeit",
+                        mininumRateDescription: "Nicht zufrieden",
+                        maximumRateDescription: "Komplett zufrieden"
+                    },
+                ]
+            },
+        ]
+    };
+
+    window.survey = new Survey.Model(json);
+
+    survey
+        .onComplete
+        .add(function (result) {
+            document
+                .querySelector('#surveyResult')
+                //.innerHTML = "result: " + JSON.stringify(result.data);
+        });
+
+    $("#surveyElement").Survey({model: survey});
+
+
+
+
+
+</script>
+
+</body>
+</html>
diff --git a/gemeinsamforschen/src/main/webapp/pages/viewfeedback.jsp b/gemeinsamforschen/src/main/webapp/pages/viewfeedback.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..7782962570fe23549d27559bf209c1eeb53695af
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/viewfeedback.jsp
@@ -0,0 +1,136 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
+
+<!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">
+    <script src="../assets/js/utility.js"></script>
+    <script src="../assets/js/project-student.js"></script>
+</head>
+
+<body>
+<div id="wrapper">
+    <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>
+            <table>
+                <tr>
+                    <td  id="Peerfeedback">
+                        <h2>Feedback Nachrichten von Student X</h2>
+
+                        <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>
+
+                        <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>
+            </table>
+        </div>
+    </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>
diff --git a/gemeinsamforschen/src/scripts/dbschema/createDummyResearchReport.sql b/gemeinsamforschen/src/scripts/dbschema/createDummyResearchReport.sql
new file mode 100644
index 0000000000000000000000000000000000000000..dc22bfce45c061b650d49ea03d730dc83085a5a7
--- /dev/null
+++ b/gemeinsamforschen/src/scripts/dbschema/createDummyResearchReport.sql
@@ -0,0 +1,26 @@
+drop TABLE `researchReport`;
+
+CREATE TABLE researchReport (
+   `id` varchar(400) NOT NULL,
+   `author` varchar(400) NOT NULL,
+   `title` varchar(400) NOT NULL,
+   `method` varchar(10000) NOT NULL,
+   `research` varchar(10000) NOT NULL,
+   `researchResult` varchar(10000) NOT NULL,
+   `evaluation` varchar(10000) NOT NULL,
+)ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+INSERT INTO researchReport (`id`, `author`, `title`, `method`, `research`, `researchResult`, `evaluation`) VALUES
+  ('id1', 'author1', 'title1', 'method1', 'research1', 'researchResult1', 'evaluation1');
+
+INSERT INTO researchReport (`id`, `author`, `title`, `method`, `research`, `researchResult`, `evaluation`) VALUES
+  ('id2', 'author2', 'title2', 'method2', 'research2', 'researchResult2', 'evaluation2');
+
+INSERT INTO researchReport (`id`, `author`, `title`, `method`, `research`, `researchResult`, `evaluation`) VALUES
+  ('id3', 'author3', 'title3', 'method3', 'research3', 'researchResult3', 'evaluation3');
+
+INSERT INTO researchReport (`id`, `author`, `title`, `method`, `research`, `researchResult`, `evaluation`) VALUES
+  ('id4', 'author4', 'title4', 'method4', 'research4', 'researchResult4', 'evaluation4');
+
+INSERT INTO researchReport (`id`, `author`, `title`, `method`, `research`, `researchResult`, `evaluation`) VALUES
+  ('id5', 'author5', 'title5', 'method5', 'research5', 'researchResult5', 'evaluation5');
\ No newline at end of file
diff --git a/gemeinsamforschen/src/scripts/dbschema/fltrail.sql b/gemeinsamforschen/src/scripts/dbschema/fltrail.sql
index c92c03da44cc2448ac7b5e9d09cb274997e2459d..71f44c061c7cadc62ba178d87d521a212fb08808 100644
--- a/gemeinsamforschen/src/scripts/dbschema/fltrail.sql
+++ b/gemeinsamforschen/src/scripts/dbschema/fltrail.sql
@@ -1,67 +1,172 @@
 CREATE DATABASE IF NOT EXISTS `fltrail`
+
   DEFAULT CHARACTER SET utf8
+
   COLLATE utf8_general_ci;
+
 USE `fltrail`;
 
 CREATE TABLE if not exists `projects` (
-  `id`            varchar(400) NOT NULL,
+
+  `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,
+
+  `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
+
+  `token`         varchar(400) NOT NULL,
+
+  `phase`         varchar(400) NOT NULL
+
 )
+
   ENGINE = InnoDB
-  DEFAULT CHARSET = utf8;
 
+  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(400) NOT NULL,
+
+  `projectId` varchar(100) NOT NULL,
+
   `tag`       varchar(400) NOT NULL
+
 )
+
   ENGINE = InnoDB
+
   DEFAULT CHARSET = utf8;
 
 CREATE TABLE if not exists `users` (
-  `name`                varchar(400) NOT NULL,
+
+  `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(400) NOT NULL,
-  userId    varchar(400) NOT NULL
+
+  projectId varchar(100) NOT NULL,
+
+  userId    varchar(100) NOT NULL
+
 )
+
   ENGINE = InnoDB
-  DEFAULT CHARSET = utf8;
+
+  DEFAULT CHARSET = utf8;CREATE TABLE if not exists `annotations` (
+
+  `id` varchar(120) NOT NULL,
+
+  `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+
+  `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`)
+
+) 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 tasks
+
+(
+
+  userId varchar(400) NOT NULL,
+
+  projectId varchar(400) NOT NULL,
+
+  taskUrl varchar (400) NOT NULL
+)
+
+  ENGINE = InnoDB
+
+  DEFAULT CHARSET = utf8;
 
+ALTER TABLE `projectuser` ADD INDEX( `projectId`, `userId`);
+ALTER TABLE `projectuser` ADD UNIQUE( `projectId`, `userId`);
+ALTER TABLE `projects` ADD UNIQUE( `id`);
\ No newline at end of file
diff --git a/gemeinsamforschen/src/scripts/dbschema/setup_gamification.sql b/gemeinsamforschen/src/scripts/dbschema/setup_gamification.sql
new file mode 100644
index 0000000000000000000000000000000000000000..334349f1461a71d36467eb5d032ede7b88c2bfb7
--- /dev/null
+++ b/gemeinsamforschen/src/scripts/dbschema/setup_gamification.sql
@@ -0,0 +1,58 @@
+-- This script initializes tables to be used for gamification
+
+CREATE DATABASE IF NOT EXISTS `fltrail`
+  DEFAULT CHARACTER SET utf8
+  COLLATE utf8_general_ci;
+USE `fltrail`;
+
+---- events
+-- events can be
+--  * writing a comment
+--  * taking a quiz
+--  * creating a quiz
+--  * adding a part of the journal
+--  * completing the journal
+--  * doing peer assessment (actively and passively)
+CREATE TABLE if not exists events
+(
+  eventId     varchar(400) NOT NULL,
+  eventType   varchar(400) NOT NULL,
+  studentId   varchar(400) NOT NULL,
+  projectId   varchar(400) NOT NULL,
+  title       varchar(400) NOT NULL,
+  description varchar(400) NOT NULL
+)
+  ENGINE = InnoDB
+  DEFAULT CHARSET = utf8;
+
+---- tasks
+-- a task is something a student is obliged to do, such as
+--  * uploading parts of the journal
+--  * completing the journal
+--  * giving at least one feedback to another student
+--  * absolving peer assessment
+
+CREATE TABLE if not exists tasks
+(
+  taskId     varchar(400) NOT NULL,
+  taskType   varchar(400) NOT NULL,
+  projectId   varchar(400) NOT NULL,
+  title       varchar(400) NOT NULL,
+  description varchar(400) NOT NULL,
+  state       varchar(400) NOT NULL -- should be "open" or "closed"
+)
+  ENGINE = InnoDB
+  DEFAULT CHARSET = utf8;
+
+--- achievements
+CREATE TABLE if not exists achievements
+(
+  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;
diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/AnnotationTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/AnnotationTest.java
index 6c64c0be2de3d76d89849450bb797ab921876b79..d0fde6c5871fd1533cc8e37308ec2e3068343327 100644
--- a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/AnnotationTest.java
+++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/AnnotationTest.java
@@ -4,6 +4,7 @@ import org.junit.Before;
 import org.junit.Test;
 import unipotsdam.gf.modules.annotation.controller.AnnotationController;
 import unipotsdam.gf.modules.annotation.model.Annotation;
+import unipotsdam.gf.modules.annotation.model.AnnotationBody;
 import unipotsdam.gf.modules.annotation.model.AnnotationPatchRequest;
 import unipotsdam.gf.modules.annotation.model.AnnotationPostRequest;
 
@@ -31,11 +32,12 @@ public class AnnotationTest {
     @Test
     public void testAddAnnotation() {
 
-        // initialize body
-        String body = "body_testAddAnnotation";
+        // initialize title and comment of body
+        String title = "title_testAddAnnotation";
+        String comment = "comment_testAddAnnotation";
 
         // prepare and execute request
-        AnnotationPostRequest annotationPostRequest = new AnnotationPostRequest(1, 2, body, 4, 5);
+        AnnotationPostRequest annotationPostRequest = new AnnotationPostRequest("userToken", 1, new AnnotationBody(title, comment, 1, 2));
         Annotation response = controller.addAnnotation(annotationPostRequest);
 
         // the new annotation should be found in the database
@@ -49,44 +51,52 @@ public class AnnotationTest {
     @Test
     public void testAlterAnnotation() {
 
-        // initialize old and new body
-        String oldBody = "bodyOld_testAlterAnnotation";
-        String newBody = "bodyNew_testAlterAnnotation";
+        // initialize old and new title and comment of body
+        String titleOld = "titleOld_testAlterAnnotation";
+        String commentOld = "commentOld_testAlterAnnotation";
+        String titleNew = "titleNew_testAlterAnnotation";
+        String commentNew = "commentNew_testAlterAnnotation";
 
         // save new annotation in database
-        AnnotationPostRequest annotationPostRequest = new AnnotationPostRequest(0, 0, oldBody, 0, 0);
+        AnnotationPostRequest annotationPostRequest = new AnnotationPostRequest("userToken", 0, new AnnotationBody(titleOld, commentOld, 1, 2));
         Annotation response = controller.addAnnotation(annotationPostRequest);
 
         // the new annotation should be found in the database
         assertTrue("Can't find annotation with the id " + response.getId(), controller.existsAnnotationId(response.getId()));
 
-        // the annotation's body should be "testAlterAnnotation_oldBody"
-        assertEquals("The body of the annotation should be " + oldBody + " but was " + response.getBody(), oldBody, response.getBody());
+        // the annotation's title should be "titleOld_testAlterAnnotation"
+        assertEquals("The title of the annotation should be " + titleOld + " but was " + response.getBody().getTitle(), titleOld, response.getBody().getTitle());
+
+        // the annotation's comment should be "commentOld_testAlterAnnotation"
+        assertEquals("The comment of the annotation should be " + commentOld + " but was " + response.getBody().getComment(), commentOld, response.getBody().getComment());
 
         // alter the annotation and update the database
-        AnnotationPatchRequest annotationPatchRequest = new AnnotationPatchRequest(newBody);
+        AnnotationPatchRequest annotationPatchRequest = new AnnotationPatchRequest(titleNew, commentNew);
         controller.alterAnnotation(response.getId(), annotationPatchRequest);
 
         // receive the new annotation
         Annotation newResponse = controller.getAnnotation(response.getId());
 
-        // the annotation's body should be "testAlterAnnotation_newBody"
-        assertEquals("The body of the annotation should be " + newBody + " but was " + newResponse.getBody(), newBody, newResponse.getBody());
+        // the annotation's title should be "titleNew_testAlterAnnotation"
+        assertEquals("The title of the annotation should be " + titleNew + " but was " + newResponse.getBody().getTitle(), titleNew, newResponse.getBody().getTitle());
+
+        // the annotation's comment should be "commentNew_testAlterAnnotation"
+        assertEquals("The comment of the annotation should be " + commentNew + " but was " + newResponse.getBody().getComment(), commentNew, newResponse.getBody().getComment());
 
         // delete the annotation
         controller.deleteAnnotation(response.getId());
 
-
     }
 
     @Test
     public void testDeleteAnnotation() {
 
-        // initialize old and new body
-        String body = "body_testDeleteAnnotation";
+        // initialize title and comment of body
+        String title = "title_testDeleteAnnotation";
+        String comment = "comment_testDeleteAnnotation";
 
-        // save new annotation in database
-        AnnotationPostRequest annotationPostRequest = new AnnotationPostRequest(0, 0, body, 0, 0);
+        // prepare and execute request
+        AnnotationPostRequest annotationPostRequest = new AnnotationPostRequest("userToken", 1, new AnnotationBody(title, comment, 1, 2));
         Annotation response = controller.addAnnotation(annotationPostRequest);
 
         // the new annotation should be found in the database
@@ -103,18 +113,22 @@ public class AnnotationTest {
     @Test
     public void testGetAnnotation() {
 
-        // initialize body
-        String body = "body_testGetAnnotation";
+        // initialize title and comment of body
+        String title = "title_testGetAnnotation";
+        String comment = "comment_testGetAnnotation";
 
-        // save new annotation in database
-        AnnotationPostRequest annotationPostRequest = new AnnotationPostRequest(0, 0, body, 0, 0);
+        // prepare and execute request
+        AnnotationPostRequest annotationPostRequest = new AnnotationPostRequest("userToken", 1, new AnnotationBody(title, comment, 1, 2));
         Annotation response = controller.addAnnotation(annotationPostRequest);
 
         // receive the new annotation
         Annotation getResponse = controller.getAnnotation(response.getId());
 
-        // the annotation's body should be "testAlterAnnotation_newBody"
-        assertEquals("The body of the annotation should be " + body + " but was " + getResponse.getBody(), body, getResponse.getBody());
+        // the annotation's title should be "title_testAlterAnnotation"
+        assertEquals("The title of the annotation should be " + title + " but was " + response.getBody().getTitle(), title, response.getBody().getTitle());
+
+        // the annotation's comment should be "comment_testAlterAnnotation"
+        assertEquals("The comment of the annotation should be " + comment + " but was " + response.getBody().getComment(), comment, response.getBody().getComment());
 
         // delete the new annotation
         controller.deleteAnnotation(response.getId());
@@ -124,10 +138,9 @@ public class AnnotationTest {
     @Test
     public void testGetAnnotations() {
 
-        // initialize bodys
-        String body1 = "body1_testGetAnnotations";
-        String body2 = "body2_testGetAnnotations";
-        String body3 = "body3_testGetAnnotations";
+        // initialize title and comment of bodys
+        String title = "title_testGetAnnotations";
+        String comment = "comment_testGetAnnotations";
 
         // initialize targetIds
         ArrayList<Integer> targetIds = new ArrayList<>();
@@ -135,23 +148,23 @@ public class AnnotationTest {
         targetIds.add(-2);
 
         // save new annotations in database
-        AnnotationPostRequest request1 = new AnnotationPostRequest(0, targetIds.get(0), body1, 0, 0);
-        AnnotationPostRequest request2 = new AnnotationPostRequest(0, targetIds.get(1), body2, 0, 0);
-        AnnotationPostRequest request3 = new AnnotationPostRequest(0, targetIds.get(1), body3, 0, 0);
+        AnnotationPostRequest request1 = new AnnotationPostRequest("userToken", targetIds.get(0), new AnnotationBody(title, comment, 1, 2));
+        AnnotationPostRequest request2 = new AnnotationPostRequest("userToken", targetIds.get(1), new AnnotationBody(title, comment, 1, 2));
+        AnnotationPostRequest request3 = new AnnotationPostRequest("userToken", targetIds.get(1), new AnnotationBody(title, comment, 1, 2));
         controller.addAnnotation(request1);
         controller.addAnnotation(request2);
         controller.addAnnotation(request3);
 
-        // receive the new annotations
+        // receive the new annotations with targetId = -2
         ArrayList<Annotation> getResponse = controller.getAnnotations(targetIds.get(1));
 
-        // the size of the  getResponse should be 2
+        // the size of the getResponse should be 2
         assertEquals("The size of the response should be 2 but was " + getResponse.size(), 2, getResponse.size());
 
-        // receive the new annotations
+        // receive the new annotations with targetId = -1
         ArrayList<Annotation> getResponseNew = controller.getAnnotations(targetIds.get(0));
 
-        // the size of the  getResponse should be 2
+        // the size of the getResponse should be 1
         assertEquals("The size of the response should be 1 but was " + getResponseNew.size(), 1, getResponseNew.size());
 
         // delete annotations from database
@@ -164,12 +177,13 @@ public class AnnotationTest {
     @Test
     public void testExistsAnnotationId() {
 
-        // initialize body and bad id
-        String body = "body_testExistsAnnotationId";
+        // initialize title and comment of body and bad id
+        String title = "title_testExistsAnnotationId";
+        String comment = "comment_testExistsAnnotationId";
         String badId = "badId";
 
         // save new annotation in database
-        AnnotationPostRequest annotationPostRequest = new AnnotationPostRequest(0, 0, body, 0, 0);
+        AnnotationPostRequest annotationPostRequest = new AnnotationPostRequest("userToken", 0, new AnnotationBody(title, comment, 1, 2));
         Annotation response = controller.addAnnotation(annotationPostRequest);
 
         // the annotation shouldn't be found in the database
diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ManagementTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ManagementTest.java
index 8e71c0dcba017d321a6af5540fb843ea8ff7352c..22b2822668e4214c1b239bf46c615c10be793cf2 100644
--- a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ManagementTest.java
+++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ManagementTest.java
@@ -1,6 +1,15 @@
 package unipotsdam.gf.interfaces;
 
+import javafx.application.Application;
+import org.glassfish.hk2.api.ServiceLocator;
+import org.glassfish.hk2.utilities.Binder;
+import org.glassfish.hk2.utilities.ServiceLocatorUtilities;
+import org.glassfish.jersey.server.ResourceConfig;
+import org.glassfish.jersey.test.JerseyTest;
+import org.junit.Before;
 import org.junit.Test;
+import unipotsdam.gf.config.GFApplicationBinder;
+import unipotsdam.gf.config.GFResourceConfig;
 import unipotsdam.gf.core.management.ManagementImpl;
 import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.core.management.user.User;
@@ -14,7 +23,11 @@ import static org.junit.Assert.assertTrue;
 /**
  * Created by dehne on 01.06.2018.
  */
-public class ManagementTest {
+
+
+public class ManagementTest  {
+
+
 
     @Test
     public void testDelete() {
@@ -90,6 +103,8 @@ public class ManagementTest {
         management.create(project);
         management.register(user, project, null);
 
+        assertTrue(management.exists(project));
+
         User user2 = new User("julian2", "12345", "from2@stuff.com", true);
         management.create(user2, new UserProfile());
         assert management.exists(user2);
diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/PhaseTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/PhaseTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..a4f54632fa0b338920dd264916ee909e627a0517
--- /dev/null
+++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/PhaseTest.java
@@ -0,0 +1,83 @@
+package unipotsdam.gf.interfaces;
+
+import org.glassfish.hk2.api.ServiceLocator;
+import org.glassfish.hk2.utilities.Binder;
+import org.glassfish.hk2.utilities.ServiceLocatorUtilities;
+import org.glassfish.hk2.utilities.binding.AbstractBinder;
+import org.glassfish.jersey.server.ResourceConfig;
+import org.glassfish.jersey.test.JerseyTest;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import unipotsdam.gf.config.GFApplicationBinder;
+import unipotsdam.gf.config.GFResourceConfig;
+import unipotsdam.gf.core.management.ManagementImpl;
+import unipotsdam.gf.core.management.project.Project;
+import unipotsdam.gf.core.management.user.User;
+import unipotsdam.gf.core.management.user.UserProfile;
+import unipotsdam.gf.core.states.PhasesImpl;
+import unipotsdam.gf.core.states.ProjectPhase;
+
+import javax.inject.Inject;
+import javax.ws.rs.core.Application;
+
+
+public class PhaseTest {
+
+    @Inject
+    private IPhases phases;
+
+
+    @Before
+    public void setUp() {
+        final ServiceLocator locator = ServiceLocatorUtilities.bind(new GFApplicationBinder());
+        locator.inject(this);
+    }
+
+    @BeforeClass
+    public static void prepareProject() {
+        ManagementImpl management = new ManagementImpl();
+        User user = new User("julian", "1234", "from@stuff.com", false);
+        management.create(user, new UserProfile());
+        assert management.exists(user);
+
+        Project project = new Project("Gemainsam Forschen", "1235", true, "me", "keins");
+        management.create(project);
+        management.register(user, project, null);
+    }
+
+    @Test
+    public void phase1() {
+        Project project = new Project();
+        project.setId("Gemainsam Forschen");
+        phases.endPhase(ProjectPhase.CourseCreation, project);
+    }
+
+    @Test
+    public void phase2() {
+        Project project = new Project();
+        project.setId("Gemainsam Forschen");
+        phases.endPhase(ProjectPhase.GroupFormation, project);
+    }
+
+    @Test
+    public void phase3() {
+        Project project = new Project();
+        project.setId("Gemainsam Forschen");
+        phases.endPhase(ProjectPhase.DossierFeedback, project);
+    }
+
+    @Test
+    public void phase4() {
+        Project project = new Project();
+        project.setId("Gemainsam Forschen");
+        phases.endPhase(ProjectPhase.Execution, project);
+    }
+
+    @Test
+    public void phase5() {
+        Project project = new Project();
+        project.setId("Gemainsam Forschen");
+        phases.endPhase(ProjectPhase.Assessment, project);
+    }
+}
diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/researchreports/ResearchReportTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/researchreports/ResearchReportTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..52a96f7d3c9488314fd70bf4a7cf54af7b8ca6f0
--- /dev/null
+++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/researchreports/ResearchReportTest.java
@@ -0,0 +1,27 @@
+/* package unipotsdam.gf.modules.researchreports;
+
+
+
+
+import com.sun.org.apache.xerces.internal.xs.LSInputList;
+import org.junit.Test;
+import org.w3c.dom.ls.LSInput;
+import unipotsdam.gf.modules.researchreport.ResearchReport;
+
+import java.util.*;
+
+public class ResearchReportTest {
+
+    @Test
+    public void egal() {
+        System.out.print("hello world");
+        List<ResearchReport> researchReportList = new ArrayList<ResearchReport>();
+        List<ResearchReport> researchReportList2 = new LinkedList<>();
+
+        for (ResearchReport researchReport : researchReportList2) {
+            System.out.print(researchReport.getTitle());
+        }
+
+    }
+}
+*/
\ No newline at end of file