diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java
index 18a02b758e8e7a54572516679abd7518321962f4..e7e0bb8e2785a3c3c6925d9f207bfa74d0b6884b 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java
@@ -4,6 +4,7 @@ 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;
 
 /**
@@ -77,10 +78,10 @@ public interface IPeerAssessment {
 
     /**
      *
-     * @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/modules/assessment/controller/service/AssessmentDBCommunication.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java
index 01c47b2a18079ec18a6f951aa2d39f67eae10662..fe67cd81c9db56804b2d5a56482d564bfd184020 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
@@ -86,6 +86,21 @@ class AssessmentDBCommunication {
         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();
@@ -96,7 +111,7 @@ class AssessmentDBCommunication {
                 "`communication`, " +
                 "`autonomous`" +
                 ") VALUES (?,?,?,?,?,?,?,?)";
-        connect.issueSelectStatement(mysqlRequest, student.getProjectId(), student.getStudentId(), fromStudent,
+        connect.issueInsertOrDeleteStatement(mysqlRequest, student.getProjectId(), student.getStudentId(), fromStudent,
                 workRating.get("responsibility"),
                 workRating.get("partOfWork"),
                 workRating.get("cooperation"),
@@ -114,7 +129,7 @@ class AssessmentDBCommunication {
                 "`eJournal`, " +
                 "`research`" +
                 ") VALUES (?,?,?,?,?,?)";
-        connect.issueSelectStatement(mysqlRequest, student.getProjectId(), student.getStudentId(), fromStudent,
+        connect.issueInsertOrDeleteStatement(mysqlRequest, student.getProjectId(), student.getStudentId(), fromStudent,
                 contributionRating.get("Dossier"),
                 contributionRating.get("eJournal"),
                 contributionRating.get("research")
@@ -126,7 +141,7 @@ class AssessmentDBCommunication {
         MysqlConnect connect = new MysqlConnect();
         connect.connect();
         String mysqlRequest = "INSERT INTO `grades`(`projectId`, `studentId`, `grade`) VALUES (?,?,?)";
-        connect.issueSelectStatement(mysqlRequest,
+        connect.issueInsertOrDeleteStatement(mysqlRequest,
                 grade.getStudentIdentifier().getProjectId(),
                 grade.getStudentIdentifier().getStudentId(),
                 grade.getGrade()
@@ -134,17 +149,20 @@ class AssessmentDBCommunication {
         connect.close();
     }
 
-    void writeAnsweredQuiz(StudentIdentifier student, String question, Boolean correct) {
+    public Map<String, Boolean> getAnswers(String projectId, String question) {
         MysqlConnect connect = new MysqlConnect();
         connect.connect();
-        String mysqlRequest = "INSERT INTO `answeredquiz`(`projectId`, `studentId`, `question`, `correct`) VALUES (?,?,?,?)";
-        connect.issueSelectStatement(mysqlRequest,
-                student.getProjectId(),
-                student.getStudentId(),
-                question,
-                correct
-        );
+        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 e094756066efdd657653c45edee4f412b389ccf1..a9955e9a355adfe91a6c07bca6ccf34d2088cb36 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
@@ -4,6 +4,7 @@ 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;
 
 /**
@@ -60,7 +61,7 @@ public class FBAssessement extends AssessmentDAO {
     }
 
     @Override
-    public void answerQuiz(StudentAndQuiz studentAndQuiz, QuizAnswer quizAnswer) {
+    public void answerQuiz(Map<String, List<String>> questions, StudentIdentifier student) {
 
     }
 
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 a63bc805b1687974ac20db6ec7abbfaa0173e27a..c2e08f29b76db274c7f9f3bc282c4d40a6d7e1bb 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
@@ -202,13 +202,24 @@ public class PeerAssessment implements IPeerAssessment {
     public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId) {
         for (PeerRating peer: peerRatings){
             StudentIdentifier student = new StudentIdentifier(projectId, peer.getToPeer());
-            //new AssessmentDBCommunication().writeWorkRatingToDB(student, peerRatings.get(1).getFromPeer(), peerRatings.get(1).getWorkRating());
+            new AssessmentDBCommunication().writeWorkRatingToDB(student, peerRatings.get(1).getFromPeer(), peerRatings.get(1).getWorkRating());
         }
     }
 
     @Override
-    public void answerQuiz(StudentAndQuiz studentAndQuiz, QuizAnswer quizAnswer) {
-
+    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) -> {
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 812eab9a40cdaaaea5d7c2b35b353b0028003e8c..5b105a94fe50ef1d18e41ffc02148faec40d653a 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
@@ -66,7 +66,7 @@ public class PeerAssessmentDummy implements IPeerAssessment {
     }
 
     @Override
-    public void answerQuiz(StudentAndQuiz studentAndQuiz, QuizAnswer quizAnswer) {
+    public void answerQuiz(Map<String, List<String>> questions, StudentIdentifier student) {
         NotImplementedLogger.logAssignment(Assignee.AXEL, IPeerAssessment.class);
     }
 
@@ -124,23 +124,23 @@ public class PeerAssessmentDummy implements IPeerAssessment {
         quiz2.add(1);
         quiz2.add(0);
         quiz2.add(0);
-        Map work = new HashMap<String, Double>();
+        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 work2 = new HashMap<String, Double>();
+        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 contribution1 = new HashMap<String, Double>();
+        Map<String, Double> contribution1 = new HashMap<>();
         contribution1.put("Dossier", 4.);
         contribution1.put("eJournal", 2.);
         contribution1.put("research", 4.);
-        Map contribution2 = new HashMap<String, Double>();
+        Map<String, Double> contribution2 = new HashMap<>();
         contribution2.put("Dossier", 2.);
         contribution2.put("eJournal", 3.);
         contribution2.put("research", 4.);
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 e47cdc1ad84b0e52b0310bc54c3bbf99a3f7df66..7ba24ad16827b3b25e2f4f4f3501254ad20a1350 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
@@ -46,8 +46,12 @@ public class QuizView {
         peer.postPeerRating(peerRatings, projectId);
     }
 
-    public void answerQuiz(StudentAndQuiz studentAndQuiz, QuizAnswer quizAnswer) {
-
+    @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
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js
index 664e145a99f13d018c73365c00bf09db3f292d00..593c2369cf4fafc9c788841aefcdd56a48f34892 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js
@@ -9,14 +9,14 @@ $(document).ready(function() {
 });
 
 function assessPeer(){
+    var peerStudents =$('.peerStudent');
     ///////initialize variables///////
-    var dataP = [];
-    var workRating = {};
+    var dataP = new Array(peerStudents.size());
     var rateThis = ['responsibility','partOfWork','cooperation','communication','autonomous'];
 
     ///////read values from html///////
-    var peerStudents =$('.peerStudent');
     for (var peer=0; peer< peerStudents.length; peer++){
+        var workRating = {};
         var peerRating = {
             "fromPeer": $('#user').html().trim(),
             "toPeer": peerStudents[peer].id,
@@ -33,9 +33,8 @@ function assessPeer(){
             }
         }
         peerRating.workRating = workRating;
-        workRating=[];
         //////write values in Post-Variable
-        dataP.push(peerRating);
+        dataP[peer]=peerRating;
     }
     var projectId=$('#projectId').html().trim();
     $.ajax({
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/takeQuiz.js b/gemeinsamforschen/src/main/webapp/assets/js/takeQuiz.js
index 1a8afcfa36d89450466a323728f57dc7f0ffb973..cd0184d43d637fac702d3dc2d27dc6a378c4e4b7 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/takeQuiz.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/takeQuiz.js
@@ -29,6 +29,7 @@ $(document).ready(function () {
     };
 
     var projectId = document.getElementById('projectId').innerText.trim();
+    var studentId = document.getElementById('user').innerText.trim();
     $.ajax({
         url: '../rest/assessments/project/'+projectId+'/quiz/',
         type: 'GET',
@@ -40,7 +41,7 @@ $(document).ready(function () {
                 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+'">' +
+                    ' data-toggle="collapse" href="#'+question+'" aria-expanded="false" aria-controls="'+question+'">' +
                     '' + data[quiz].question + '</td>';
                 trQuestion.innerHTML = tdQuestion;
                 var trAnswers = document.createElement('TR');
@@ -64,12 +65,12 @@ $(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();
     });
 });
 
@@ -82,4 +83,39 @@ function shuffle(a) {
         a[j] = x;
     }
     return a;
+}
+
+function safeQuizAnswers(){   //todo: just written before going home. not tested yet, wont work
+    var quizzes = $('.quiz');
+    ///////initialize variables///////
+    var dataP = new Array(quizzes.size());
+
+    ///////read values from html///////
+    for (var quiz=0; quiz<quizzes.size(); quiz++){
+        var answerList = [];
+        $(quizzes[quiz]+":input:checkbox[name=type]:checked").each(function(){
+            answerList.push($(this).val());
+        });
+        var question = quizzes[quiz].id;
+        var quizAnswers={question: answerList};
+        //////write values in Post-Variable
+        dataP[quiz]=quizAnswers;
+    }
+    var projectId=$('#projectId').html().trim();
+    var 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="takeQuiz.jsp?token="+getUserTokenFromUrl()+"&projectId="+$('#projectId').html().trim();
+        },
+        error: function(a,b,c){
+
+        }
+    });
 }
\ 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>();