diff --git a/erpnext/education/doctype/question/question.json b/erpnext/education/doctype/question/question.json
index 2dcf1eb..c62d4a9 100644
--- a/erpnext/education/doctype/question/question.json
+++ b/erpnext/education/doctype/question/question.json
@@ -4,7 +4,7 @@
  "allow_guest_to_view": 0, 
  "allow_import": 0, 
  "allow_rename": 0, 
- "autoname": "format:{question}", 
+ "autoname": "format:QUESTION-{#####}", 
  "beta": 0, 
  "creation": "2018-10-01 15:58:00.696815", 
  "custom": 0, 
@@ -91,7 +91,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2018-10-15 14:39:40.576374", 
+ "modified": "2018-10-17 12:08:05.649254", 
  "modified_by": "Administrator", 
  "module": "Education", 
  "name": "Question", 
diff --git a/erpnext/education/utils.py b/erpnext/education/utils.py
index b12ad0c..6d9c8e2 100644
--- a/erpnext/education/utils.py
+++ b/erpnext/education/utils.py
@@ -10,19 +10,19 @@
 
 def validate_overlap_for(doc, doctype, fieldname, value=None):
 	"""Checks overlap for specified field.
-	
-	:param fieldname: Checks Overlap for this field 
+
+	:param fieldname: Checks Overlap for this field
 	"""
-	
+
 	existing = get_overlap_for(doc, doctype, fieldname, value)
 	if existing:
 		frappe.throw(_("This {0} conflicts with {1} for {2} {3}").format(doc.doctype, existing.name,
 			doc.meta.get_label(fieldname) if not value else fieldname , value or doc.get(fieldname)), OverlapError)
-	
+
 def get_overlap_for(doc, doctype, fieldname, value=None):
 	"""Returns overlaping document for specified field.
-	
-	:param fieldname: Checks Overlap for this field 
+
+	:param fieldname: Checks Overlap for this field
 	"""
 
 	existing = frappe.db.sql("""select name, from_time, to_time from `tab{0}`
@@ -42,7 +42,7 @@
 		}, as_dict=True)
 
 	return existing[0] if existing else None
-	
+
 def validate_duplicate_student(students):
 	unique_students= []
 	for stud in students:
@@ -54,7 +54,7 @@
 
 def get_student_name(email=None):
 	"""Returns student user name, example EDU-STU-2018-00001 (Based on the naming series).
-	
+
 	:param user: a user email address
 	"""
 	try:
@@ -65,7 +65,7 @@
 @frappe.whitelist()
 def evaluate_quiz(quiz_response, **kwargs):
 	"""LMS Function: Evaluates a simple multiple choice quiz.  It recieves arguments from `www/lms/course.js` as dictionary using FormData[1].
-	
+
 
 	:param quiz_response: contains user selected choices for a quiz in the form of a string formatted as a dictionary. The function uses `json.loads()` to convert it to a python dictionary.
 	[1]: https://developer.mozilla.org/en-US/docs/Web/API/FormData
@@ -192,7 +192,7 @@
 
 def get_student_id(email):
 	"""Returns Student ID, example EDU-STU-2018-00001 from email address
-	
+
 	:params email: email address of the student"""
 	try:
 		return frappe.get_list('Student', filters={'student_email_id': email})[0].name
@@ -200,21 +200,32 @@
 		frappe.throw("Student Account with email:{0} does not exist".format(email))
 
 def get_quiz(content):
+	try:
+		quiz_doc = frappe.get_doc("Content", content)
+		if quiz_doc.content_type != "Quiz":
+			frappe.throw("<b>{0}</b> is not a Quiz".format(content))
+		quiz = [frappe.get_doc("Question", item.question_link) for item in quiz_doc.questions]
+		return quiz
+	except frappe.DoesNotExistError:
+		frappe.throw("The quiz \"{0}\" does not exist".format(content))
+
+def get_quiz_as_dict(content):
 	"""Helper Function to get questions for a quiz
-	
+
 	:params content: name of a Content doctype with content_type quiz"""
 	try:
 		quiz_doc = frappe.get_doc("Content", content)
 		if quiz_doc.content_type != "Quiz":
 			frappe.throw("<b>{0}</b> is not a Quiz".format(content))
-		
+
 		import json
 		quiz = [frappe.get_doc("Question", item.question_link) for item in quiz_doc.questions]
 		data = []
 		for question in quiz:
 			d = {}
-			d['Question'] = question.question
-			d['Options'] = [item.option for item in quiz[0].options]
+			d['id'] = question.name
+			d['question'] = question.question
+			d['options'] = [item.option for item in quiz[0].options]
 			data.append(d)
 		return data
 	except frappe.DoesNotExistError:
diff --git a/erpnext/www/lms/course.html b/erpnext/www/lms/course.html
index 182efab..5e2e393 100644
--- a/erpnext/www/lms/course.html
+++ b/erpnext/www/lms/course.html
@@ -10,7 +10,7 @@
 
 {% block content %}
 <div id="content-holder" data-type="{{current_content.content_type}}" data-content="{{ current_content.name }}" data-course="{{ current_course.name }}" data-program="{{ current_program }}">
-{% with current_content = current_content, next_content = next_content, course_name = current_course.name, program=current_program%}
+{% with quiz = quiz, current_content = current_content, next_content = next_content, course_name = course_name, program=current_program%}
 {% include "www/lms/templates/includes/" + current_content.content_type.lower() + ".html" %}
 {% endwith %}
 </div>
@@ -23,7 +23,7 @@
         padding-top: 3rem !important;
         padding-bottom: 1rem !important;
     }
