diff --git a/erpnext/education/utils.py b/erpnext/education/utils.py
index d0bf907..b0bf50e 100644
--- a/erpnext/education/utils.py
+++ b/erpnext/education/utils.py
@@ -66,28 +66,32 @@
 	course_name = kwargs.get('course')
 	try:
 		quiz = frappe.get_doc("Quiz", quiz_name)
-		score = quiz.evaluate(quiz_response)
-		# add_quiz_activity(course_name, quiz_name, result, score)
+		answers, score = quiz.evaluate(quiz_response)
+		add_quiz_activity(course_name, quiz_name, score, answers, quiz_response)
 		return score
 	except frappe.DoesNotExistError:
 		frappe.throw("Quiz {0} does not exist".format(quiz_name))
 		return None
 
 
-def add_quiz_activity(course, quiz, result, score):
+def add_quiz_activity(course, quiz, score, answers, quiz_response):
 	print(course, quiz, result, score)
 	enrollment = get_course_enrollment(course, frappe.session.user)
+	answer_list = list(answers.values())
 	if not enrollment:
-		enrollment = add_course_enrollment(course, frappe.session.user)
+		frappe.throw("The user is not enrolled for the course {course}".format(course=course))
 	activity = frappe.get_doc({
 		"doctype": "Quiz Activity",
 		"enrollment": enrollment.name,
 		"quiz": quiz,
 		"score": score,
-		# "date": frappe.getdate(),
+		"date": frappe.getdate()
 		})
-	for response in result:
-		activity.append("result", response)
+	for i in len(quiz_response):
+		activity.append("result",
+			{
+			"selected_option": quiz_response[i],
+			"result": answer_list[i]})
 	activity.save()
 	frappe.db.commit()
 
