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 5d1dcc695c48252733445714859443160c1a89bc..c86b8aa6d5db95159640747c314b4ba141c0fbae 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java
@@ -212,9 +212,9 @@ public class ManagementImpl implements Management {
 
 
     /**
-     * TODO @Axel bitte in modules/asessment verschieben
-     * @param projectId
-     * @param quizId
+     *
+     * @param field
+     * @param value
      * @return
      */
     private User getUserByField(String field, String value) {
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java.orig b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java.orig
deleted file mode 100644
index 406fbafeadaa1c4f59ef933dbd831623b4aa5c48..0000000000000000000000000000000000000000
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java.orig
+++ /dev/null
@@ -1,349 +0,0 @@
-package unipotsdam.gf.core.management;
-
-import unipotsdam.gf.core.database.mysql.MysqlConnect;
-import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
-import unipotsdam.gf.core.management.group.Group;
-import unipotsdam.gf.core.management.project.Project;
-import unipotsdam.gf.core.management.project.ProjectConfiguration;
-import unipotsdam.gf.core.management.project.ProjectConfigurationDAO;
-import unipotsdam.gf.core.management.user.User;
-import unipotsdam.gf.core.management.user.UserInterests;
-import unipotsdam.gf.core.management.user.UserProfile;
-<<<<<<< HEAD
-=======
-import unipotsdam.gf.core.states.ProjectPhase;
-import unipotsdam.gf.modules.assessment.controller.model.Quiz;
->>>>>>> origin/session_management
-import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
-
-import javax.annotation.ManagedBean;
-import javax.annotation.Resource;
-import javax.inject.Singleton;
-import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
-/**
- * Created by dehne on 31.05.2018.
- */
-@ManagedBean
-@Resource
-@Singleton
-public class ManagementImpl implements Management {
-    @Override
-    public void delete(StudentIdentifier identifier) {
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest = "DELETE FROM users where email = (?)";
-        connect.issueInsertOrDeleteStatement(mysqlRequest, identifier.getStudentId());
-        connect.close();
-    }
-
-    @Override
-    public void create(User user, UserProfile profile) {
-        UUID uuid = UUID.randomUUID();
-        String token = uuid.toString();
-
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest = "INSERT INTO users (`name`, `password`, `email`, `token`,`isStudent`," +
-                "`rocketChatId`,`rocketChatAuthToken`) values (?,?,?,?,?,?,?)";
-        connect.issueInsertOrDeleteStatement(mysqlRequest, user.getName(), user.getPassword(), user.getEmail(),
-                token, user.getStudent(), user.getRocketChatId(), user.getRocketChatAuthToken());
-        connect.close();
-
-        // TODO implmement UserProfile @Mar
-    }
-
-    // TODO: naming convention discussion? all is named create, but group is named createGroup
-    @Override
-    public void create(Project project) {
-        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`, `phase`) values (?,?,?,?,?,?,?,?)";
-        connect.issueInsertOrDeleteStatement(mysqlRequest, project.getId(), project.getPassword(), project.isActive(),
-                project.getTimecreated(), project.getAuthor(), project.getAdminPassword(), token, project.getPhase()
-                        == null ? ProjectPhase.CourseCreation : project.getPhase());
-        connect.close();
-    }
-
-    @Override
-    public void delete(Project project) {
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest = "DELETE FROM projects where id = (?)";
-        connect.issueInsertOrDeleteStatement(mysqlRequest, project.getId());
-        connect.close();
-    }
-
-    @Override
-    public void register(User user, Project project, UserInterests interests) {
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest = "INSERT INTO projectuser (`projectId`, `userId`) values (?,?)";
-        connect.issueInsertOrDeleteStatement(mysqlRequest, project.getId(), user.getId());
-        connect.close();
-    }
-
-    @Override
-    public void update(User user) {
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest = "UPDATE `users` SET `name`=?,`password`=?,`email`=?,`token`=?,`isStudent`=?, `rocketChatId`=?,`rocketChatAuthToken`=? WHERE email=? LIMIT 1";
-        //TODO: maybe add handling if a line is actually updated
-        connect.issueUpdateStatement(mysqlRequest, user.getName(), user.getPassword(), user.getEmail(),
-                user.getToken(), user.getStudent(), user.getRocketChatId(), user.getRocketChatAuthToken(), user.getEmail());
-        connect.close();
-    }
-
-    @Override
-    public Boolean exists(User user) {
-        Boolean result;
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest = "SELECT * FROM users where email = ? and password = ?";
-        VereinfachtesResultSet vereinfachtesResultSet =
-                connect.issueSelectStatement(mysqlRequest, user.getEmail(), user.getPassword());
-        result = vereinfachtesResultSet.next();
-        connect.close();
-        return result;
-    }
-
-    @Override
-    public Boolean exists(Project project) {
-        Boolean result;
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest = "SELECT * FROM projects where id = ? and adminPassword = ?";
-        VereinfachtesResultSet vereinfachtesResultSet =
-                connect.issueSelectStatement(mysqlRequest, project.getId(), project.getAdminPassword());
-        result = vereinfachtesResultSet.next();
-        connect.close();
-        return result;
-    }
-
-    @Override
-    public List<User> getUsers(Project project) {
-        String query =
-                "SELECT * FROM users u "
-                        + " JOIN projectuser pu ON u.email=pu.userId"
-                        + " JOIN projects p ON pu.projectId = p.id"
-                        + " WHERE pu.projectId = ?";
-
-        ArrayList<User> result = new ArrayList<>();
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        VereinfachtesResultSet vereinfachtesResultSet = connect.issueSelectStatement(query, project.getId());
-        while (!vereinfachtesResultSet.isLast()) {
-            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;
-    }
-
-    private User getUserFromResultSet(VereinfachtesResultSet vereinfachtesResultSet) {
-        String name = vereinfachtesResultSet.getString("name");
-        String password = vereinfachtesResultSet.getString("password");
-        String email = vereinfachtesResultSet.getString("email");
-        String rocketChatId = vereinfachtesResultSet.getString("rocketChatId");
-        String rocketChatAuthToken = vereinfachtesResultSet.getString("rocketChatAuthToken");
-        Boolean isStudent = vereinfachtesResultSet.getBoolean("isStudent");
-        return new User(name, password, email, rocketChatId, rocketChatAuthToken, isStudent);
-    }
-
-    private Project getProjectFromResultSet(VereinfachtesResultSet vereinfachtesResultSet) {
-        String id = vereinfachtesResultSet.getString("id");
-        String password = vereinfachtesResultSet.getString("password");
-        boolean active = vereinfachtesResultSet.getBoolean("active");
-        Timestamp timestamp = vereinfachtesResultSet.getTimestamp("timecreated");
-        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);
-    }
-
-    private Group getGroupFromResultSet(VereinfachtesResultSet vereinfachtesResultSet) {
-        int id = vereinfachtesResultSet.getInt("id");
-        String projectId = vereinfachtesResultSet.getString("projectId");
-        String chatRoomId = vereinfachtesResultSet.getString("chatRoomId");
-        // 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();
-        connect.connect();
-        String mysqlRequest = "SELECT * FROM users where email = ? and password = ?";
-        VereinfachtesResultSet vereinfachtesResultSet =
-                connect.issueSelectStatement(mysqlRequest, user.getEmail(), user.getPassword());
-        boolean next = vereinfachtesResultSet.next();
-        if (!next) {
-            connect.close();
-            return null;
-        }
-        String token = vereinfachtesResultSet.getString("token");
-        connect.close();
-        return token;
-    }
-
-    @Override
-    public User getUserByToken(String token) {
-        return getUserByField("token", token);
-    }
-
-    @Override
-    public User getUserByEmail(String email) {
-        return getUserByField("email", email);
-    }
-
-<<<<<<< HEAD
-=======
-
-    /**
-     * 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;
-    }
-
->>>>>>> origin/session_management
-    private User getUserByField(String field, String value) {
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest = "SELECT * FROM users where " + field + " = ?";
-        VereinfachtesResultSet vereinfachtesResultSet =
-                connect.issueSelectStatement(mysqlRequest, value);
-        boolean next = vereinfachtesResultSet.next();
-        if (next) {
-            User user = getUserFromResultSet(vereinfachtesResultSet);
-            connect.close();
-            return user;
-        } else {
-            connect.close();
-            return null;
-        }
-    }
-
-    @Override
-    public Project getProjectById(String id) {
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest = "SELECT * FROM projects where id = ?";
-        VereinfachtesResultSet vereinfachtesResultSet =
-                connect.issueSelectStatement(mysqlRequest, id);
-        boolean next = vereinfachtesResultSet.next();
-        if (next) {
-            Project project = getProjectFromResultSet(vereinfachtesResultSet);
-            connect.close();
-            return project;
-        } else {
-            connect.close();
-            return null;
-        }
-    }
-
-
-    @Override
-    public void createGroup(Group group, String projectId) {
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-
-        Project project = getProjectById(projectId);
-
-        for (User groupMember : group.getMembers()) {
-            String mysqlRequest2 = "INSERT INTO groupuser (`userEmail`, `groupId`) values (?,?)";
-            connect.issueInsertOrDeleteStatement(mysqlRequest2, groupMember.getEmail(), project.getId());
-        }
-        connect.close();
-    }
-
-    @Override
-    public void addGroupMember(User groupMember, int groupId) {
-
-    }
-
-    @Override
-    public void deleteGroupMember(User groupMember, int groupId) {
-
-    }
-
-    @Override
-    public List<Group> getGroupsByProjectId(String projectId) {
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        // TODO: implement correct join and finish implementation
-        String mysqlRequest = "SELECT * FROM groups g " +
-                "JOIN groupuser gu u ON g.id=gu.groupId " + "JOIN users u ON gu.userEmail=u.email" +
-                "where g.projectId = ?";
-        VereinfachtesResultSet vereinfachtesResultSet =
-                connect.issueSelectStatement(mysqlRequest, projectId);
-        ArrayList<Group> groups = new ArrayList<>();
-        while (vereinfachtesResultSet.next()) {
-            //groups.add()
-        }
-        if (groups.isEmpty()) {
-            return null;
-        } else {
-            return groups;
-        }
-    }
-
-    @Override
-    public void create(ProjectConfiguration projectConfiguration, Project project) {
-        ProjectConfigurationDAO projectConfigurationDAO = new ProjectConfigurationDAO();
-        projectConfigurationDAO.persistProjectConfiguration(projectConfiguration,project);
-    }
-
-    @Override
-    public ProjectConfiguration getProjectConfiguration(Project project) {
-        ProjectConfigurationDAO projectConfigurationDAO = new ProjectConfigurationDAO();
-        return projectConfigurationDAO.loadProjectConfiguration(project);
-    }
-}
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 f62ec00b1b93c7d3b504e6f4cf196249fd13b4e1..d08c07de61e40d362e06bfa2ca3fa2f66b0e73c7 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
@@ -38,7 +38,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+"&projectId="+projectId+"\">overview</a></li>\n" +
-                        "            <li><a href=\"Quiz.jsp?token="+token+"&projectId="+projectId+"\">Quizfrage</a></li>\n" +
+                        "            <li><a href=\"Quiz-docent.jsp?token="+token+"&projectId="+projectId+"\">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" +
@@ -64,4 +64,4 @@ public class Menu extends SimpleTagSupport {
     }
 
 
-};
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java
index 4d272a101ef35ae94b8d370d70b94133d2c7f754..d2109728546943d36eed575156a7af37f5e3309b 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java
@@ -1,11 +1,11 @@
 package unipotsdam.gf.interfaces;
 
-import unipotsdam.gf.assignments.NotImplementedLogger;
 import unipotsdam.gf.modules.assessment.QuizAnswer;
 import unipotsdam.gf.modules.assessment.controller.model.*;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Created by dehne on 18.05.2018.
@@ -42,7 +42,7 @@ public interface IPeerAssessment {
      *
      * @param totalPerformance @return
      */
-    List<Grading> calculateAssessment(ArrayList<Performance> totalPerformance); // calculates marks for every performance and writes it to an array
+    Map<StudentIdentifier, Double> calculateAssessment(ArrayList<Performance> totalPerformance); // calculates marks for every performance and writes it to an array
 
 
     /**
@@ -73,15 +73,20 @@ public interface IPeerAssessment {
      *
      * @param peerRatings
      * @param projectId
-     * @param groupId
      */
-    void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId);
+    void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId);
+
+    void postContributionRating(StudentIdentifier student,
+                                String fromPeer,
+                                Map<String, Integer> contributionRating);
 
     /**
      *
-     * @param studentAndQuiz
-     * @param quizAnswer
+     * @param questions
+     * @param student
      */
-    void answerQuiz(StudentAndQuiz studentAndQuiz, QuizAnswer quizAnswer);
+    void answerQuiz(Map<String, List<String>> questions, StudentIdentifier student);
     void deleteQuiz(String quizId);
+
+    Map<StudentIdentifier, Double> calculateAssessment(String projectId, String method);
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java.orig b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java.orig
deleted file mode 100644
index 134a601324f48c9a437cb87d92d5d2566775c4a4..0000000000000000000000000000000000000000
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java.orig
+++ /dev/null
@@ -1,90 +0,0 @@
-package unipotsdam.gf.interfaces;
-
-import unipotsdam.gf.assignments.NotImplementedLogger;
-import unipotsdam.gf.modules.assessment.QuizAnswer;
-import unipotsdam.gf.modules.assessment.controller.model.*;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Created by dehne on 18.05.2018.
- */
-public interface IPeerAssessment {
-
-    /**
-     * student and performance are written to DB
-     *
-     * @param assessment
-     */
-    void addAssessmentDataToDB(Assessment assessment);
-
-    Quiz getQuiz(String projectId, String groupId, String author);
-    /**
-     * will return a saved assessment from the DB
-     *
-     * @param student
-     * @return Assessement = studentIdentifier , performance
-     */
-    Assessment getAssessmentDataFromDB(StudentIdentifier student);
-
-    /**
-     * writes a quiz-question into the DB so other students can benefit from another's insights.
-     *
-     * @param studentAndQuiz
-     */
-    void createQuiz(StudentAndQuiz studentAndQuiz) ;
-
-    /**
-     * calculate grades for everyone in a list.
-     * either it will be overwritten by choice of co- or peer-assessment or it gets a parameter which specifies it.
-     *
-     *
-     * @param totalPerformance @return
-     */
-    List<Grading> calculateAssessment(ArrayList<Performance> totalPerformance); // calculates marks for every performance and writes it to an array
-
-
-    /**
-     *
-     * @param studentIdentifier
-     * @return
-     */
-    ArrayList<Performance> getTotalAssessment(StudentIdentifier studentIdentifier);
-
-    /**
-     * calculates the mean value of all assessments in a project.
-     *
-     * @param ProjectId
-     * @return
-     */
-    int meanOfAssessment(String ProjectId);
-
-    /**
-     * returns all quizzes in a project
-     *
-     * @param projectId
-     * @return all quizzes in projectId
-     */
-    ArrayList<Quiz> getQuiz(String projectId);
-
-    /**
-     * writes the peerRatings into db
-     *
-     * @param peerRatings
-     * @param projectId
-     * @param groupId
-     */
-    void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId);
-
-<<<<<<< HEAD
-    void deleteQuiz(String quizId);
-=======
-    /**
-     *
-     * @param studentAndQuiz
-     * @param quizAnswer
-     */
-    void answerQuiz(StudentAndQuiz studentAndQuiz, QuizAnswer quizAnswer);
->>>>>>> origin/session_management
-}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Categories.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Categories.java
new file mode 100644
index 0000000000000000000000000000000000000000..2937b2e3766b6fc3a15fd4595e2878d540dea5cd
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Categories.java
@@ -0,0 +1,24 @@
+package unipotsdam.gf.modules.assessment.controller.model;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+public class Categories {
+    public static final List<String> workRatingCategories = Collections.unmodifiableList(
+            new ArrayList<String>() {{
+                add("responsibility");
+                add("partOfWork");
+                add("cooperation");
+                add("communication");
+                add("autonomous");
+            }}
+    );
+    public static final List<String> contributionRatingCategories = Collections.unmodifiableList(
+            new ArrayList<String>() {{
+                add("Dossier");
+                add("eJournal");
+                add("research");
+            }}
+    );
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/PeerRating.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/PeerRating.java
index 80d35be34f8e6208f5c436d267e4d6e93b391129..0d29f8ce6322059e0258f708af7cd581d864e436 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/PeerRating.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/PeerRating.java
@@ -1,18 +1,19 @@
 package unipotsdam.gf.modules.assessment.controller.model;
 
 import java.util.Arrays;
+import java.util.Map;
 
 public class PeerRating {
     private String fromPeer;
     private String toPeer;
-    private int[] workRating;
+    private Map workRating;
 
     @Override
     public String toString() {
         return "PeerRating{" +
                 "fromPeer='" + fromPeer + '\'' +
                 ", toPeer='" + toPeer + '\'' +
-                ", workRating=" + Arrays.toString(workRating) +
+                ", workRating=" + workRating +
                 '}';
     }
 
@@ -35,15 +36,15 @@ public class PeerRating {
         this.toPeer = toPeer;
     }
 
-    public int[] getWorkRating() {
+    public Map getWorkRating() {
         return workRating;
     }
 
-    public void setWorkRating(int[] workRating) {
+    public void setWorkRating(Map<String, Number> workRating) {
         this.workRating = workRating;
     }
 
-    public PeerRating(String fromPeer, String toPeer, int[] workRating) {
+    public PeerRating(String fromPeer, String toPeer, Map<String, Number> workRating) {
         this.fromPeer = fromPeer;
         this.toPeer = toPeer;
         this.workRating = workRating;
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Performance.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Performance.java
index 41a74ef307f07b7f2953183ac2f1b18eba61159e..c5bdd8cb17e438fcfc4865cb9e97de9476b7a325 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Performance.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Performance.java
@@ -1,20 +1,22 @@
 package unipotsdam.gf.modules.assessment.controller.model;
 
 import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
 
 public class Performance {
     private StudentIdentifier studentIdentifier;
-    private int[] quizAnswer;
-    private String feedback;
-    private int[] workRating;
+    private List<Integer> quizAnswer;
+    private Map<String, Double> workRating;
+    private Map<String, Double> contributionRating;
 
     public Performance(){}
 
-    public Performance(StudentIdentifier student, int[] quiz, String feedback, int[] workRating) {
+    public Performance(StudentIdentifier student, List<Integer> quiz, Map contributionRating, Map workRating) {
         this.studentIdentifier = student;
         this.quizAnswer = quiz;
-        this.feedback=feedback;
         this.workRating=workRating;
+        this.contributionRating=contributionRating;
 
     }
 
@@ -25,28 +27,24 @@ public class Performance {
     public void setStudentIdentifier(StudentIdentifier studentIdentifier) {
         this.studentIdentifier = studentIdentifier;
     }
+    public Map getContributionRating() { return contributionRating;    }
 
-    public int[] getQuizAnswer() {
-        return quizAnswer;
-    }
+    public void setContributionRating(Map contributionRating) { this.contributionRating = contributionRating;    }
 
-    public void setQuizAnswer(int[] quizAnswer) {
-        this.quizAnswer = quizAnswer;
-    }
 
-    public String getFeedback() {
-        return feedback;
+    public List<Integer> getQuizAnswer() {
+        return quizAnswer;
     }
 
-    public void setFeedback(String feedback) {
-        this.feedback = feedback;
+    public void setQuizAnswer(List<Integer> quizAnswer) {
+        this.quizAnswer = quizAnswer;
     }
 
-    public int[] getWorkRating() {
+    public Map getWorkRating() {
         return workRating;
     }
 
-    public void setWorkRating(int[] workRating) {
+    public void setWorkRating(Map workRating) {
         this.workRating = workRating;
     }
 
@@ -55,9 +53,9 @@ public class Performance {
     public String toString() {
         return "Performance{" +
                 "studentIdentifier=" + studentIdentifier +
-                ", quizAnswer=" + Arrays.toString(quizAnswer) +
-                ", feedback='" + feedback + '\'' +
-                ", workRating=" + Arrays.toString(workRating) +
+                ", quizAnswer=" + quizAnswer +
+                ", contributionRating='" + contributionRating + '\'' +
+                ", workRating=" + workRating +
                 '}';
     }
 
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/cheatCheckerMethods.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/cheatCheckerMethods.java
new file mode 100644
index 0000000000000000000000000000000000000000..ff2d1bdc4eef24c126ac98ffa789fd32ee658154
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/cheatCheckerMethods.java
@@ -0,0 +1,17 @@
+package unipotsdam.gf.modules.assessment.controller.model;
+
+public enum cheatCheckerMethods {
+    variance("variance"),
+    median("median"),
+    none("");
+
+    private final String text;
+
+    cheatCheckerMethods(final String text){
+        this.text = text;
+    }
+    @Override
+    public String toString(){
+        return text;
+    }
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java
index 24289a14da1aab0670e842e754f42bf7c18ee0d7..c5e803245536598c1664156205fb56e1067eb4b2 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java
@@ -2,56 +2,174 @@ package unipotsdam.gf.modules.assessment.controller.service;
 
 import unipotsdam.gf.core.database.mysql.MysqlConnect;
 import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
-import unipotsdam.gf.modules.assessment.controller.model.Assessment;
-import unipotsdam.gf.modules.assessment.controller.model.Performance;
-import unipotsdam.gf.modules.assessment.controller.model.Quiz;
-import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
+import unipotsdam.gf.modules.assessment.controller.model.*;
 
 import javax.annotation.ManagedBean;
 import javax.annotation.Resource;
 import javax.inject.Singleton;
 import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 @ManagedBean
 @Resource
 @Singleton
-public class AssessmentDBCommunication {
-    public Assessment getAssessment(StudentIdentifier student){
+class AssessmentDBCommunication {
+
+    ArrayList<Map<String, Double>> getWorkRating(StudentIdentifier student) {
+        ArrayList<Map<String, Double>> result = new ArrayList<>();
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "SELECT * FROM `workrating` WHERE `projectId`=? AND `studentId`=?";
+        VereinfachtesResultSet vereinfachtesResultSet =
+                connect.issueSelectStatement(mysqlRequest, student.getProjectId(), student.getStudentId());
+        boolean next = vereinfachtesResultSet.next();
+        while (next) {
+            Map<String, Double> workRating = new HashMap<>();
+            for (String category : Categories.workRatingCategories) {
+                workRating.put(category, (double) vereinfachtesResultSet.getInt(category));
+            }
+            result.add(workRating);
+            next = vereinfachtesResultSet.next();
+        }
+        return result;
+    }
+
+    List<String> getStudents(String projectID) {
+        List<String> result = new ArrayList<>();
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "SELECT * FROM `projectuser` WHERE `projectId`=?";
+        VereinfachtesResultSet vereinfachtesResultSet =
+                connect.issueSelectStatement(mysqlRequest, projectID);
+        boolean next = vereinfachtesResultSet.next();
+        while (next) {
+            result.add(vereinfachtesResultSet.getString("userID"));
+            next = vereinfachtesResultSet.next();
+        }
+        return result;
+    }
+
+    ArrayList<Map<String, Double>> getContributionRating(StudentIdentifier student) {
+        ArrayList<Map<String, Double>> result = new ArrayList<>();
         MysqlConnect connect = new MysqlConnect();
         connect.connect();
-        String mysqlRequest = "SELECT * FROM `peerAssessment` WHERE `projectId`=? AND `studentId`=?";
+        String mysqlRequest = "SELECT * FROM `contributionrating` WHERE `projectId`=? AND `studentId`=?";
         VereinfachtesResultSet vereinfachtesResultSet =
                 connect.issueSelectStatement(mysqlRequest, student.getProjectId(), student.getStudentId());
         boolean next = vereinfachtesResultSet.next();
-        String question = "";
-        ArrayList<String> correctAnswers = new ArrayList<String>();
-        ArrayList<String> incorrectAnswers = new ArrayList<String>();
-        String answer;
-        Boolean correct;
-        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);
+            Map<String, Double> contributionRating = new HashMap<>();
+            for (String category : Categories.contributionRatingCategories) {
+                contributionRating.put(category, (double) vereinfachtesResultSet.getInt(category));
             }
+            result.add(contributionRating);
             next = vereinfachtesResultSet.next();
         }
-        Performance performance=null;
-        Assessment assessment = new Assessment(student, performance);
         connect.close();
-        return assessment;
+        return result;
     }
 
-    public void deleteQuiz(String quizId) {
+    ArrayList<Integer> getAnsweredQuizzes(StudentIdentifier student) {
+        ArrayList<Integer> result = new ArrayList<>();
         MysqlConnect connect = new MysqlConnect();
         connect.connect();
-        String mysqlRequest = "DELETE FROM quiz where question = (?)";
-        connect.issueInsertOrDeleteStatement(mysqlRequest, quizId);
+        String mysqlRequest = "SELECT * FROM `answeredquiz` WHERE `projectId`=? AND `studentId`=?";
+        VereinfachtesResultSet vereinfachtesResultSet =
+                connect.issueSelectStatement(mysqlRequest, student.getProjectId(), student.getStudentId());
+        boolean next = vereinfachtesResultSet.next();
+        while (next) {
+            result.add(vereinfachtesResultSet.getInt("correct"));
+            next = vereinfachtesResultSet.next();
+        }
         connect.close();
+        return result;
     }
+
+    void writeAnsweredQuiz(StudentIdentifier student, Map<String, Boolean> questions) {
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        for (String question: questions.keySet()){
+            String mysqlRequest = "INSERT INTO `answeredquiz`(`projectId`, `studentId`, `question`, `correct`) VALUES (?,?,?,?)";
+            connect.issueInsertOrDeleteStatement(mysqlRequest,
+                    student.getProjectId(),
+                    student.getStudentId(),
+                    question,
+                    questions.get(question)
+            );
+        }
+        connect.close();
+    }
+
+    void writeWorkRatingToDB(StudentIdentifier student, String fromStudent, Map<String, Integer> workRating) {
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "INSERT INTO `workrating`(`projectId`, `studentId`, `fromPeer`, " +
+                "`responsibility`, " +
+                "`partOfWork`, " +
+                "`cooperation`, " +
+                "`communication`, " +
+                "`autonomous`" +
+                ") VALUES (?,?,?,?,?,?,?,?)";
+        connect.issueInsertOrDeleteStatement(mysqlRequest, student.getProjectId(), student.getStudentId(), fromStudent,
+                workRating.get("responsibility"),
+                workRating.get("partOfWork"),
+                workRating.get("cooperation"),
+                workRating.get("communication"),
+                workRating.get("autonomous")
+        );
+        connect.close();
+    }
+
+    void writeContributionRatingToDB(StudentIdentifier student, String fromStudent, Map<String, Integer> contributionRating) {
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "INSERT INTO `contributionrating`(" +
+                "`studentId`, " +
+                "`projectId`, " +
+                "`fromPeer`, " +
+                "`dossier`, " +
+                "`eJournal`, " +
+                "`research`) " +
+                "VALUES (?,?,?,?,?,?)";
+        connect.issueInsertOrDeleteStatement(mysqlRequest,
+                student.getStudentId(),
+                student.getProjectId(),
+                fromStudent,
+                contributionRating.get("dossier"),
+                contributionRating.get("eJournal"),
+                contributionRating.get("research")
+        );
+        connect.close();
+    }
+
+    void writeGradesToDB(Grading grade) {
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "INSERT INTO `grades`(`projectId`, `studentId`, `grade`) VALUES (?,?,?)";
+        connect.issueInsertOrDeleteStatement(mysqlRequest,
+                grade.getStudentIdentifier().getProjectId(),
+                grade.getStudentIdentifier().getStudentId(),
+                grade.getGrade()
+        );
+        connect.close();
+    }
+
+    public Map<String, Boolean> getAnswers(String projectId, String question) {
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        Map<String, Boolean> result = new HashMap<>();
+        String mysqlRequest = "SELECT * FROM `quiz` WHERE `projectId`=? AND `question`=?";
+        VereinfachtesResultSet vereinfachtesResultSet =
+                connect.issueSelectStatement(mysqlRequest, projectId, question);
+        boolean next = vereinfachtesResultSet.next();
+        while (next) {
+            result.put(vereinfachtesResultSet.getString("answer"), vereinfachtesResultSet.getBoolean("correct"));
+            next = vereinfachtesResultSet.next();
+        }
+        connect.close();
+        return result;
+    }
+
 }
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 0de6aa34c5c74904885c1c27031cc6d197dd4b54..ef9dd768e6d5890a7790156a62a5aa6b44986c30 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
@@ -5,6 +5,7 @@ import unipotsdam.gf.modules.assessment.controller.model.*;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Created by dehne on 18.05.2018.
@@ -27,7 +28,7 @@ public class FBAssessement extends AssessmentDAO {
     }
 
     @Override
-    public List<Grading> calculateAssessment(ArrayList<Performance> totalPerformance) {
+    public Map<StudentIdentifier, Double> calculateAssessment(ArrayList<Performance> totalPerformance) {
         return null;
     }
 
@@ -55,12 +56,17 @@ public class FBAssessement extends AssessmentDAO {
     }
 
     @Override
-    public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId) {
+    public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId) {
 
     }
 
     @Override
-    public void answerQuiz(StudentAndQuiz studentAndQuiz, QuizAnswer quizAnswer) {
+    public void postContributionRating(StudentIdentifier student, String fromStudent, Map<String, Integer> contributionRating) {
+
+    }
+
+    @Override
+    public void answerQuiz(Map<String, List<String>> questions, StudentIdentifier student) {
 
     }
 
@@ -68,4 +74,9 @@ public class FBAssessement extends AssessmentDAO {
     public void deleteQuiz(String quizId) {
 
     }
+
+    @Override
+    public Map<StudentIdentifier, Double> calculateAssessment(String projectId, String method) {
+        return null;
+    }
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java.orig b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java.orig
deleted file mode 100644
index 76c82f4dd1ee5d8f9652d9f44002d173198dea7a..0000000000000000000000000000000000000000
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java.orig
+++ /dev/null
@@ -1,70 +0,0 @@
-package unipotsdam.gf.modules.assessment.controller.service;
-
-import unipotsdam.gf.modules.assessment.QuizAnswer;
-import unipotsdam.gf.modules.assessment.controller.model.*;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Created by dehne on 18.05.2018.
- */
-public class FBAssessement extends AssessmentDAO {
-
-    @Override
-    public void addAssessmentDataToDB(Assessment assessment) {
-        // write it to db
-    }
-
-    @Override
-    public Quiz getQuiz(String projectId, String groupId, String author) {
-        return null;
-    }
-
-    @Override
-    public void createQuiz(StudentAndQuiz studentAndQuiz) {
-
-    }
-
-    @Override
-    public List<Grading> calculateAssessment(ArrayList<Performance> totalPerformance) {
-        return null;
-    }
-
-    @Override
-    public ArrayList<Performance> getTotalAssessment(StudentIdentifier studentIdentifier) {
-        return null;
-    }
-
-    public void createQuiz(StudentIdentifier student, String question, String[] answers){  //writes a new question into the DB
-
-    }
-
-    public boolean permission(int feedbackCount){
-        return true;
-    }
-
-    @Override
-    public int meanOfAssessment(String projectId) {
-        return 0;
-    }
-
-    @Override
-    public ArrayList<Quiz> getQuiz(String projectId) {
-        return null;
-    }
-
-    @Override
-    public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId) {
-
-    }
-
-    @Override
-<<<<<<< HEAD
-    public void deleteQuiz(String quizId) {
-=======
-    public void answerQuiz(StudentAndQuiz studentAndQuiz, QuizAnswer quizAnswer) {
->>>>>>> origin/session_management
-
-    }
-}
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 4faf3d93e2dd1ae3179fdbef6a2520e6c302c26f..820adb76b897dc5028f45c13e8aba944aa6a09fc 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,12 +1,11 @@
 package unipotsdam.gf.modules.assessment.controller.service;
 
+import unipotsdam.gf.core.management.user.User;
 import unipotsdam.gf.interfaces.IPeerAssessment;
 import unipotsdam.gf.modules.assessment.QuizAnswer;
 import unipotsdam.gf.modules.assessment.controller.model.*;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
 
 public class PeerAssessment implements IPeerAssessment {
     @Override
@@ -26,12 +25,12 @@ public class PeerAssessment implements IPeerAssessment {
 
     @Override
     public Assessment getAssessmentDataFromDB(StudentIdentifier student) {
-        return new AssessmentDBCommunication().getAssessment(student);
+        return null;
     }
 
     @Override
     public void createQuiz(StudentAndQuiz studentAndQuiz) {
-        new QuizDBCommunication().createQuiz(studentAndQuiz.getQuiz(),studentAndQuiz.getStudentIdentifier().getStudentId(), studentAndQuiz.getStudentIdentifier().getProjectId());
+        new QuizDBCommunication().createQuiz(studentAndQuiz.getQuiz(), studentAndQuiz.getStudentIdentifier().getStudentId(), studentAndQuiz.getStudentIdentifier().getProjectId());
     }
 
     @Override
@@ -40,50 +39,153 @@ public class PeerAssessment implements IPeerAssessment {
     }
 
     @Override
-    public List<Grading> calculateAssessment(ArrayList<Performance> totalPerformance) {
-        List<Grading> quizMean = meanOfQuizzes(totalPerformance);
-        List<Grading> workRateMean = meanOfWorkRate(totalPerformance);
-        Grading[] grading = new Grading[totalPerformance.size()];
-        for (int i=0; i<quizMean.size(); i++){
-            double grade = quizMean.get(i).getGrade() * workRateMean.get(i).getGrade();
-            grading[i] = new Grading(totalPerformance.get(i).getStudentIdentifier(), grade);
+    public Map<StudentIdentifier, Double> calculateAssessment(ArrayList<Performance> totalPerformance) {
+        Map<StudentIdentifier, Double> quizMean = new HashMap<>(quizGrade(totalPerformance));
+        Map<StudentIdentifier, Map<String, Double>> workRating = new HashMap<>();
+        Map<StudentIdentifier, Map<String, Double>> contributionRating = new HashMap<>();
+        for (Performance performance : totalPerformance) {
+            workRating.put(performance.getStudentIdentifier(), performance.getWorkRating());
+            contributionRating.put(performance.getStudentIdentifier(), performance.getContributionRating());
+        }
+        Map<StudentIdentifier, Double> workRateMean = new HashMap<>(mapToGrade(workRating));
+        Map<StudentIdentifier, Double> contributionMean = new HashMap<>(mapToGrade(contributionRating));
+        Map<StudentIdentifier, Double> result = new HashMap<>();
+        for (StudentIdentifier student : quizMean.keySet()) {
+            double grade = (quizMean.get(student) + workRateMean.get(student) + contributionMean.get(student)) * 100 / 3. ;
+            result.put(student, grade);
         }
+        return result;
+    }
 
-        return Arrays.asList(grading);
+    @Override
+    public Map<StudentIdentifier, Double> calculateAssessment(String projectId, String method) {
+        ArrayList<Performance> totalPerformance = new ArrayList<>();
+        //get all students in projectID from DB
+        List<String> students = new AssessmentDBCommunication().getStudents(projectId);
+        //for each student
+        for (String student : students) {
+            Performance performance = new Performance();
+            StudentIdentifier studentIdentifier = new StudentIdentifier(projectId, student);
+            List<Integer> answeredQuizzes = new AssessmentDBCommunication().getAnsweredQuizzes(studentIdentifier);
+            ArrayList<Map<String, Double>> workRating = new AssessmentDBCommunication().getWorkRating(studentIdentifier);
+            ArrayList<Map<String, Double>> contributionRating = new AssessmentDBCommunication().getContributionRating(studentIdentifier);
+            performance.setStudentIdentifier(studentIdentifier);
+            performance.setQuizAnswer(answeredQuizzes);
+            performance.setWorkRating(cheatChecker(workRating, cheatCheckerMethods.variance));
+            performance.setContributionRating(cheatChecker(contributionRating, cheatCheckerMethods.variance));
+            totalPerformance.add(performance);
+        }
+        return calculateAssessment(totalPerformance);
     }
 
-    private List<Grading> meanOfQuizzes(ArrayList<Performance> totalPerformance){
+    private Map<StudentIdentifier, Double> quizGrade(ArrayList<Performance> totalPerformance) {
         double[] allAssessments = new double[totalPerformance.size()];
-        Grading[] grading = new Grading[totalPerformance.size()];
+        Map<StudentIdentifier, Double> grading = new HashMap<>();
 
         for (int i = 0; i < totalPerformance.size(); i++) {
-            for (int j = 0; j < totalPerformance.get(i).getQuizAnswer().length; j++) {
-                allAssessments[i] += totalPerformance.get(i).getQuizAnswer()[j];
+            for (Integer quiz : totalPerformance.get(i).getQuizAnswer()) {
+                allAssessments[i] += quiz;
             }
-            allAssessments[i] = allAssessments[i] / totalPerformance.get(i).getQuizAnswer().length;
+            allAssessments[i] = allAssessments[i] / totalPerformance.get(i).getQuizAnswer().size();
         }
         for (int i = 0; i < totalPerformance.size(); i++) {
-            Grading shuttle = new Grading(totalPerformance.get(i).getStudentIdentifier(), allAssessments[i]);
-            grading[i] = shuttle;
+            grading.put(totalPerformance.get(i).getStudentIdentifier(), allAssessments[i]);
         }
-        return Arrays.asList(grading);
+        return grading;
     }
 
-    private List<Grading> meanOfWorkRate(ArrayList<Performance> totalPerformance){
-        double[] allAssessments = new double[totalPerformance.size()];
-        Grading[] grading = new Grading[totalPerformance.size()];
+    private Map<StudentIdentifier, Double> mapToGrade(Map<StudentIdentifier, Map<String, Double>> ratings) {
+        Double allAssessments;
+        Map<StudentIdentifier, Double> grading = new HashMap<>();
+        for (StudentIdentifier student : ratings.keySet()) {
+            if (ratings.get(student) != null){
+                allAssessments = sumOfDimensions(ratings.get(student));
+                Double countDimensions = (double) ratings.get(student).size();
+                grading.put(student, (allAssessments-1) / (countDimensions * 4));
+            }
+            else {
+                grading.put(student, 0.);
+            }
+        }
+        return grading;
+    }
 
-        for (int i = 0; i < totalPerformance.size(); i++) {
-            for (int j = 0; j < totalPerformance.get(i).getWorkRating().length; j++) {
-                allAssessments[i] += 6-totalPerformance.get(i).getWorkRating()[j];
+    private Double sumOfDimensions(Map rating) {
+        Double sumOfDimensions = 0.;
+        for (Object o : rating.entrySet()) {
+            HashMap.Entry pair = (HashMap.Entry) o;
+            Double markForDimension = (Double) pair.getValue();
+            sumOfDimensions += markForDimension;
+        }
+        return sumOfDimensions;
+    }
+
+    private Map<String, Double> meanOfWorkRatings(ArrayList<Map<String, Double>> workRatings) {
+        HashMap<String, Double> mean = new HashMap<>();
+        Double size = (double) workRatings.size();
+        for (Object o : workRatings.get(0).entrySet()) {
+            Map.Entry pair = (Map.Entry) o;
+            mean.put((String) pair.getKey(), 0.0);
+        }
+        for (Map<String, Double> rating : workRatings) {
+            for (Object o : rating.entrySet()) {
+                Map.Entry pair = (Map.Entry) o;
+                Double value = (double) pair.getValue();
+                mean.put((String) pair.getKey(), value / size + mean.get(pair.getKey()));
             }
-            allAssessments[i] = allAssessments[i] / totalPerformance.get(i).getWorkRating().length;
         }
-        for (int i = 0; i < totalPerformance.size(); i++) {
-            Grading shuttle = new Grading(totalPerformance.get(i).getStudentIdentifier(), allAssessments[i]);
-            grading[i] = shuttle;
+        return mean;
+    }
+
+    private Map<String, Double> cheatChecker(ArrayList<Map<String, Double>> workRatings, cheatCheckerMethods method) {
+        ArrayList<Map<String, Double>> oneExcludedMeans = new ArrayList<>();
+        Map<String, Double> result;
+        if (workRatings.size() > 1) {
+            for (Map rating : workRatings) {
+                ArrayList<Map<String, Double>> possiblyCheating = new ArrayList<>(workRatings);
+                possiblyCheating.remove(rating);
+                oneExcludedMeans.add(meanOfWorkRatings(possiblyCheating));
+            }
+        } else {
+            if (workRatings.size() <1){
+                return null;
+            }
+            oneExcludedMeans.add(meanOfWorkRatings(workRatings));
         }
-        return Arrays.asList(grading);
+        if (method.equals(cheatCheckerMethods.median)) {
+            workRatings.sort(byMean);
+            result = workRatings.get(workRatings.size() / 2); //in favor of student
+        } else {
+            if (method.equals(cheatCheckerMethods.variance)) {
+                Map<String, Double> meanWorkRating = new HashMap<>(meanOfWorkRatings(oneExcludedMeans));
+                ArrayList<Map<String, Double>> elementwiseDeviation = new ArrayList<>();
+                for (Map<String, Double> rating : oneExcludedMeans) {
+                    HashMap<String, Double> shuttle = new HashMap<>();
+                    for (String key : rating.keySet()) {
+                        Double value = (rating.get(key) - meanWorkRating.get(key)) * (rating.get(key) - meanWorkRating.get(key));
+                        shuttle.put(key, value);
+                    }
+                    elementwiseDeviation.add(shuttle);
+                }
+                Double deviationOld = 0.;
+                Integer key = 0;
+                for (Integer i = 0; i < elementwiseDeviation.size(); i++) {
+                    Double deviationNew = 0.;
+                    for (Double devi : elementwiseDeviation.get(i).values()) {
+                        deviationNew += devi;
+                    }
+                    if (deviationNew > deviationOld) {
+                        deviationOld = deviationNew;
+                        key = i;
+                    }
+                }
+                result = oneExcludedMeans.get(key);  //gets set of rates with highest deviation in data
+                                                    //so without the cheater
+            } else {            //without cheatChecking
+                result = meanOfWorkRatings(workRatings);
+            }
+        }
+        return result;
     }
 
     @Override
@@ -97,14 +199,48 @@ public class PeerAssessment implements IPeerAssessment {
     }
 
 
-
     @Override
-    public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId) {
-
+    public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId) {
+        for (PeerRating peer: peerRatings){
+            StudentIdentifier student = new StudentIdentifier(projectId, peer.getToPeer());
+            new AssessmentDBCommunication().writeWorkRatingToDB(student, peer.getFromPeer(), peer.getWorkRating());
+        }
     }
 
     @Override
-    public void answerQuiz(StudentAndQuiz studentAndQuiz, QuizAnswer quizAnswer) {
+    public void postContributionRating(StudentIdentifier student,
+                                       String fromStudent,
+                                       Map<String, Integer> contributionRating) {
+        new AssessmentDBCommunication().writeContributionRatingToDB(student, fromStudent, contributionRating);
+    }
 
+    @Override
+    public void answerQuiz(Map<String, List<String>> questions, StudentIdentifier student) {
+        for (String question: questions.keySet()){
+            Map<String, Boolean> whatAreAnswers = new AssessmentDBCommunication().getAnswers(student.getProjectId(), question);
+            Map<String, Boolean> wasQuestionAnsweredCorrectly = new HashMap<>();
+            Boolean correct = true;
+            for (String studentAnswer: questions.get(question)){
+                if (!whatAreAnswers.get(studentAnswer)){
+                    correct=false;
+                }
+            }
+            wasQuestionAnsweredCorrectly.put(question, correct);
+            new AssessmentDBCommunication().writeAnsweredQuiz(student, wasQuestionAnsweredCorrectly);
+        }
     }
+
+    private Comparator<Map<String, Double>> byMean = (o1, o2) -> {
+        Double sumOfO1 = 0.;
+        Double sumOfO2 = 0.;
+        for (String key : o1.keySet()) {
+            sumOfO1 += o1.get(key);
+            sumOfO2 += o2.get(key);
+        }
+        if (sumOfO1.equals(sumOfO2)) {
+            return 0;
+        } else {
+            return sumOfO1 > sumOfO2 ? -1 : 1;
+        }
+    };
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java.orig b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java.orig
deleted file mode 100644
index 5335af53fd1b59c1b49775f877918fa61b469715..0000000000000000000000000000000000000000
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java.orig
+++ /dev/null
@@ -1,114 +0,0 @@
-package unipotsdam.gf.modules.assessment.controller.service;
-
-<<<<<<< HEAD
-=======
-import unipotsdam.gf.core.management.ManagementImpl;
->>>>>>> origin/session_management
-import unipotsdam.gf.interfaces.IPeerAssessment;
-import unipotsdam.gf.modules.assessment.QuizAnswer;
-import unipotsdam.gf.modules.assessment.controller.model.*;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-public class PeerAssessment implements IPeerAssessment {
-    @Override
-    public void addAssessmentDataToDB(Assessment assessment) {
-
-    }
-
-    @Override//returns one quiz
-    public Quiz getQuiz(String projectId, String quizId, String author) {
-        return new QuizDBCommunication().getQuizByProjectQuizId(projectId, quizId, author);
-    }
-
-    @Override //returns all quizzes in the course
-    public ArrayList<Quiz> getQuiz(String projectId) {
-        return new QuizDBCommunication().getQuizByProjectId(projectId);
-    }
-
-    @Override
-    public Assessment getAssessmentDataFromDB(StudentIdentifier student) {
-        return new AssessmentDBCommunication().getAssessment(student);
-    }
-
-    @Override
-    public void createQuiz(StudentAndQuiz studentAndQuiz) {
-        new QuizDBCommunication().createQuiz(studentAndQuiz.getQuiz(),studentAndQuiz.getStudentIdentifier().getStudentId(), studentAndQuiz.getStudentIdentifier().getProjectId());
-    }
-
-    @Override
-    public void deleteQuiz(String quizId) {
-        new QuizDBCommunication().deleteQuiz(quizId);
-    }
-
-    @Override
-    public List<Grading> calculateAssessment(ArrayList<Performance> totalPerformance) {
-        List<Grading> quizMean = meanOfQuizzes(totalPerformance);
-        List<Grading> workRateMean = meanOfWorkRate(totalPerformance);
-        Grading[] grading = new Grading[totalPerformance.size()];
-        for (int i=0; i<quizMean.size(); i++){
-            double grade = quizMean.get(i).getGrade() * workRateMean.get(i).getGrade();
-            grading[i] = new Grading(totalPerformance.get(i).getStudentIdentifier(), grade);
-        }
-
-        return Arrays.asList(grading);
-    }
-
-    private List<Grading> meanOfQuizzes(ArrayList<Performance> totalPerformance){
-        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++) {
-                allAssessments[i] += totalPerformance.get(i).getQuizAnswer()[j];
-            }
-            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(), allAssessments[i]);
-            grading[i] = shuttle;
-        }
-        return Arrays.asList(grading);
-    }
-
-    private List<Grading> meanOfWorkRate(ArrayList<Performance> totalPerformance){
-        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).getWorkRating().length; j++) {
-                allAssessments[i] += 6-totalPerformance.get(i).getWorkRating()[j];
-            }
-            allAssessments[i] = allAssessments[i] / totalPerformance.get(i).getWorkRating().length;
-        }
-        for (int i = 0; i < totalPerformance.size(); i++) {
-            Grading shuttle = new Grading(totalPerformance.get(i).getStudentIdentifier(), allAssessments[i]);
-            grading[i] = shuttle;
-        }
-        return Arrays.asList(grading);
-    }
-
-    @Override
-    public ArrayList<Performance> getTotalAssessment(StudentIdentifier studentIdentifier) {
-        return null;
-    }
-
-    @Override
-    public int meanOfAssessment(String ProjectId) {
-        return 0;
-    }
-
-
-
-    @Override
-    public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId) {
-
-    }
-
-    @Override
-    public void answerQuiz(StudentAndQuiz studentAndQuiz, QuizAnswer quizAnswer) {
-
-    }
-}
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 61f53cc8c15ee050db92d20c9b37be376684ac6a..78291cecd72583f82ec78bc02859cbf36ec4a01b 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
@@ -6,9 +6,7 @@ import unipotsdam.gf.interfaces.IPeerAssessment;
 import unipotsdam.gf.modules.assessment.QuizAnswer;
 import unipotsdam.gf.modules.assessment.controller.model.*;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
 
 public class PeerAssessmentDummy implements IPeerAssessment {
     @Override
@@ -17,8 +15,8 @@ public class PeerAssessmentDummy implements IPeerAssessment {
 
     @Override
     public Quiz getQuiz(String projectId, String quizId, String author) {
-        ArrayList<String> correctAnswers = new ArrayList<String>();
-        ArrayList<String> incorrectAnswers = new ArrayList<String>();
+        ArrayList<String> correctAnswers = new ArrayList<>();
+        ArrayList<String> incorrectAnswers = new ArrayList<>();
         Quiz sampleQuiz;
         if (quizId.equals("2")) {
             correctAnswers.add("42");
@@ -41,9 +39,9 @@ public class PeerAssessmentDummy implements IPeerAssessment {
     }
 
     public ArrayList<Quiz> getQuiz(String projectId) {
-        ArrayList<String> correctAnswers = new ArrayList<String>();
-        ArrayList<String> incorrectAnswers = new ArrayList<String>();
-        ArrayList<Quiz> sampleQuiz = new ArrayList<Quiz>();
+        ArrayList<String> correctAnswers = new ArrayList<>();
+        ArrayList<String> incorrectAnswers = new ArrayList<>();
+        ArrayList<Quiz> sampleQuiz = new ArrayList<>();
         correctAnswers.add("42");
         correctAnswers.add("" + projectId + " 24");
         incorrectAnswers.add("a god created creature");
@@ -63,12 +61,17 @@ public class PeerAssessmentDummy implements IPeerAssessment {
 }
 
     @Override
-    public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId) {
+    public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId) {
         int breakpoint = 0; //todo: print an http-answer for the ajax-request to receive
     }
 
     @Override
-    public void answerQuiz(StudentAndQuiz studentAndQuiz, QuizAnswer quizAnswer) {
+    public void postContributionRating(StudentIdentifier student, String fromStudent, Map<String, Integer> contributionRating) {
+
+    }
+
+    @Override
+    public void answerQuiz(Map<String, List<String>> questions, StudentIdentifier student) {
         NotImplementedLogger.logAssignment(Assignee.AXEL, IPeerAssessment.class);
     }
 
@@ -77,13 +80,24 @@ public class PeerAssessmentDummy implements IPeerAssessment {
 
     }
 
+    @Override
+    public Map<StudentIdentifier, Double> calculateAssessment(String projectId, String method) {
+        return null;
+    }
+
     @Override
     public Assessment getAssessmentDataFromDB(StudentIdentifier student) {
-        int[] quizAnswer = {1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1};
-        int[] workRating = {1, 5, 3, 4, 1, 5, 5};
-        Performance performance = new Performance(student, quizAnswer, "what a nice guy", workRating);
-        Assessment assessment = new Assessment(student, performance);
-        return assessment;
+        List<Integer> quizAnswer = new ArrayList<>();
+        quizAnswer.add(0);
+        quizAnswer.add(1);
+        quizAnswer.add(1);
+        quizAnswer.add(1);
+        quizAnswer.add(0);
+        quizAnswer.add(0);
+        Map workRating = new HashMap<>();
+        Map contributionRating = new HashMap<>();
+        Performance performance = new Performance(student, quizAnswer, contributionRating, workRating);
+        return new Assessment(student, performance);
     }
 
     @Override
@@ -92,37 +106,53 @@ public class PeerAssessmentDummy implements IPeerAssessment {
     }
 
     @Override
-    public List<Grading> calculateAssessment(ArrayList<Performance> totalPerformance) {
-        double[] allAssessments = new double[totalPerformance.size()];
-        Grading[] grading = new Grading[totalPerformance.size()];
-
-        for (int i = 0; i < totalPerformance.size(); i++) {
-            for (int j = totalPerformance.get(i).getQuizAnswer().length; j > 0; j--) {
-                allAssessments[i] += totalPerformance.get(i).getQuizAnswer()[j];
-            }
-            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(), allAssessments[i]);
-            grading[i] = shuttle;
-        }
-        return Arrays.asList(grading);
+    public Map<StudentIdentifier, Double> calculateAssessment(ArrayList<Performance> totalPerformance) {
+        return null;
     }
 
     @Override
     public ArrayList<Performance> getTotalAssessment(StudentIdentifier studentIdentifier) {
-        StudentIdentifier[] students = new StudentIdentifier[2];
         StudentIdentifier student1 = new StudentIdentifier("gemeinsamForschen", "Haralf");
         StudentIdentifier student2 = new StudentIdentifier("gemeinsamForschen", "Regine");
-        ArrayList<Performance> performances = new ArrayList<Performance>();
-        int[] quiz = {1, 0, 1, 0, 0, 0, 1};
-        int[] quiz2 = {0, 1, 0, 1, 1, 1, 0};
-        int[] work = {5, 4, 3, 2, 1};
-        int[] work2 = {1, 2, 3, 4, 5};
-        Performance performance = new Performance(student1, quiz, "toller dude", work);
-        performances.add(performance);
-        performance = new Performance(student2, quiz2, "tolle dudine", work2);
+        ArrayList<Performance> performances = new ArrayList<>();
+        List<Integer> quiz = new ArrayList<>();
+        quiz.add(0);
+        quiz.add(1);
+        quiz.add(1);
+        quiz.add(1);
+        quiz.add(0);
+        quiz.add(0);
+        List<Integer> quiz2 = new ArrayList<>();
+        quiz2.add(0);
+        quiz2.add(1);
+        quiz2.add(1);
+        quiz2.add(1);
+        quiz2.add(0);
+        quiz2.add(0);
+        Map<String, Double> work = new HashMap<>();
+        work.put("responsibility", 1.);
+        work.put("partOfWork", 1.);
+        work.put("cooperation", 1.);
+        work.put("communication", 1.);
+        work.put("autonomous", 1.);
+        Map<String, Double> work2 = new HashMap<>();
+        work2.put("responsibility", 3.);
+        work2.put("partOfWork", 4.);
+        work2.put("cooperation", 5.);
+        work2.put("communication", 3.);
+        work2.put("autonomous", 4.);
+        Map<String, Double> contribution1 = new HashMap<>();
+        contribution1.put("Dossier", 4.);
+        contribution1.put("eJournal", 2.);
+        contribution1.put("research", 4.);
+        Map<String, Double> contribution2 = new HashMap<>();
+        contribution2.put("Dossier", 2.);
+        contribution2.put("eJournal", 3.);
+        contribution2.put("research", 4.);
+        Performance performance = new Performance(student1, quiz, contribution1, work);
         performances.add(performance);
+        Performance performance2 = new Performance(student2, quiz2, contribution2, work2);
+        performances.add(performance2);
         return performances;
     }
 
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java.orig b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java.orig
deleted file mode 100644
index be8e569d866af00d85f2cc45b582eb7baa0b8d99..0000000000000000000000000000000000000000
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java.orig
+++ /dev/null
@@ -1,133 +0,0 @@
-package unipotsdam.gf.modules.assessment.controller.service;
-
-import unipotsdam.gf.assignments.Assignee;
-import unipotsdam.gf.assignments.NotImplementedLogger;
-import unipotsdam.gf.interfaces.IPeerAssessment;
-import unipotsdam.gf.modules.assessment.QuizAnswer;
-import unipotsdam.gf.modules.assessment.controller.model.*;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-public class PeerAssessmentDummy implements IPeerAssessment {
-    @Override
-    public void addAssessmentDataToDB(Assessment assessment) {
-    }
-
-    @Override
-    public Quiz getQuiz(String projectId, String quizId, String author) {
-        ArrayList<String> correctAnswers = new ArrayList<String>();
-        ArrayList<String> incorrectAnswers = new ArrayList<String>();
-        Quiz sampleQuiz;
-        if (quizId.equals("2")) {
-            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.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) {
-        ArrayList<String> correctAnswers = new ArrayList<String>();
-        ArrayList<String> incorrectAnswers = new ArrayList<String>();
-        ArrayList<Quiz> sampleQuiz = new ArrayList<Quiz>();
-        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(ArrayList<PeerRating> peerRatings, String projectId, String groupId) {
-        int breakpoint = 0; //todo: print an http-answer for the ajax-request to receive
-    }
-
-    @Override
-<<<<<<< HEAD
-    public void deleteQuiz(String quizId) {
-
-=======
-    public void answerQuiz(StudentAndQuiz studentAndQuiz, QuizAnswer quizAnswer) {
-        NotImplementedLogger.logAssignment(Assignee.AXEL, IPeerAssessment.class);
->>>>>>> origin/session_management
-    }
-
-    @Override
-    public Assessment getAssessmentDataFromDB(StudentIdentifier student) {
-        int[] quizAnswer = {1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1};
-        int[] workRating = {1, 5, 3, 4, 1, 5, 5};
-        Performance performance = new Performance(student, quizAnswer, "what a nice guy", workRating);
-        Assessment assessment = new Assessment(student, performance);
-        return assessment;
-    }
-
-    @Override
-    public void createQuiz(StudentAndQuiz studentAndQuiz) {
-        NotImplementedLogger.logAssignment(Assignee.AXEL, PeerAssessmentDummy.class);
-    }
-
-    @Override
-    public List<Grading> calculateAssessment(ArrayList<Performance> totalPerformance) {
-        double[] allAssessments = new double[totalPerformance.size()];
-        Grading[] grading = new Grading[totalPerformance.size()];
-
-        for (int i = 0; i < totalPerformance.size(); i++) {
-            for (int j = totalPerformance.get(i).getQuizAnswer().length; j > 0; j--) {
-                allAssessments[i] += totalPerformance.get(i).getQuizAnswer()[j];
-            }
-            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(), allAssessments[i]);
-            grading[i] = shuttle;
-        }
-        return Arrays.asList(grading);
-    }
-
-    @Override
-    public ArrayList<Performance> getTotalAssessment(StudentIdentifier studentIdentifier) {
-        StudentIdentifier[] students = new StudentIdentifier[2];
-        StudentIdentifier student1 = new StudentIdentifier("gemeinsamForschen", "Haralf");
-        StudentIdentifier student2 = new StudentIdentifier("gemeinsamForschen", "Regine");
-        ArrayList<Performance> performances = new ArrayList<Performance>();
-        int[] quiz = {1, 0, 1, 0, 0, 0, 1};
-        int[] quiz2 = {0, 1, 0, 1, 1, 1, 0};
-        int[] work = {5, 4, 3, 2, 1};
-        int[] work2 = {1, 2, 3, 4, 5};
-        Performance performance = new Performance(student1, quiz, "toller dude", work);
-        performances.add(performance);
-        performance = new Performance(student2, quiz2, "tolle dudine", work2);
-        performances.add(performance);
-        return performances;
-    }
-
-    @Override
-    public int meanOfAssessment(String ProjectId) {
-        return 0;
-    }
-}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/QuizDBCommunication.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/QuizDBCommunication.java
index 49867e1df50e81195f5065e1f994e3cf4640203a..1bec0a0672821a6f22d342f5dd1390d7340066ac 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/QuizDBCommunication.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/QuizDBCommunication.java
@@ -13,7 +13,7 @@ import java.util.ArrayList;
 @Resource
 @Singleton
 public class QuizDBCommunication {
-    public Quiz getQuizByProjectQuizId(String projectId, String quizId, String author){
+    Quiz getQuizByProjectQuizId(String projectId, String quizId, String author){
         MysqlConnect connect = new MysqlConnect();
         connect.connect();
         String mysqlRequest = "SELECT * FROM `quiz` WHERE `projectId`=? AND `question`=? AND `author`=?";
@@ -21,8 +21,8 @@ public class QuizDBCommunication {
                 connect.issueSelectStatement(mysqlRequest, projectId,quizId,author);
         boolean next = vereinfachtesResultSet.next();
         String question = "";
-        ArrayList<String> correctAnswers = new ArrayList<String>();
-        ArrayList<String> incorrectAnswers = new ArrayList<String>();
+        ArrayList<String> correctAnswers = new ArrayList<>();
+        ArrayList<String> incorrectAnswers = new ArrayList<>();
         String answer;
         Boolean correct;
         String mcType = "";
@@ -43,22 +43,22 @@ public class QuizDBCommunication {
         return quiz;
     }
 
-    public ArrayList<Quiz> getQuizByProjectId(String projectId) {
+    ArrayList<Quiz> getQuizByProjectId(String projectId) {
         MysqlConnect connect = new MysqlConnect();
-        ArrayList<Quiz> result= new ArrayList<Quiz>();
+        ArrayList<Quiz> result= new ArrayList<>();
         connect.connect();
         String mysqlRequest = "SELECT * FROM quiz where projectId= ?";
         VereinfachtesResultSet vereinfachtesResultSet =
                 connect.issueSelectStatement(mysqlRequest, projectId);
         boolean next = vereinfachtesResultSet.next();
-        String question = "";
-        ArrayList<String> correctAnswers = new ArrayList<String>();
-        ArrayList<String> incorrectAnswers = new ArrayList<String>();
+        String question;
+        ArrayList<String> correctAnswers = new ArrayList<>();
+        ArrayList<String> incorrectAnswers = new ArrayList<>();
         String answer;
         String oldQuestion="";
         Boolean correct;
         String mcType = "";
-        Quiz quiz =null;
+        Quiz quiz;
         while (next) {
             mcType = vereinfachtesResultSet.getString("mcType");
             question = vereinfachtesResultSet.getString("question");
@@ -73,9 +73,8 @@ public class QuizDBCommunication {
             }else{
                 quiz = new Quiz(mcType,oldQuestion, correctAnswers, incorrectAnswers);
                 result.add(quiz);
-                quiz=null;
-                correctAnswers=new ArrayList<String>();
-                incorrectAnswers=new ArrayList<String>();
+                correctAnswers=new ArrayList<>();
+                incorrectAnswers=new ArrayList<>();
                 if (correct){
                     correctAnswers.add(answer);
                 }else{
@@ -105,24 +104,21 @@ public class QuizDBCommunication {
         String mcType;
         String question;
         String answer;
-        boolean correct;
         ArrayList<String> correctAnswers = quiz.getCorrectAnswers();
-        for (int i=0; i<correctAnswers.size(); i++) {
-            answer = correctAnswers.get(i);
+        for (String correctAnswer : correctAnswers) {
+            answer = correctAnswer;
             mcType = quiz.getType();
             question = quiz.getQuestion();
-            correct = true;
             String mysqlRequest = "INSERT INTO `quiz`(`author`, `projectId`, `question`, `mcType`, `answer`, `correct`) VALUES (?,?,?,?,?,?)";
-            connect.issueInsertOrDeleteStatement(mysqlRequest, author, projectId, question, mcType, answer, correct);
+            connect.issueInsertOrDeleteStatement(mysqlRequest, author, projectId, question, mcType, answer, true);
         }
         ArrayList<String> incorrectAnswers = quiz.getIncorrectAnswers();
-        for (int i=0; i<incorrectAnswers.size(); i++) {
-            answer = incorrectAnswers.get(i);
+        for (String incorrectAnswer : incorrectAnswers) {
+            answer = incorrectAnswer;
             mcType = quiz.getType();
             question = quiz.getQuestion();
-            correct = false;
             String mysqlRequest = "INSERT INTO `quiz`(`author`, `projectId`, `question`, `mcType`, `answer`, `correct`) VALUES (?,?,?,?,?,?)";
-            connect.issueInsertOrDeleteStatement(mysqlRequest, author, projectId, question, mcType, answer, correct);
+            connect.issueInsertOrDeleteStatement(mysqlRequest, author, projectId, question, mcType, answer, false);
         }
         connect.close();
     }
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 e5d30daa824a778fcd03807afd55db8d000de145..e41b15a6dda0f0a60aa833c0682112d82e3edc4a 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
@@ -4,27 +4,29 @@ import unipotsdam.gf.interfaces.IPeerAssessment;
 import unipotsdam.gf.modules.assessment.QuizAnswer;
 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.*;
 import javax.ws.rs.core.MediaType;
+import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Path("/assessments")
-public class QuizView implements IPeerAssessment {
+public class QuizView {
     //private static IPeerAssessment peer =  new PeerAssessmentDummy();   //TestSubject
-    private static IPeerAssessment peer =  new PeerAssessment();      //correct DB-conn and stuff
+    private static IPeerAssessment peer = new PeerAssessment();      //correct DB-conn and stuff
+
     @GET
     @Produces(MediaType.APPLICATION_JSON)
     @Path("/project/{projectId}/quiz/{quizId}/author/{author}")
-    @Override
     public Quiz getQuiz(@PathParam("projectId") String projectId, @PathParam("quizId") String quizId, @PathParam("author") String author) {
-        try{
-            String question=java.net.URLDecoder.decode(quizId,"UTF-8");
+        try {
+            String question = java.net.URLDecoder.decode(quizId, "UTF-8");
             return peer.getQuiz(projectId, question, author);
-        }catch(UnsupportedEncodingException e){
+        } catch (UnsupportedEncodingException e) {
             throw new AssertionError("UTF-8 is unknown");
         }
     }  ///////////////////////////////funktioniert//////////////////////////////////
@@ -32,7 +34,6 @@ public class QuizView implements IPeerAssessment {
     @GET
     @Produces(MediaType.APPLICATION_JSON)
     @Path("/project/{projectId}/quiz")
-    @Override
     public ArrayList<Quiz> getQuiz(@PathParam("projectId") String projectId) {
         return peer.getQuiz(projectId);
     }
@@ -40,50 +41,58 @@ public class QuizView implements IPeerAssessment {
 
     @POST
     @Consumes(MediaType.APPLICATION_JSON)
-    @Path("/peer/project/{projectId}/group/{groupId}")
-    @Override
-    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.
+    @Path("/peerRating/project/{projectId}")
+    public void postPeerRating(ArrayList<PeerRating> peerRatings, @PathParam("projectId") String projectId) throws IOException {
+        peer.postPeerRating(peerRatings, projectId);
     }
 
-    @Override
-    public void answerQuiz(StudentAndQuiz studentAndQuiz, QuizAnswer quizAnswer) {
+    @POST
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Path("/contributionRating/projectId/{projectId}/studentId/{studentId}/fromPeer/{fromPeer}")
+    public void postContributionRating(Map<String, Integer> contributionRatings,
+                                       @PathParam("projectId") String projectId,
+                                       @PathParam("studentId") String studentId,
+                                       @PathParam("fromPeer") String fromPeer) throws IOException {
+        StudentIdentifier student = new StudentIdentifier(projectId, studentId);
+        peer.postContributionRating(student, fromPeer, contributionRatings);
+    }
 
+    @POST
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Path("/quizAnswer/projectId/{projectId}/studentId/{studentId}/")
+    public void answerQuiz(Map<String, List<String>> questions, @PathParam("projectId") String projectId, @PathParam("studentId") String studentId) {
+        StudentIdentifier student = new StudentIdentifier(projectId, studentId);
+        peer.answerQuiz(questions, student);
     }
 
     @POST
     @Consumes(MediaType.APPLICATION_JSON)
     @Path("/quiz/{quizId}")
-    @Override
     public void deleteQuiz(@PathParam("quizId") String quizId) {
         try {
             String question = java.net.URLDecoder.decode(quizId, "UTF-8");
             peer.deleteQuiz(question);
-        }catch(UnsupportedEncodingException e){
+        } catch (UnsupportedEncodingException e) {
             throw new AssertionError("UTF-8 is unknown");
         }
     }
-    ////////////////////////////funktioniert////////////////////////////////////////////////////////
 
     @POST
     @Produces(MediaType.TEXT_PLAIN)
     @Consumes(MediaType.APPLICATION_JSON)
     @Path("/assessment")
-    @Override
     public void addAssessmentDataToDB(Assessment assessment) {
         peer.addAssessmentDataToDB(assessment);
     }
 
-    @Override
-    public Assessment getAssessmentDataFromDB(StudentIdentifier student){
+    private Assessment getAssessmentDataFromDB(StudentIdentifier student) {
         return peer.getAssessmentDataFromDB(student);
     }
 
     @GET
     @Produces(MediaType.APPLICATION_JSON)
     @Path("/get/project/{projectId}/student/{studentId}")
-    public Assessment getAssessmentDataFromDB(@PathParam("projectId") String projectId,@PathParam("studentId") String studentId){
+    public Assessment getAssessmentDataFromDB(@PathParam("projectId") String projectId, @PathParam("studentId") String studentId) {
         StudentIdentifier student = new StudentIdentifier(projectId, studentId);
         return getAssessmentDataFromDB(student);
     }  //////////dummy//////////////funktioniert wie geplant//////////////////////////////////
@@ -93,7 +102,6 @@ public class QuizView implements IPeerAssessment {
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
     @Path("/quiz")
-    @Override
     public void createQuiz(StudentAndQuiz studentAndQuiz) {
         peer.createQuiz(studentAndQuiz);
     }
@@ -103,30 +111,35 @@ public class QuizView implements IPeerAssessment {
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
     @Path("/calculate")
-    @Override
-    public List<Grading> calculateAssessment(ArrayList<Performance> totalPerformance) {
+    public Map<StudentIdentifier, Double> calculateAssessment(ArrayList<Performance> totalPerformance) {
         return peer.calculateAssessment(totalPerformance);
     }
-    ///////////////dummy/////////funktioniert glaube ich!?////////////////////////////////////////
+    ////////////////////////funktioniert primitiv/////////todo: nicht als jersey zu nutzen///////////////////////////////
+
+    @GET
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Produces(MediaType.APPLICATION_JSON)
+    @Path("/calculate/projectId/{projectId}/cheatChecker/{method}")
+    public Map<StudentIdentifier, Double> calculateAssessment(@PathParam("projectId") String projectId, @PathParam("method") String method) {
+        return peer.calculateAssessment(projectId, method);
+    }
+
 
     @GET
     @Produces(MediaType.APPLICATION_JSON)
     @Path("/mean/project/{projectId}")
-    @Override
     public int meanOfAssessment(@PathParam("projectId") String ProjectId) {
-
         return peer.meanOfAssessment(ProjectId);
     }  ///////////////////////////////return 0//////////////////////////////////
 
     @GET
     @Produces(MediaType.APPLICATION_JSON)
     @Path("/total/project/{projectId}/student/{student}")
-    public ArrayList<Performance> getTotalAssessment(@PathParam("projectId") String ProjectId,@PathParam("student") String student){
+    public ArrayList<Performance> getTotalAssessment(@PathParam("projectId") String ProjectId, @PathParam("student") String student) {
         StudentIdentifier studentIdentifier = new StudentIdentifier(ProjectId, student);
         return getTotalAssessment(studentIdentifier);
     }  //////////dummy/////////////funktioniert wie geplant//////////////////////////////////
 
-    @Override
     public ArrayList<Performance> getTotalAssessment(StudentIdentifier studentIdentifier) {
         return peer.getTotalAssessment(studentIdentifier);
     }  /////////dummy/////////////funktioniert wie geplant//////////////////////////////////
@@ -136,11 +149,46 @@ public class QuizView implements IPeerAssessment {
     @Produces(MediaType.APPLICATION_JSON)
     @Path("/dummy/totalperformance")
     public List<Performance> getTotalAssessment() {
-        ArrayList<Performance> result = new ArrayList<>();
-        StudentIdentifier student = new StudentIdentifier("projekt","student");
-        int[] quiz = {1,0,1,1,1,0};
-        Performance pf = new Performance(student,quiz,"toller dude",quiz);
-        Performance pf2 = new Performance(student,quiz,"super",quiz);
+        List<Performance> result = new ArrayList<>();
+        StudentIdentifier student = new StudentIdentifier("projekt", "student");
+        List<Integer> quiz = new ArrayList<>();
+        quiz.add(1);
+        quiz.add(0);
+        quiz.add(1);
+        quiz.add(0);
+        quiz.add(1);
+        quiz.add(0);
+        quiz.add(1);
+        Map<String, Double> work = new HashMap<>();
+        work.put("responsibility", 1.);
+        work.put("partOfWork", 1.);
+        work.put("cooperation", 1.);
+        work.put("communication", 1.);
+        work.put("autonomous", 1.);
+        Map<String, Double> work2 = new HashMap<>();
+        work2.put("responsibility", 3.);
+        work2.put("partOfWork", 4.);
+        work2.put("cooperation", 5.);
+        work2.put("communication", 3.);
+        work2.put("autonomous", 4.);
+        Map<String, Double> contribution1 = new HashMap<>();
+        contribution1.put("Dossier", 4.);
+        contribution1.put("eJournal", 2.);
+        contribution1.put("research", 4.);
+        Map<String, Double> contribution2 = new HashMap<>();
+        contribution2.put("Dossier", 2.);
+        contribution2.put("eJournal", 3.);
+        contribution2.put("research", 4.);
+        Performance pf = new Performance();
+        pf.setContributionRating(contribution1);
+        pf.setQuizAnswer(quiz);
+        pf.setStudentIdentifier(student);
+        pf.setWorkRating(work);
+        Performance pf2 = new Performance();
+        pf2.setContributionRating(contribution2);
+        pf2.setQuizAnswer(quiz);
+        pf2.setStudentIdentifier(student);
+        pf2.setWorkRating(work2);
         result.add(pf);
         result.add(pf2);
         return result;
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/Quiz-docent.js b/gemeinsamforschen/src/main/webapp/assets/js/Quiz-docent.js
new file mode 100644
index 0000000000000000000000000000000000000000..2eedd8af5d6c4a7690ae11b782dcfe0fecb8c017
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/Quiz-docent.js
@@ -0,0 +1,87 @@
+$(document).ready(function () {
+    $('#newQuiz').on('click', function(){
+        location.href="createQuiz.jsp?token="+getUserTokenFromUrl()+"&projectId="+$('#projectId').html().trim();
+    });
+
+    let loading = $('#loadbar').hide();
+    $(document)
+        .ajaxStart(function () {
+            loading.show();
+        }).ajaxStop(function () {
+        loading.hide();
+    });
+
+    $("label.btn").on('click',function () {
+        let 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;
+
+    let projectId = document.getElementById('projectId').innerText.trim();
+    $.ajax({
+        url: '../rest/assessments/project/'+projectId+'/quiz/',
+        type: 'GET',
+        success: function (data) {
+            let table = document.getElementById('tableQuiz');
+            for (let quiz = 0; quiz < data.length; quiz++){
+                let question = data[quiz].question.replace(/ /g,"").replace("?","").replace(",","");
+                let answers = data[quiz].correctAnswers.concat(data[quiz].incorrectAnswers);
+                let colspan = answers.length;
+                let trQuestion = document.createElement('TR');
+                let tdQuestion = '<td colspan="' + colspan + '"' +
+                    ' data-toggle="collapse" href="#'+question+'" aria-expanded="false" aria-controls="'+question+'">' +
+                    '' + data[quiz].question + '</td>';
+                trQuestion.innerHTML = tdQuestion;
+                let trAnswers = document.createElement('TR');
+                let answersTd='<td style="display: block;">' +
+                    '<div ' +
+                    'class="quiz collapse" ' +
+                    'id="'+question+'" ' +
+                    'data-toggle="buttons">' +
+                    '<p hidden>'+data[quiz].question+'</p>';
+                for (let 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" value="'+answers[i]+'">' + answers[i] + '' +
+                        '</label>' +
+                        '</div>';
+                }
+                tdQuestion ="";
+                answers=[];
+                let deletebutton = '<button class="btn btn-danger" id="delete'+question+'">löschen</button>';
+                trAnswers.innerHTML = answersTd+deletebutton+'</div></td>';
+                table.appendChild(trQuestion);
+                table.appendChild(trAnswers);
+                $("#delete"+question).click({quizId: data[quiz].question}, deleteQuiz);
+            }
+        },
+        error: function (a) {
+            alert('Fehler ' + a);
+        }
+    });
+
+    function deleteQuiz(event){
+        $.ajax({
+            url: '../rest/assessments/quiz/' + encodeURIComponent(event.data.quizId),
+            type: 'POST',
+            success: function () {
+                document.location.href="Quiz-docent.jsp?token="+getUserTokenFromUrl()+"&projectId="+$('#projectId').html().trim();
+            },
+            error: function(a){
+                alert(a)
+            }
+        });
+    }
+});
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/Quiz.js b/gemeinsamforschen/src/main/webapp/assets/js/Quiz.js
index cc9a73e5ddf695081e45c3dd1261410b9d590fc2..fcb6ea709458eddd262301776d4e3fde08ae4a84 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/Quiz.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/Quiz.js
@@ -1,15 +1,15 @@
 $(document).ready(function(){
-    var projectId = document.getElementById('projectId').innerText.trim();
+    let projectId = document.getElementById('projectId').innerText.trim();
     $.ajax({
         url: '../rest/assessments/project/'+projectId+'/quiz/',
         projectId: projectId,
         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');
+            let table = document.getElementById('myQuizzes');
+            for (let quiz = 0; quiz < data.length; quiz++){
+                let answers = data[quiz].correctAnswers.concat(data[quiz].incorrectAnswers);
+                let colspan = answers.length;
+                let trQuestion = document.createElement('TR');
                 trQuestion.className="pageChanger";
                 trQuestion.innerHTML = '<td colspan="' + colspan + '"><h3>' +
                     '<a href="viewQuiz.jsp' +
@@ -20,7 +20,7 @@ $(document).ready(function(){
                 table.appendChild(trQuestion);
             }
         },
-        error: function (a, b, c) {
+        error: function (a) {
             alert('Fehler ' + a);
         }
     });
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/assessmentCalculator.js b/gemeinsamforschen/src/main/webapp/assets/js/assessmentCalculator.js
index 743de6b60c639819d73547e300b8d46bd6b3b564..7e1ecd5f3739c8745360530f2ef5ab5e60823c0a 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/assessmentCalculator.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/assessmentCalculator.js
@@ -18,7 +18,7 @@ $(document).ready(function () {     //todo: paths should be relative
             {
                 "studentIdentifier": {
                     "projectId": "projekt",
-                    "studentId": "Keiler"
+                    "studentId": "student"
                 },
                 "quizAnswer": [
                     1,
@@ -28,38 +28,36 @@ $(document).ready(function () {     //todo: paths should be relative
                     1,
                     0
                 ],
-                "feedback": "toller dude",
-                "workRating": [
-                    5,
-                    4,
-                    3,
-                    2,
-                    1,
-                    0
-                ]
+                "feedback": "ein toller typ",
+                "workRating": {
+                    "responsibility": 1,
+                    "partOfWork": 1,
+                    "autonomous": 1,
+                    "communication": 1,
+                    "cooperation": 1
+                }
             },
             {
                 "studentIdentifier": {
                     "projectId": "projekt",
-                    "studentId": "Glucke"
+                    "studentId": "student"
                 },
                 "quizAnswer": [
                     1,
-                    1,
+                    0,
                     1,
                     1,
                     1,
                     0
                 ],
-                "feedback": "super",
-                "workRating": [
-                    1,
-                    1,
-                    1,
-                    2,
-                    3,
-                    2
-                ]
+                "feedback": "feini feini",
+                "workRating": {
+                    "responsibility": 3,
+                    "partOfWork": 4,
+                    "autonomous": 4,
+                    "communication": 3,
+                    "cooperation": 5
+                }
             }
         ];
 
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js
index 6af08b9e84c647d9fcf13f9d0bb4e988158a6346..a56e8a766a20f895dd8674056e796e5613bbc5b0 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js
@@ -9,37 +9,39 @@ $(document).ready(function() {
 });
 
 function assessPeer(){
+    let peerStudents =$('.peerStudent');
     ///////initialize variables///////
-    var peerRating = {
-        "fromPeer": $('#user').html().trim(),
-        "toPeer": "",
-        "workRating": []
-    };
-    var dataP = [];
-    var workRating = [];
-    var rateThis = ['responsibility','partOfWork','cooperation','communication','autonomous'];
+    let dataP = new Array(peerStudents.size());
+    let rateThis = ['responsibility','partOfWork','cooperation','communication','autonomous'];
 
     ///////read values from html///////
-    var peerStudents =$('.peerStudent');
-    for (var peer=0; peer< peerStudents.length; peer++){
-        for (var rate=0; rate<rateThis.length; rate++ ){
-            workRating.push($('input[name='+rateThis[rate]+peerStudents[peer].id+']:checked').val());
+    for (let peer=0; peer< peerStudents.length; peer++){
+        let workRating = {};
+        let peerRating = {
+            "fromPeer": $('#user').html().trim(),
+            "toPeer": peerStudents[peer].id,
+            "workRating": {}
+        };
+        for (let rate=0; rate<rateThis.length; rate++ ){
+            let category = rateThis[rate];
+            workRating[category]=($('input[name='+rateThis[rate]+peerStudents[peer].id+']:checked').val());
         }
-        for (var i=0; i<workRating.length; i++){
-            if(workRating[i]===undefined){
+
+        peerRating.workRating = workRating;
+        //////write values in Post-Variable
+        dataP[peer]=peerRating;
+    }
+    for (let peer=0; peer< dataP.length; peer++){
+        for (let workRating=0; workRating<rateThis.length;workRating++){
+            if(dataP[peer].workRating[rateThis[workRating]]===undefined){
                 $('#notAllRated').show();
                 return;
             }
         }
-        peerRating.toPeer = peerStudents[peer].id;
-        peerRating.workRating = workRating;
-        workRating=[];
-        //////write values in Post-Variable
-        dataP.push(peerRating);
     }
-    dataP.push(peerRating);
+    let projectId=$('#projectId').html().trim();
     $.ajax({
-        url:'../rest/assessments/peer/project/1/group/1',
+        url:'../rest/assessments/peerRating/project/'+projectId,
         type: 'POST',
         headers: {
             "Content-Type": "application/json",
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/overview-docent.js b/gemeinsamforschen/src/main/webapp/assets/js/overview-docent.js
index 0bd803d816901c10c4bb47c9ecc6ecf281f7d543..77cd2693f2740cc2cb0a36e504271eecae90310e 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/overview-docent.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/overview-docent.js
@@ -1,9 +1,9 @@
 $(document).ready(function(){
     $('#project1Link').on('click', function(){
-        location.href="project-docent.jsp?token="+getUserTokenFromUrl();
+        location.href="project-docent.jsp?token="+getUserTokenFromUrl()+'&projectId='+'gemeinsamForschen';
     });
     $('#project2Link').on('click', function(){
-        location.href="project-docent.jsp?token="+getUserTokenFromUrl();
+        location.href="project-docent.jsp?token="+getUserTokenFromUrl()+'&projectId='+'Kaleo';
     });
     $('#createProject').on('click', function(){
         location.href="createProject.jsp?token="+getUserTokenFromUrl();
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/rateContribution.js b/gemeinsamforschen/src/main/webapp/assets/js/rateContribution.js
index 8d6c7c7b53d0fd8323dd23e2abea8d79c298954c..b7e3c6b5fcaafd34e8c7c7066027d6d1a7d6069c 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/rateContribution.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/rateContribution.js
@@ -1,17 +1,17 @@
 $(document).ready(function () {
-    var ejournalFeedback = new InscrybMDE({
+    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({
+    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({
+    new InscrybMDE({
         element: document.getElementById("dossierFeedback"),
         spellChecker: false,
         //toolbar: ["bold", "italic", "heading", "|", "quote", "table", "code", "|" , "side-by-side", "fullscreen"],
@@ -19,10 +19,41 @@ $(document).ready(function () {
     });
 
 
-    editor.style = "min-height: 100px";
+    //editor.style = "min-height: 100px";
 
 
-    $('#submit').on('click',function(){
-        document.location="project-student.jsp?token="+getUserTokenFromUrl();
+    $('#submit').on('click', function () {
+        safeContributionRating();
     });
-});
\ No newline at end of file
+});
+
+function safeContributionRating() {
+    let contributions = $('.contributionRating');
+    ///////initialize variables///////
+    let dataP = {};
+
+    ///////read values from html///////
+    for (let contribution = 0; contribution < contributions.length; contribution++) {
+        let checkbox = $("#" + contributions[contribution].id + " input:checked");
+        dataP[checkbox.attr('name')] = checkbox.val();
+    }
+    let projectId = $('#projectId').html().trim();
+    let fromPeer = $('#user').html().trim();
+    let toStudent = $('.peerStudent').attr('id');
+    $.ajax({
+        url: '../rest/assessments/contributionRating/projectId/' + projectId +
+        '/studentId/' + toStudent + '/fromPeer/' + fromPeer,
+        type: 'POST',
+        headers: {
+            "Content-Type": "application/json",
+            "Cache-Control": "no-cache"
+        },
+        data: JSON.stringify(dataP),
+        success: function () {
+            location.href = "project-student.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim();
+        },
+        error: function (a, b, c) {
+
+        }
+    });
+}
\ 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 1a8afcfa36d89450466a323728f57dc7f0ffb973..7c293a1a125ccc891df523fd6a1ea415968a28c4 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/takeQuiz.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/takeQuiz.js
@@ -1,5 +1,5 @@
 $(document).ready(function () {
-    var loading = $('#loadbar').hide();
+    let loading = $('#loadbar').hide();
     $(document)
         .ajaxStart(function () {
             loading.show();
@@ -8,7 +8,7 @@ $(document).ready(function () {
     });
 
     $("label.btn").on('click',function () {
-        var choice = $(this).find('input:radio').val();
+        let choice = $(this).find('input:radio').val();
         $('#loadbar').show();
         $('#quiz').fadeOut();
         setTimeout(function(){
@@ -21,39 +21,37 @@ $(document).ready(function () {
 
     $ans = 3;
 
-    $.fn.checking = function(ck) {
-        if (ck != $ans)
-            return 'INCORRECT';
-        else
-            return 'CORRECT';
-    };
-
-    var projectId = document.getElementById('projectId').innerText.trim();
+    let projectId = document.getElementById('projectId').innerText.trim();
     $.ajax({
         url: '../rest/assessments/project/'+projectId+'/quiz/',
         type: 'GET',
         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 tdQuestion = '<td colspan="' + colspan + '"' +
-                    'data-toggle="collapse" href="#'+question+'" aria-expanded="false" aria-controls="'+question+'">' +
+            let table = document.getElementById('tableQuiz');
+            for (let quiz = 0; quiz < data.length; quiz++){
+                let question = data[quiz].question.replace(/ /g,"").replace("?","").replace(",","");
+                let answers = data[quiz].correctAnswers.concat(data[quiz].incorrectAnswers);
+                let colspan = answers.length;
+                let trQuestion = document.createElement('TR');
+                let 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');
+                let trAnswers = document.createElement('TR');
                 answers = shuffle(answers);
-                var answersTd='<td style="display: block;"><div class="quiz collapse" id="'+question+'" data-toggle="buttons">';
-                for (var i = 0; i < answers.length; i++) {
+                let answersTd='<td style="display: block;">' +
+                    '<div ' +
+                    'class="quiz collapse" ' +
+                    'id="'+question+'" ' +
+                    'data-toggle="buttons">' +
+                    '<p hidden>'+data[quiz].question+'</p>';
+                for (let 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] + '' +
+                        '<input type="checkbox" value="'+answers[i]+'">' + answers[i] + '' +
                         '</label>' +
                         '</div>';
                 }
@@ -64,17 +62,17 @@ $(document).ready(function () {
                 table.appendChild(trAnswers);
             }
         },
-        error: function (a, b, c) {
+        error: function (a) {
             alert('Fehler ' + a);
         }
     });
     $("#submitQuiz").on("click", function () {
-        document.location="rateContribution.jsp?token="+getUserTokenFromUrl()+'&projectId='+$('#projectId').html().trim();
+        safeQuizAnswers();
     });
 });
 
 function shuffle(a) {
-    var j, x, i;
+    let j, x, i;
     for (i = a.length - 1; i > 0; i--) {
         j = Math.floor(Math.random() * (i + 1));
         x = a[i];
@@ -82,4 +80,40 @@ function shuffle(a) {
         a[j] = x;
     }
     return a;
+}
+
+function safeQuizAnswers(){
+    let quizzes = $('.quiz');
+    ///////initialize variables///////
+    let dataP = {};
+
+    ///////read values from html///////
+    for (let quiz=0; quiz<quizzes.length; quiz++){
+        let answerList = [];
+        if (quizzes[quiz].id !== ""){
+            let checkedBoxes = $("#"+quizzes[quiz].id+" input:checked");
+            checkedBoxes.each(function(){
+                answerList.push($(this).val());
+            });
+            let question = $("#"+quizzes[quiz].id+" p").html().trim();
+            dataP[question]= answerList;
+        }
+    }
+    let projectId=$('#projectId').html().trim();
+    let studentId=$('#user').html().trim();
+    $.ajax({
+        url:'../rest/assessments/quizAnswer/projectId/'+projectId+'/studentId/'+studentId,
+        type: 'POST',
+        headers: {
+            "Content-Type": "application/json",
+            "Cache-Control": "no-cache"
+        },
+        data: JSON.stringify(dataP),
+        success: function(){
+            location.href="rateContribution.jsp?token="+getUserTokenFromUrl()+"&projectId="+$('#projectId').html().trim();
+        },
+        error: function(a,b,c){
+
+        }
+    });
 }
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/Quiz-docent.jsp b/gemeinsamforschen/src/main/webapp/pages/Quiz-docent.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..64db788d2e1fb91279b7fa9f339d33d0b232c26e
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/pages/Quiz-docent.jsp
@@ -0,0 +1,28 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
+
+<html>
+<head>
+    <omniDependencies:omniDependencies/>
+    <script src="../assets/js/Quiz-docent.js"></script>
+</head>
+
+<body>
+<div id="wrapper">
+    <menu:menu/>
+    <div class="page-content-wrapper">
+        <headLine:headLine/>
+        <table class="table-striped">
+            <tbody id="tableQuiz">
+
+            </tbody>
+        </table>
+        <button class="btn btn-primary" id="newQuiz">neues Quiz</button>
+
+    </div>
+</div>
+
+</body>
+</html>
diff --git a/gemeinsamforschen/src/main/webapp/pages/overview-docent.html.orig b/gemeinsamforschen/src/main/webapp/pages/overview-docent.html.orig
deleted file mode 100644
index 621176b5de895049ff300d1782269135a296493e..0000000000000000000000000000000000000000
--- a/gemeinsamforschen/src/main/webapp/pages/overview-docent.html.orig
+++ /dev/null
@@ -1,91 +0,0 @@
-<!DOCTYPE html>
-<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>
-</head>
-
-<body>
-<h1>Übersicht für Dozent1</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>
-    <table id="projects">  <!-- getElementById('projects').append um neue Projekte anzufügen -->
-        <tr style="cursor:pointer" role="button">
-            <td>
-<<<<<<< HEAD
-                <a id="project1Link">
-=======
-                <a href="project-docent.jsp">
->>>>>>> 9bbae0ff75b2597ab35479a24d47c12e7a4cc0fd
-                    <h1>dummy Projekt1</h1>
-                </a>
-            </td>
-        </tr>
-        <tr>
-            <td>
-                <div style="width:100px;"></div>
-                <div style="width:741px;">
-                    <div class="panel panel-default">
-                        <div class="panel-heading">
-                            <h3 class="panel-title">Newsfeed </h3>
-                        </div>
-                        <div class="panel-body">
-                            <ul class="list-group">
-                                <li class="list-group-item">
-                                    <span>erste Abgabe vom Dozenten zu dd.mm.yyyy gefordert</span>
-                                </li>
-                                <li class="list-group-item"><span>Beitrag von Student1 wurde hochgeladen</span></li>
-                                <li class="list-group-item"><span>Gruppe "gemeinsam forschen" rockt das Haus</span></li>
-                            </ul>
-                        </div>
-                    </div>
-                </div>
-            </td>
-        </tr>
-        <tr>
-            <td></td>
-        </tr>
-        <tr style="cursor:pointer" role="button">
-            <td>
-                <a href="project-docent.jsp">
-                    <h1>dummy Projekt2</h1>
-                </a>
-            </td>
-        </tr>
-        <tr>
-            <td>
-                <div style="width:100px;"></div>
-                <div style="width:741px;">
-                    <div class="panel panel-default">
-                        <div class="panel-heading">
-                            <h3 class="panel-title">Newsfeed </h3>
-                        </div>
-                        <div class="panel-body">
-                            <ul class="list-group">
-                                <li class="list-group-item">
-                                    <span>erste Abgabe vom Dozenten zu dd.mm.yyyy gefordert</span>
-                                </li>
-                                <li class="list-group-item"><span>Beitrag von Student1 wurde hochgeladen</span></li>
-                                <li class="list-group-item"><span>Gruppe "gemeinsam forschen" rockt das Haus</span></li>
-                            </ul>
-                        </div>
-                    </div>
-                </div>
-            </td>
-        </tr>
-    </table>
-</div>
-<button class="btn btn-default" type="button" style="margin-left:250px;">Projekt erstellen</button>
-<script src="../assets/js/jquery.min.js"></script>
-<script src="../assets/bootstrap/js/bootstrap.min.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 66419d3734d4082bce9a7053868133e011c76ed7..736db5bd3aa5a1ca53a86b1694994e78ef880631 100644
--- a/gemeinsamforschen/src/main/webapp/pages/overview-docent.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/overview-docent.jsp
@@ -1,4 +1,4 @@
-<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
@@ -85,8 +85,6 @@
         </div>
         <button class="btn btn-default" type="button" id="createProject" style="margin-left:250px;">Projekt erstellen</button>
     </div>
-</div>
-
 </body>
 
 </html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/overview-student.html.orig b/gemeinsamforschen/src/main/webapp/pages/overview-student.html.orig
deleted file mode 100644
index db7445c800029d1c311a2a61f6528428a110ae85..0000000000000000000000000000000000000000
--- a/gemeinsamforschen/src/main/webapp/pages/overview-student.html.orig
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE html>
-<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/overview-student.js"></script>
-
-</head>
-
-<body>
-<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>
-    <table id="projects">  <!-- getElementById('projects').append um neue Projekte anzufügen -->
-        <tr style="cursor:pointer" role="button">
-            <td>
-<<<<<<< HEAD
-                <a id="project1Link">
-=======
-                <a href="project-docent.jsp">
->>>>>>> 9bbae0ff75b2597ab35479a24d47c12e7a4cc0fd
-                    <h1>dummy Projekt1</h1>
-                </a>
-            </td>
-        </tr>
-        <tr>
-            <td>
-                <div style="width:100px;"></div>
-                <div style="width:741px;">
-                    <div class="panel panel-default">
-                        <div class="panel-heading">
-                            <h3 class="panel-title">Newsfeed </h3>
-                        </div>
-                        <div class="panel-body">
-                            <ul class="list-group">
-                                <li class="list-group-item">
-                                    <span>erste Abgabe vom Dozenten zu dd.mm.yyyy gefordert</span>
-                                </li>
-                                <li class="list-group-item"><span>Beitrag von Student1 wurde hochgeladen</span></li>
-                                <li class="list-group-item"><span>Gruppe "gemeinsam forschen" rockt das Haus</span></li>
-                            </ul>
-                        </div>
-                    </div>
-                </div>
-            </td>
-        </tr>
-        <tr>
-            <td></td>
-        </tr>
-        <tr style="cursor:pointer" role="button">
-            <td>
-                <a href="project-docent.jsp">
-                    <h1>dummy Projekt2</h1>
-                </a>
-            </td>
-        </tr>
-        <tr>
-            <td>
-                <div style="width:100px;"></div>
-                <div style="width:741px;">
-                    <div class="panel panel-default">
-                        <div class="panel-heading">
-                            <h3 class="panel-title">Newsfeed </h3>
-                        </div>
-                        <div class="panel-body">
-                            <ul class="list-group">
-                                <li class="list-group-item">
-                                    <span>erste Abgabe vom Dozenten zu dd.mm.yyyy gefordert</span>
-                                </li>
-                                <li class="list-group-item"><span>Beitrag von Student1 wurde hochgeladen</span></li>
-                                <li class="list-group-item"><span>Gruppe "gemeinsam forschen" rockt das Haus</span></li>
-                            </ul>
-                        </div>
-                    </div>
-                </div>
-            </td>
-        </tr>
-    </table>
-</div>
-    </div><button class="btn btn-default" type="button" style="margin-left:250px;">Projekt beitreten</button>
-    <script src="../assets/js/jquery.min.js"></script>
-    <script src="../assets/bootstrap/js/bootstrap.min.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 1ec616d09fc96d633e7e712d19b6b5595950d3c4..9dbf5687f892d59a4d44927e6bce2832aed4d305 100644
--- a/gemeinsamforschen/src/main/webapp/pages/project-docent.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/project-docent.jsp
@@ -1,5 +1,5 @@
-<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
-<%@ taglib prefix = "communication" uri = "/communication/chatWindow.tld"%>
+<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%@ taglib prefix="communication" uri="/communication/chatWindow.tld" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
@@ -16,11 +16,11 @@
 <div id="wrapper">
     <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>
+        <headLine:headLine/>
+        <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">
@@ -28,60 +28,60 @@
                         <div class="table-responsive" style="width:294px;">
                             <table class="table">
                                 <thead>
-                                    <tr>
-                                        <th>Gruppe1 </th>
-                                        <th>Beiträge </th>
-                                    </tr>
+                                <tr>
+                                    <th>Gruppe1</th>
+                                    <th>Beiträge</th>
+                                </tr>
                                 </thead>
                                 <tbody>
-                                    <tr>
-                                        <td>student1 </td>
-                                        <td>Interfaces </td>
-                                    </tr>
-                                    <tr>
-                                        <td>student2 </td>
-                                        <td>Design </td>
-                                    </tr>
+                                <tr>
+                                    <td>student1</td>
+                                    <td>Interfaces</td>
+                                </tr>
+                                <tr>
+                                    <td>student2</td>
+                                    <td>Design</td>
+                                </tr>
                                 </tbody>
                             </table>
                         </div>
                         <div class="table-responsive" style="width:294px;">
                             <table class="table">
                                 <thead>
-                                    <tr>
-                                        <th>Gruppe2 </th>
-                                        <th>Beiträge </th>
-                                    </tr>
+                                <tr>
+                                    <th>Gruppe2</th>
+                                    <th>Beiträge</th>
+                                </tr>
                                 </thead>
                                 <tbody>
-                                    <tr>
-                                        <td>student3 </td>
-                                        <td>Interfaces </td>
-                                    </tr>
-                                    <tr>
-                                        <td>student4 </td>
-                                        <td>Design </td>
-                                    </tr>
+                                <tr>
+                                    <td>student3</td>
+                                    <td>Interfaces</td>
+                                </tr>
+                                <tr>
+                                    <td>student4</td>
+                                    <td>Design</td>
+                                </tr>
                                 </tbody>
                             </table>
                         </div>
                         <div class="table-responsive" style="width:294px;">
                             <table class="table">
                                 <thead>
-                                    <tr>
-                                        <th>Gruppe3 </th>
-                                        <th>Beiträge </th>
-                                    </tr>
+                                <tr>
+                                    <th>Gruppe3</th>
+                                    <th>Beiträge</th>
+                                </tr>
                                 </thead>
                                 <tbody>
-                                    <tr>
-                                        <td>student5 </td>
-                                        <td>Interfaces </td>
-                                    </tr>
-                                    <tr>
-                                        <td>student6 </td>
-                                        <td>Design </td>
-                                    </tr>
+                                <tr>
+                                    <td>student5</td>
+                                    <td>Interfaces</td>
+                                </tr>
+                                <tr>
+                                    <td>student6</td>
+                                    <td>Design</td>
+                                </tr>
                                 </tbody>
                             </table>
                         </div>
@@ -98,12 +98,18 @@
                                             <div class="media-left"><a></a></div>
                                             <div class="media-body">
                                                 <div class="media" style="overflow:visible;">
-                                                    <div class="media-left"><a><img src="../assets/img/1.jpg" class="img-rounded" style="width: 25px; height:25px;"></a></div>
+                                                    <div class="media-left"><a><img src="../assets/img/1.jpg"
+                                                                                    class="img-rounded"
+                                                                                    style="width: 25px; height:25px;"></a>
+                                                    </div>
                                                     <div class="media-body" style="overflow:visible;">
                                                         <div class="row">
                                                             <div class="col-md-12">
-                                                                <p><a href="#">Sara Doe:</a> This guy has been going 100+ MPH on side streets. <br>
-<small class="text-muted">August 6, 2016 @ 10:35am </small></p>
+                                                                <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>
@@ -116,12 +122,18 @@
                                             <div class="media-left"><a></a></div>
                                             <div class="media-body">
                                                 <div class="media" style="overflow:visible;">
-                                                    <div class="media-left"><a><img src="../assets/img/1.jpg" class="img-rounded" style="width: 25px; height:25px;"></a></div>
+                                                    <div class="media-left"><a><img src="../assets/img/1.jpg"
+                                                                                    class="img-rounded"
+                                                                                    style="width: 25px; height:25px;"></a>
+                                                    </div>
                                                     <div class="media-body" style="overflow:visible;">
                                                         <div class="row">
                                                             <div class="col-md-12">
-                                                                <p><a href="#">Brennan Prill:</a> This guy has been going 100+ MPH on side streets. <br>
-<small class="text-muted">August 6, 2016 @ 10:35am </small></p>
+                                                                <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>
@@ -129,7 +141,11 @@
                                             </div>
                                         </div>
                                     </li>
-                                </ul><button class="btn btn-default" type="button" style="margin-left:601px;margin-top:-9px;">Add Comment</button></div>
+                                </ul>
+                                <button class="btn btn-default" type="button"
+                                        style="margin-left:601px;margin-top:-9px;">Add Comment
+                                </button>
+                            </div>
                         </div>
                     </div>
                 </div>
@@ -137,7 +153,7 @@
         </div>
     </div>
 </div>
-    <communication:chatWindow orientation="right"></communication:chatWindow>
+<communication:chatWindow orientation="right" />
 </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
deleted file mode 100644
index 79ff3d3adb039143a4b44e810eddd80c2d1906c6..0000000000000000000000000000000000000000
--- a/gemeinsamforschen/src/main/webapp/pages/project-student.jsp.orig
+++ /dev/null
@@ -1,221 +0,0 @@
-<<<<<<< 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
index e6898e77c5a1a3b2ef51c8c25c0e691dc0804773..50431a5333efaf8cfbe617b8c561a1828a63aac2 100644
--- a/gemeinsamforschen/src/main/webapp/pages/rateContribution.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/rateContribution.jsp
@@ -33,44 +33,51 @@
                             </tr>
                             <tr>
                                 <td>
-                                    Lernzieltagebuch:
-                                    Lernen ist wie Rudern gegen den Strom. Hört man damit auf, treibt man zurück.
-                                    <textarea id="ejournalFeedback">
+                                    <div class="contributionRating" id="eJournal">
+                                        Lernzieltagebuch:
+                                        Lernen ist wie Rudern gegen den Strom. Hört man damit auf, treibt man zurück.
+                                        <textarea id="ejournalFeedback">
 				                        meine Bewertung
 			                        </textarea>
-                                    <label><input type="radio" name="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>
+                                        <label><input type="radio" name="eJournal" value="5">Perfekt</label>
+                                        <label><input type="radio" name="eJournal" value="4">Makellos</label>
+                                        <label><input type="radio" name="eJournal" value="3">regulär</label>
+                                        <label><input type="radio" name="eJournal" value="2">Makelhaft</label>
+                                        <label><input type="radio" name="eJournal" value="1">Lädiert</label>
+                                    </div>
                                 </td>
                             </tr>
                             <tr>
                                 <td>
-                                    Dossier:
-                                    Die meisten Menschen sind bereit zu lernen, aber nur die wenigsten, sich belehren zu
-                                    lassen.
-                                    <textarea id="dossierFeedback">
+                                    <div class="contributionRating" id="Dossier">
+                                        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>
+                                        <label><input type="radio" name="dossier" value="5">Perfekt</label>
+                                        <label><input type="radio" name="dossier" value="4">Makellos</label>
+                                        <label><input type="radio" name="dossier" value="3">regulär</label>
+                                        <label><input type="radio" name="dossier" value="2">Makelhaft</label>
+                                        <label><input type="radio" name="dossier" value="1">Lädiert</label>
+                                    </div>
                                 </td>
                             </tr>
                             <tr>
                                 <td>
-                                    Präsentation: <a href="#"><i class="fa fa-paperclip"></i></a>
-                                    <textarea id="presentationFeedback">
+                                    <div class="contributionRating" id="research">
+                                        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>
+                                        <label><input type="radio" name="research" value="5">Perfekt</label>
+                                        <label><input type="radio" name="research" value="4">Makellos</label>
+                                        <label><input type="radio" name="research" value="3">regulär</label>
+                                        <label><input type="radio" name="research" value="2">Makelhaft</label>
+                                        <label><input type="radio" name="research" value="1">Lädiert</label>
+                                    </div>
                                 </td>
                             </tr>
                         </table>
diff --git a/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp b/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp
index 4ea6f940f86c6e79ca065d8c95b166af70965480..0eb33c1eaf3afbddc608bf14f0ce7c50692e380d 100644
--- a/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp
@@ -1,4 +1,4 @@
-<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
diff --git a/gemeinsamforschen/src/scripts/dbschema/fltrail.sql b/gemeinsamforschen/src/scripts/dbschema/fltrail.sql
index 9fa4f5d937c07ea125ab90d2ce2e64a48dccca3e..0d5dfe1643c376e6ac1cdfa6f56451bbc9809633 100644
--- a/gemeinsamforschen/src/scripts/dbschema/fltrail.sql
+++ b/gemeinsamforschen/src/scripts/dbschema/fltrail.sql
@@ -210,4 +210,39 @@ ALTER TABLE `projectuser`
 ALTER TABLE `projectuser`
   ADD UNIQUE (`projectId`, `userId`);
 ALTER TABLE `projects`
-  ADD UNIQUE (`id`);
\ No newline at end of file
+  ADD UNIQUE (`id`);
+
+CREATE TABLE if not exists answeredquiz (
+  `projectId`    varchar(400) NOT NULL,
+  `studentId`   varchar(400) NOT NULL,
+  `question`   varchar(400) NOT NULL,
+  `correct`   tinyint(4) NOT NULL
+
+)
+  ENGINE = InnoDB
+  DEFAULT CHARSET = utf8;
+
+CREATE TABLE if not exists workrating (
+  `projectId`    varchar(400) NOT NULL,
+  `studentId`   varchar(400) NOT NULL,
+  `fromPeer`   varchar(400) NOT NULL,
+  `responsibility`   int(11) NOT NULL,
+  `partOfWork`   int(11) NOT NULL,
+  `cooperation`   int(11) NOT NULL,
+  `communication`   int(11) NOT NULL,
+  `autonomous`   int(11) NOT NULL
+
+)
+  ENGINE = InnoDB
+  DEFAULT CHARSET = utf8;
+
+CREATE TABLE if not exists contributionrating (
+  `projectId`    varchar(400) NOT NULL,
+  `studentId`   varchar(400) NOT NULL,
+  `fromPeer`   varchar(400) NOT NULL,
+  `dossier`   int(11) NOT NULL,
+  `eJournal`   int(11) NOT NULL,
+  `research`   int(11) NOT NULL
+)
+  ENGINE = InnoDB
+  DEFAULT CHARSET = utf8;
\ No newline at end of file
diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ActivityFlowTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ActivityFlowTest.java
index 65248217c3fa9ed816fe96ffe1e6ca88ebed0ddf..1bd1d7a2e0f059759079914b2ab766f590df6bef 100644
--- a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ActivityFlowTest.java
+++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ActivityFlowTest.java
@@ -171,10 +171,10 @@ public class ActivityFlowTest {
 
         // create quiz TODO@Axel this should be a quiz dependend on the student for easier initialization and
         // de-coupling
-        StudentAndQuiz studentAndQuiz = factory.manufacturePojo(StudentAndQuiz.class);
-        QuizAnswer quizAnswer = factory.manufacturePojo(QuizAnswer.class);
-        iPeerAssessment.createQuiz(studentAndQuiz);
-        iPeerAssessment.answerQuiz(studentAndQuiz, quizAnswer);
+        //StudentAndQuiz studentAndQuiz = factory.manufacturePojo(StudentAndQuiz.class);
+        //QuizAnswer quizAnswer = factory.manufacturePojo(QuizAnswer.class);
+        //iPeerAssessment.createQuiz(studentAndQuiz);
+        //iPeerAssessment.answerQuiz(studentAndQuiz, quizAnswer);
 
         // finales Portfolio zusammenstellen
         java.util.List<Journal> journalEntries = new ArrayList<Journal>();
diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java
index 564d54cca5d699c5c93b3e56d64ee0e91bd8057a..9426d94804ed8b6f42600286e659fae1276d045a 100644
--- a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java
+++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java
@@ -24,9 +24,9 @@ public class TestAddAssessment {
         workRating[2] = 4;      //Hilfsbereitschaft oder so
 
         StudentIdentifier student = new StudentIdentifier("Spaß", "Haralf");
-        Performance performance = new Performance(student, quizAnswers,"so ein toller Typ", workRating);
-        Assessment assessment = new Assessment(student, performance);
-        iPeerAssessment.addAssessmentDataToDB(assessment);
+        //Performance performance = new Performance(student, quizAnswers,"so ein toller Typ", workRating);
+        //Assessment assessment = new Assessment(student, performance);
+        //iPeerAssessment.addAssessmentDataToDB(assessment);
     }
 
 }
diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/peerassessment/HashMapTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/peerassessment/HashMapTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..1252c6ae0db6e157e1808d3a697f212fda240bfc
--- /dev/null
+++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/peerassessment/HashMapTest.java
@@ -0,0 +1,224 @@
+package unipotsdam.gf.modules.peerassessment;
+
+import org.junit.Test;
+import unipotsdam.gf.modules.assessment.controller.model.Performance;
+import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
+
+import java.util.*;
+
+public class HashMapTest {
+
+    private Map<String, Double> meanOfWorkRatings(ArrayList<Map<String, Double>> workRatings) {
+        HashMap<String, Double> mean = new HashMap();
+        double size = (double) workRatings.size();
+        Iterator it = workRatings.get(0).entrySet().iterator();
+        while (it.hasNext()) {
+            Map.Entry pair = (Map.Entry) it.next();
+            mean.put((String) pair.getKey(), 0.0);
+        }
+        for (int i = 0; i < workRatings.size(); i++) {
+            it = workRatings.get(i).entrySet().iterator();
+            while (it.hasNext()) {
+                Map.Entry pair = (Map.Entry) it.next();
+                mean.put((String) pair.getKey(), (Double) pair.getValue() / size + mean.get(pair.getKey()));
+            }
+        }
+        return mean;
+    }
+
+    Comparator<Map<String, Double>> byMean = (o1, o2) -> {
+        Double sumOfO1 = 0.;
+        Double sumOfO2 = 0.;
+        for (String key : o1.keySet()) {
+            sumOfO1 += o1.get(key);
+            sumOfO2 += o2.get(key);
+        }
+        if (sumOfO1.equals(sumOfO2)) {
+            return 0;
+        } else {
+            return sumOfO1 < sumOfO2 ? -1 : 1;
+        }
+    };
+
+    //fixme: use the function from the class .... obviously
+    public ArrayList<Map<String, Double>> cheatChecker(ArrayList<Map<String, Double>> workRatings, String method) {
+        ArrayList<Map<String, Double>> result = new ArrayList<>();
+        //todo: magicString sollte Enum sein um nutzbarer zu sein.
+        if (method.equals("median")) {
+            workRatings.sort(byMean);
+            result.add(workRatings.get(workRatings.size() / 2)); //in favor of student
+        }
+        if (method.equals("variance")) {
+            ArrayList<Map<String, Double>> oneExcludedMeans = new ArrayList<>();
+            if (workRatings.size() > 1) {
+                for (Map rating : workRatings) {
+                    ArrayList<Map<String, Double>> possiblyCheating = new ArrayList<>(workRatings);
+                    possiblyCheating.remove(rating);
+                    oneExcludedMeans.add(meanOfWorkRatings(possiblyCheating));
+                }
+            } else {
+                oneExcludedMeans.add(meanOfWorkRatings(workRatings));
+            }
+            Map<String, Double> meanWorkRating = new HashMap<>(meanOfWorkRatings(oneExcludedMeans));
+            ArrayList<Map<String, Double>> elementwiseDeviation = new ArrayList<>();
+            for (Map<String, Double> rating: oneExcludedMeans){
+                HashMap<String, Double> shuttle = new HashMap<>();
+                for (String key: rating.keySet()){
+                    Double value = (rating.get(key)-meanWorkRating.get(key))*(rating.get(key)-meanWorkRating.get(key));
+                    shuttle.put(key, value);
+                }
+                elementwiseDeviation.add(shuttle);
+            }
+            Double deviationOld=0.;
+            Integer key=0;
+            for (Integer i=0; i<elementwiseDeviation.size(); i++){
+                Double deviationNew=0.;
+                for (Double devi: elementwiseDeviation.get(i).values()){
+                    deviationNew += devi;
+                }
+                if (deviationNew>deviationOld){
+                    deviationOld=deviationNew;
+                    key = i;
+                }
+            }
+            result.add(oneExcludedMeans.get(key)); //gets set of rates with smallest deviation in data
+        }
+        return result;
+    }
+
+    @Test
+    public void sortTest() {
+        Map work = new HashMap<String, Double>();
+        work.put("responsibility", 1.);
+        work.put("partOfWork", 1.);
+        work.put("cooperation", 1.);
+        work.put("communication", 1.);
+        work.put("autonomous", 1.);
+        Map work2 = new HashMap<String, Double>();
+        work2.put("responsibility", 3.);
+        work2.put("partOfWork", 4.);
+        work2.put("cooperation", 5.);
+        work2.put("communication", 3.);
+        work2.put("autonomous", 4.);
+        Map work3 = new HashMap<String, Double>();
+        work3.put("responsibility", 2.);
+        work3.put("partOfWork", 3.);
+        work3.put("cooperation", 5.);
+        work3.put("communication", 2.);
+        work3.put("autonomous", 1.);
+        Map work4 = new HashMap<String, Double>();
+        work4.put("responsibility", 5.);
+        work4.put("partOfWork", 5.);
+        work4.put("cooperation", 4.);
+        work4.put("communication", 4.);
+        work4.put("autonomous", 5.);
+        ArrayList<Map<String, Double>> workRatings = new ArrayList<>();
+        workRatings.add(work);
+        workRatings.add(work2);
+        workRatings.add(work3);
+        workRatings.add(work4);
+
+        //fixme: workRating in class. cheatchecker extends Hashmap<String, Double>!?
+        System.out.println(cheatChecker(workRatings, "median").toString());
+        System.out.println(cheatChecker(workRatings, "variance").toString());
+    }
+
+    @Test
+    public void meanMap() {
+        Map work = new HashMap<String, Double>();
+        work.put("responsibility", 1.);
+        work.put("partOfWork", 1.);
+        work.put("cooperation", 1.);
+        work.put("communication", 1.);
+        work.put("autonomous", 1.);
+        Map work2 = new HashMap<String, Double>();
+        work2.put("responsibility", 3.);
+        work2.put("partOfWork", 4.);
+        work2.put("cooperation", 5.);
+        work2.put("communication", 3.);
+        work2.put("autonomous", 4.);
+        ArrayList<Map<String, Integer>> workRatings = new ArrayList<>();
+        workRatings.add(work);
+        workRatings.add(work2);
+        workRatings.add(work2);
+
+        Map mean = new HashMap();
+        double size = (double) workRatings.size();
+        Iterator it = workRatings.get(0).entrySet().iterator();
+        while (it.hasNext()) {
+            Map.Entry pair = (Map.Entry) it.next();
+            mean.put(pair.getKey(), 0.0);
+        }
+        for (int i = 0; i < workRatings.size(); i++) {
+            it = workRatings.get(i).entrySet().iterator();
+            while (it.hasNext()) {
+                Map.Entry pair = (Map.Entry) it.next();
+                mean.put(pair.getKey(), (Double) mean.get(pair.getKey()) + (Double) pair.getValue() / size);
+            }
+        }
+        System.out.println(mean.toString());
+    }
+
+    @Test
+    public void printMap() {
+        Map workWork = new HashMap<String, Integer>();
+        workWork.put("horst", 2);
+        workWork.put("Stefan", 5);
+        Performance performance = new Performance();
+        performance.setWorkRating(workWork);
+        Iterator it = workWork.entrySet().iterator();
+        while (it.hasNext()) {
+            Map.Entry pair = (Map.Entry) it.next();
+            System.out.println(workWork.get(pair.getKey()));
+            System.out.println((double) 2 * (Integer) pair.getValue());
+            it.remove(); // avoids a ConcurrentModificationException
+        }
+    }
+
+    @Test
+    public void test1() {
+        ArrayList<Performance> result = new ArrayList<>();
+        StudentIdentifier student = new StudentIdentifier("projekt", "student");
+        List<Integer> quiz = new ArrayList<>();
+        quiz.add(1);
+        quiz.add(0);
+        quiz.add(1);
+        quiz.add(0);
+        quiz.add(1);
+        quiz.add(0);
+        quiz.add(1);
+        Map work = new HashMap<String, Double>();
+        work.put("responsibility", 1.);
+        work.put("partOfWork", 1.);
+        work.put("cooperation", 1.);
+        work.put("communication", 1.);
+        work.put("autonomous", 1.);
+        Map work2 = new HashMap<String, Double>();
+        work2.put("responsibility", 3.);
+        work2.put("partOfWork", 4.);
+        work2.put("cooperation", 5.);
+        work2.put("communication", 3.);
+        work2.put("autonomous", 4.);
+        Map contribution1 = new HashMap<String, Double>();
+        contribution1.put("Dossier", 4.);
+        contribution1.put("eJournal", 2.);
+        contribution1.put("research", 4.);
+        Map contribution2 = new HashMap<String, Double>();
+        contribution2.put("Dossier", 2.);
+        contribution2.put("eJournal", 3.);
+        contribution2.put("research", 4.);
+        Performance pf = new Performance();
+        pf.setContributionRating(contribution1);
+        pf.setQuizAnswer(quiz);
+        pf.setStudentIdentifier(student);
+        pf.setWorkRating(work);
+        Performance pf2 = new Performance();
+        pf2.setContributionRating(contribution2);
+        pf2.setQuizAnswer(quiz);
+        pf2.setStudentIdentifier(student);
+        pf2.setWorkRating(work2);
+        result.add(pf);
+        result.add(pf2);
+    }
+
+}