-    
+
     .video-description-section {
         padding-top: 0em !important;
     }
diff --git a/erpnext/www/lms/course.py b/erpnext/www/lms/course.py
index 0276102..19e495f 100644
--- a/erpnext/www/lms/course.py
+++ b/erpnext/www/lms/course.py
@@ -1,19 +1,23 @@
 from __future__ import unicode_literals
+import erpnext.education.utils as utils
 import frappe
 
 
 def get_context(context):
     if frappe.form_dict['course']:
-        context.current_course = frappe.get_doc("Course", frappe.form_dict["course"])
         context.current_content = frappe.get_doc("Content", frappe.form_dict["content"])
+        context.course_name = frappe.form_dict["course"]
+        context.current_course = utils.get_contents_in_course(context.course_name)
         context.current_program = frappe.form_dict["program"]
         context.next_content = get_next_content(context)
+        if context.current_content.content_type == "Quiz":
+            context.questions = utils.get_quiz_as_dict(context.current_content.name)
 
 
 def get_next_content(context):
     if context.current_course:
-        course_data = [content_item.content for content_item in context.current_course.course_content]
-        try: 
+        course_data = [content.name for content in context.current_course]
+        try:
             return course_data[course_data.index(context.current_content.name) + 1]
         except IndexError:
             return None
\ No newline at end of file
diff --git a/erpnext/www/lms/templates/includes/quiz.html b/erpnext/www/lms/templates/includes/quiz.html
index 280a17b..8d20a26 100644
--- a/erpnext/www/lms/templates/includes/quiz.html
+++ b/erpnext/www/lms/templates/includes/quiz.html
@@ -1,13 +1,13 @@
-{% macro quiz(loop_index, question_id, question, options) %}
-<div class="question mt-4" id="question" data-question="{{ question_id }}">
-    <h5>{{ loop_index }}{{ question }}</h5>
+{% macro quiz(loop_index, question) %}
+<div class="question mt-4" id="question['question']" data-question="{{ question['id'] }}">
+    <h5>{{ loop_index }}{{ question['question'] }}</h5>
     <div class="options ml-2">
         <div class="form-check pb-1 hidden">
-            <input class="form-check-input" type="radio" name="{{ question_id }}" value="0" checked>
+            <input class="form-check-input" type="radio" name="{{ question['id'] }}" value="0" checked>
         </div>
-        {% for option in options %}
+        {% for option in question['options'] %}
         <div class="form-check pb-1">
-            <input class="form-check-input" type="radio" name="{{ question_id }}" id="{{loop_index}}-{{ option }}" value="{{ loop.index|str }}">
+            <input class="form-check-input" type="radio" name="{{ question['id'] }}" id="{{loop_index}}-{{ option }}" value="{{ option }}">
             <label class="form-check-label" for="{{loop_index}}-{{ option }}">
                 {{ option }}
             </label>
@@ -16,7 +16,6 @@
     </div>
 </div>
 {% endmacro %}
-
 <section class="quiz-section">
     <div class='container'>
         <div class="mt-3 row">
@@ -28,9 +27,8 @@
             <hr>
             <form id="quiz" name="{{ current_content.name }}">
                 <div id="quiz-body">
-                    {% for quiz_item in current_content.quiz %}
-                    {{ quiz(loop.index|str +". ", quiz_item.name, quiz_item.question, [ quiz_item.option_1, quiz_item.option_2,
-                    quiz_item.option_3, quiz_item.option_4]) }}
+                    {% for q in questions %}
+                    {{ quiz(loop.index|str +". ", q) }}
                     {% endfor %}
                 </div>
                 <div class="mt-3">
@@ -43,12 +41,12 @@
                             <h3>Your Score: <span id="result"></span></h3>
                         </div>
                         <div class="col-md-4 text-right">
-                                <a class='btn btn-outline-secondary' href="#">Previous</a>
-                                {% if next_content != None %}
-                                <a class='btn btn-primary' href="/lms/course?program={{ program }}&course={{ course_name }}&content={{ next_content }}">Next</a>
-                                {% else %}
-                                <a class='btn btn-primary' href="/lms/program?program={{ program }}">Finish Course</a>
-                                {% endif %}
+                            <a class='btn btn-outline-secondary' href="#">Previous</a>
+                            {% if next_content != None %}
+                            <a class='btn btn-primary' href="/lms/course?program={{ program }}&course={{ course_name }}&content={{ next_content }}">Next</a>
+                            {% else %}
+                            <a class='btn btn-primary' href="/lms/program?program={{ program }}">Finish Course</a>
+                            {% endif %}
                         </div>
                     </div>
                 </div>
