diff --git a/erpnext/demo/data/assessment_criteria.json b/erpnext/demo/data/assessment_criteria.json
new file mode 100644
index 0000000..8295682
--- /dev/null
+++ b/erpnext/demo/data/assessment_criteria.json
@@ -0,0 +1,18 @@
+[
+	{
+		"doctype": "Assessment Criteria",
+		"assessment_criteria": "Aptitude"
+	},
+	{
+		"doctype": "Assessment Criteria",
+		"assessment_criteria": "Application"
+	},
+	{
+		"doctype": "Assessment Criteria",
+		"assessment_criteria": "Understanding"
+	},
+	{
+		"doctype": "Assessment Criteria",
+		"assessment_criteria": "Knowledge"
+	}
+]
\ No newline at end of file
diff --git a/erpnext/demo/data/grading_scale.json b/erpnext/demo/data/grading_scale.json
new file mode 100644
index 0000000..0760919
--- /dev/null
+++ b/erpnext/demo/data/grading_scale.json
@@ -0,0 +1,17 @@
+[
+	{
+		"doctype": "Grading Scale",
+		"grading_scale_name": "Standard Grading",
+		"description": "Standard Grading Scale",
+		"intervals": [
+			{"threshold": 100.0, "grade_code": "A", "grade_description": "Excellent"},
+			{"threshold": 89.9, "grade_code": "B+", "grade_description": "Close to Excellence"},
+			{"threshold": 80.0, "grade_code": "B", "grade_description": "Good"},
+			{"threshold": 69.9, "grade_code": "C+", "grade_description": "Almost Good"},
+			{"threshold": 60.0, "grade_code": "C", "grade_description": "Average"},
+			{"threshold": 50.0, "grade_code": "D+", "grade_description": "Have to Work"},
+			{"threshold": 40.0, "grade_code": "D", "grade_description": "Not met Baseline Expectations"},
+			{"threshold": 0.0, "grade_code": "F", "grade_description": "Have to work a lot"}
+		]
+	}
+]
\ No newline at end of file
diff --git a/erpnext/demo/data/item_schools.json b/erpnext/demo/data/item_schools.json
index 5eb6082..077fcaa 100644
--- a/erpnext/demo/data/item_schools.json
+++ b/erpnext/demo/data/item_schools.json
@@ -57,6 +57,7 @@
  },
  {
   "is_stock_item": 0,
+  "default_warehouse": "Stores",
   "description": "Computer",
   "item_code": "Computer",
   "item_name": "Computer",
@@ -64,6 +65,7 @@
  },
  {
   "is_stock_item": 0,
+  "default_warehouse": "Stores",
   "description": "Mobile",
   "item_code": "Mobile",
   "item_name": "Mobile",
@@ -71,6 +73,7 @@
  },
  {
   "is_stock_item": 0,
+  "default_warehouse": "Stores",
   "description": "ERP",
   "item_code": "ERP",
   "item_name": "ERP",
@@ -78,6 +81,7 @@
  },
  {
   "is_stock_item": 0,
+  "default_warehouse": "Stores",
   "description": "Autocad",
   "item_code": "Autocad",
   "item_name": "Autocad",
@@ -85,6 +89,7 @@
  },
  {
   "default_warehouse": "Stores",
+  "default_warehouse": "Stores",
   "item_code": "Service",
   "item_group": "Services",
   "item_name": "Service",
diff --git a/erpnext/demo/data/program.json b/erpnext/demo/data/program.json
index 8638311..9c2ec77 100644
--- a/erpnext/demo/data/program.json
+++ b/erpnext/demo/data/program.json
@@ -1,102 +1,46 @@
 [
 	{
 		"doctype": "Program",
+		"name": "MCA",
 		"program_name": "Masters of Computer Applications",
 		"program_code": "MCA",
 		"department": "Information Technology",
 		"courses": [
-			{
-				"course": "Microprocessor",
-				"academic_term": "Semester 1"
-			},
-			{
-				"course": "Probability and Statistics",
-				"academic_term": "Semester 1"
-			},
-			{
-				"course": "Programing in Java",
-				"academic_term": "Semester 2"
-			}
+			{ "course": "MCA4010" },
+			{ "course": "MCA4020" },
+			{ "course": "MCA4030" }
 		]
 	},
 	{
 		"doctype": "Program",
+		"name": "BCA",
 		"program_name": "Bachelor of Computer Applications",
 		"program_code": "BCA",
 		"department": "Information Technology",
 		"courses": [
-			{
-				"course": "Communication Skiils",
-				"academic_term": "Semester 3"
-			},
-			{
-				"course": "Object Oriented Programing - C++",
-				"academic_term": "Semester 3"
-			},
-			{
-				"course": "Basic Mathematics",
-				"academic_term": "Semester 2"
-			},
-			{
-				"course": "Data Structures and Algorithm",
-				"academic_term": "Semester 2"
-			},
-			{
-				"course": "Digital Logic",
-				"academic_term": "Semester 2"
-			},
-			{
-				"course": "Fundamentals of IT & Programing",
-				"academic_term": "Semester 1"
-			},
-			{
-				"course": "Operating System",
-				"academic_term": "Semester 1"
-			},
-			{
-				"course": "Programing in C",
-				"academic_term": "Semester 1"
-			}
+			{ "course": "BCA2030" },
+			{ "course": "BCA1030" },
+			{ "course": "BCA2020" },
+			{ "course": "BCA1040" },
+			{ "course": "BCA1010" },
+			{ "course": "BCA2010" },
+			{ "course": "BCA1020" }
 		]
 	},
 	{
 		"doctype": "Program",
+		"name": "BBA",
 		"program_name": "Bachelor of Business Administration",
 		"program_code": "BBA",
 		"department": "Management Studies",
 		"courses": [
-			{
-				"course": "Organizational Behavior",
-				"academic_term": "Semester 1"
-			},
-			{
-				"course": "Management Development and Skills",
-				"academic_term": "Semester 1"
-			},
-			{
-				"course": "Legal and Regulatory Framework",
-				"academic_term": "Semester 1"
-			},
-			{
-				"course": "Human Resource Management",
-				"academic_term": "Semester 2"
-			},
-			{
-				"course": "Entrepreneurship Management",
-				"academic_term": "Semester 2"
-			},
-			{
-				"course": "Communication Skills",
-				"academic_term": "Semester 2"
-			},
-			{
-				"course": "Business Environment",
-				"academic_term": "Semester 3"
-			},
-			{
-				"course": "Advertising and Sales",
-				"academic_term": "Semester 3"
-			}
+			{ "course": "BBA 101" },
+			{ "course": "BBA 102" },
+			{ "course": "BBA 103" },
+			{ "course": "BBA 301" },
+			{ "course": "BBA 302" },
+			{ "course": "BBA 304" },
+			{ "course": "BBA 505" }
 		]
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/demo/data/student_batch_name.json b/erpnext/demo/data/student_batch_name.json
new file mode 100644
index 0000000..ef3f18d
--- /dev/null
+++ b/erpnext/demo/data/student_batch_name.json
@@ -0,0 +1,10 @@
+[
+	{
+		"doctype": "Student Batch Name",
+		"batch_name": "Section-A"
+	},
+	{
+		"doctype": "Student Batch Name",
+		"batch_name": "Section-B"
+	}
+]
\ No newline at end of file
diff --git a/erpnext/demo/demo.py b/erpnext/demo/demo.py
index aeaa1f0..a270e05 100644
--- a/erpnext/demo/demo.py
+++ b/erpnext/demo/demo.py
@@ -35,6 +35,7 @@
 	frappe.destroy()
 	frappe.init(site)
 	frappe.connect()
+
 	simulate(domain)
 
 def simulate(domain='Manufacturing'):
@@ -73,7 +74,7 @@
 			stock.work()
 			accounts.work()
 			projects.run_projects(current_date)
-			#run_messages()
+			# run_messages()
 
 			if domain=='Manufacturing':
 				sales.work()
diff --git a/erpnext/demo/setup/education.py b/erpnext/demo/setup/education.py
index b164057..a124ee7 100644
--- a/erpnext/demo/setup/education.py
+++ b/erpnext/demo/setup/education.py
@@ -15,6 +15,7 @@
 	make_student_group()
 	make_fees_category()
 	make_fees_structure()
+	make_assessment_groups()
 	frappe.db.commit()
 	frappe.clear_cache()
 
@@ -24,6 +25,9 @@
 	import_json("Instructor")
 	import_json("Course")
 	import_json("Program")
+	import_json("Student Batch Name")
+	import_json("Assessment Criteria")
+	import_json("Grading Scale")
 	frappe.db.commit()
 
 def setup_item():
@@ -81,13 +85,24 @@
 			count+=1
 
 def make_student_group():
-	for d in frappe.db.get_list("Academic Term"):
-		sg_tool = frappe.new_doc("Student Group Creation Tool")
-		sg_tool.academic_year = "2016-17"
-		sg_tool.academic_term = d.name
-		sg_tool.courses = sg_tool.get_courses()
-		sg_tool.create_student_groups()
-		frappe.db.commit()
+	for term in frappe.db.get_list("Academic Term"):
+		for program in frappe.db.get_list("Program"):
+			sg_tool = frappe.new_doc("Student Group Creation Tool")
+			sg_tool.academic_year = "2017-18"
+			sg_tool.academic_term = term.name
+			sg_tool.program = program.name
+			for d in sg_tool.get_courses():
+				d = frappe._dict(d)
+				student_group = frappe.new_doc("Student Group")
+				student_group.student_group_name = d.student_group_name
+				student_group.group_based_on = d.group_based_on
+				student_group.program = program.name
+				student_group.course = d.course
+				student_group.batch = d.batch
+				student_group.academic_term = term.name
+				student_group.academic_year = "2017-18"
+				student_group.save()
+			frappe.db.commit()
 
 def make_fees_category():
 	fee_type = ["Tuition Fee", "Hostel Fee", "Logistics Fee",
@@ -111,7 +126,7 @@
 def make_fees_structure():
 	for d in frappe.db.get_list("Program"):
 		program = frappe.get_doc("Program", d.name)
-		for academic_term in ["Semester 1", "Semester 2", "Semester 3"]:
+		for academic_term in ["2017-18 (Semester 1)", "2017-18 (Semester 2)", "2017-18 (Semester 3)"]:
 			fee_structure = frappe.new_doc("Fee Structure")
 			fee_structure.program = d.name
 			fee_structure.academic_term = random.choice(frappe.db.get_list("Academic Term")).name
@@ -123,6 +138,27 @@
 		program.save()
 	frappe.db.commit()
 
+def make_assessment_groups():
+	for year in frappe.db.get_list("Academic Year"):
+		ag = frappe.new_doc('Assessment Group')
+		ag.assessment_group_name = year.name
+		ag.parent_assessment_group = "All Assessment Groups"
+		ag.is_group = 1
+		ag.insert()
+		for term in frappe.db.get_list("Academic Term", filters = {"academic_year": year.name}):
+			ag1 = frappe.new_doc('Assessment Group')
+			ag1.assessment_group_name = term.name
+			ag1.parent_assessment_group = ag.name
+			ag1.is_group = 1
+			ag1.insert()
+			for assessment_group in ['Term I', 'Term II']:
+				ag2 = frappe.new_doc('Assessment Group')
+				ag2.assessment_group_name = ag1.name + " " + assessment_group
+				ag2.parent_assessment_group = ag1.name
+				ag2.insert()
+	frappe.db.commit()
+
+
 def get_json_path(doctype):
 		return frappe.get_app_path('erpnext', 'demo', 'data', frappe.scrub(doctype) + '.json')
 		
diff --git a/erpnext/demo/user/schools.py b/erpnext/demo/user/schools.py
index 6388f9a..422c31a 100644
--- a/erpnext/demo/user/schools.py
+++ b/erpnext/demo/user/schools.py
@@ -8,30 +8,22 @@
 from frappe.utils import cstr
 from frappe.utils.make_random import get_random
 from datetime import timedelta
-from erpnext.schools.api import get_student_group_students, make_attendance_records, enroll_student, get_fee_schedule, collect_fees
+from erpnext.schools.api import get_student_group_students, make_attendance_records, enroll_student, \
+								get_fee_schedule, collect_fees, get_course
+from erpnext.schools.doctype.program_enrollment.program_enrollment import get_program_courses
+from erpnext.schools.doctype.student_group.student_group import get_students
 
 def work():
 	frappe.set_user(frappe.db.get_global('demo_schools_user'))
 	for d in xrange(20):
 		approve_random_student_applicant()
 		enroll_random_student(frappe.flags.current_date)
-	if frappe.flags.current_date.weekday()== 0:
-		make_course_schedule(frappe.flags.current_date, frappe.utils.add_days(frappe.flags.current_date, 5))	
+	# if frappe.flags.current_date.weekday()== 0:
+	# 	make_course_schedule(frappe.flags.current_date, frappe.utils.add_days(frappe.flags.current_date, 5))	
 	mark_student_attendance(frappe.flags.current_date)
+	# make_assessment_plan()
 	make_fees()
 
-def mark_student_attendance(current_date):
-	status = ["Present", "Absent"]
-	for d in frappe.db.get_list("Course Schedule", filters={"schedule_date": current_date}, fields=("name", "student_group")):
-		students = get_student_group_students(d.student_group)
-		for stud in students:
-			make_attendance_records(stud.student, stud.student_name, d.name, status[weighted_choice([9,4])])
-			
-def make_fees():
-	for d in range(1,10):
-		random_fee = get_random("Fees", {"paid_amount": 0})
-		collect_fees(random_fee, frappe.db.get_value("Fees", random_fee, "outstanding_amount"))
-	
 def approve_random_student_applicant():
 	random_student = get_random("Student Applicant", {"application_status": "Applied"})
 	if random_student:
@@ -39,31 +31,59 @@
 		frappe.db.set_value("Student Applicant", random_student, "application_status", status[weighted_choice([9,3])])
 
 def enroll_random_student(current_date):
+	batch = ["Section-A", "Section-B"]
 	random_student = get_random("Student Applicant", {"application_status": "Approved"})
 	if random_student:
 		enrollment = enroll_student(random_student)
 		enrollment.academic_year = get_random("Academic Year")
 		enrollment.enrollment_date = current_date
+		enrollment.student_batch_name = batch[weighted_choice([9,3])]
 		fee_schedule = get_fee_schedule(enrollment.program)
 		for fee in fee_schedule:
 			enrollment.append("fees", fee)
+		enrolled_courses = get_course(enrollment.program)
+		for course in enrolled_courses:
+			enrollment.append("courses", course)
 		enrollment.submit()
 		frappe.db.commit()
-		assign_student_group(enrollment.student, enrollment.program)
+		assign_student_group(enrollment.student, enrollment.student_name, enrollment.program,
+			enrolled_courses, enrollment.student_batch_name)
 		
-def assign_student_group(student, program):
-	courses = []
-	for d in frappe.get_list("Program Course", fields=("course"), filters={"parent": program }):
-		courses.append(d.course)
+def assign_student_group(student, student_name, program, courses, batch):
+	course_list = [d["course"] for d in courses]
+	for d in frappe.get_list("Student Group", fields=("name"), filters={"program": program, "course":("in", course_list)}):
+		student_group = frappe.get_doc("Student Group", d.name)
+		student_group.append("students", {"student": student, "student_name": student_name,
+			"group_roll_number":len(student_group.students)+1, "active":1})
+		student_group.save()
+	student_batch = frappe.get_list("Student Group", fields=("name"), filters={"program": program, "group_based_on":"Batch", "batch":batch})[0]
+	student_batch_doc = frappe.get_doc("Student Group", student_batch.name)
+	student_batch_doc.append("students", {"student": student, "student_name": student_name,
+		"group_roll_number":len(student_batch_doc.students)+1, "active":1})
+	student_batch_doc.save()
+	frappe.db.commit()
 
-	for d in xrange(3):
-		course = random.choice(courses)
-		random_sg = get_random("Student Group", {"course": course})
-		if random_sg:
-			student_group = frappe.get_doc("Student Group", random_sg)
-			student_group.append("students", {"student": student})
-			student_group.save()
-		courses.remove(course)
+def mark_student_attendance(current_date):
+	status = ["Present", "Absent"]
+	for d in frappe.db.get_list("Student Group", filters={"group_based_on": "Batch"}):
+		students = get_student_group_students(d.name)
+		for stud in students:
+			make_attendance_records(stud.student, stud.student_name, status[weighted_choice([9,4])], None, d.name, current_date)
+			
+def make_fees():
+	for d in range(1,10):
+		random_fee = get_random("Fees", {"paid_amount": 0})
+		collect_fees(random_fee, frappe.db.get_value("Fees", random_fee, "outstanding_amount"))	
+
+def make_assessment_plan(date):
+	for d in range(1,4):
+		random_group = get_random("Student Group", {"group_based_on": "Course"}, True)
+		doc = frappe.new_doc("Assessment Plan")
+		doc.student_group = random_group.name
+		doc.course = random_group.course
+		doc.assessment_group = get_random("Assessment Group", {"is_group": 0, "parent": "2017-18 (Semester 2)"})
+		doc.grading_scale = get_random("Grading Scale")
+		doc.maximum_assessment_score = 100
 		
 def make_course_schedule(start_date, end_date):
 	for d in frappe.db.get_list("Student Group"):
diff --git a/erpnext/schools/api.py b/erpnext/schools/api.py
index 43d2438..db65a69 100644
--- a/erpnext/schools/api.py
+++ b/erpnext/schools/api.py
@@ -10,6 +10,14 @@
 from frappe.utils import flt, cstr
 from frappe.email.doctype.email_group.email_group import add_subscribers
 
+def get_course(program):
+	'''Return list of courses for a particular program
+	:param program: Program
+	'''
+	courses = frappe.db.sql('''select course, course_name from `tabProgram Course` where parent=%s''',
+			(program), as_dict=1)
+	return courses
+
 @frappe.whitelist()
 def enroll_student(source_name):
 	"""Creates a Student Record and returns a Program Enrollment.
