diff --git a/erpnext/education/doctype/program_enrollment/program_enrollment.py b/erpnext/education/doctype/program_enrollment/program_enrollment.py
index 22cca86..d232e47 100644
--- a/erpnext/education/doctype/program_enrollment/program_enrollment.py
+++ b/erpnext/education/doctype/program_enrollment/program_enrollment.py
@@ -96,29 +96,6 @@
 		quiz_progress.program = self.program
 		return quiz_progress
 
-	def get_program_progress(self):
-		import math
-		program = frappe.get_doc("Program", self.program)
-		program_progress = {}
-		progress = []
-		for course in program.get_all_children():
-			course_progress = lms.get_student_course_details(course.course, self.program)
-			is_complete = False
-			if course_progress['flag'] == "Completed":
-				is_complete = True
-			progress.append({'course_name': course.course_name, 'name': course.course, 'is_complete': is_complete})
-
-		program_progress['progress'] = progress
-		program_progress['name'] = self.program
-		program_progress['program'] = frappe.get_value("Program", self.program, 'program_name')
-
-		try:
-			program_progress['percentage'] = math.ceil((sum([item['is_complete'] for item in progress] * 100)/len(progress)))
-		except ZeroDivisionError:
-			program_progress['percentage'] = 0
-
-		return program_progress
-
 @frappe.whitelist()
 def get_program_courses(doctype, txt, searchfield, start, page_len, filters):
 	if filters.get('program'):
diff --git a/erpnext/education/utils.py b/erpnext/education/utils.py
index 3352b51..ac7294b 100644
--- a/erpnext/education/utils.py
+++ b/erpnext/education/utils.py
@@ -239,7 +239,7 @@
 	status, score, result = check_quiz_completion(quiz, course_enrollment)
 	return {'questions': questions, 'activity': {'is_complete': status, 'score': score, 'result': result}}
 
-def get_student_topic_details(topic, course_name, program):
+def get_topic_progress(topic, course_name, program):
 	"""
 	Return the porgress of a course in a program as well as the content to continue from.
 		:param topic_name:
@@ -260,7 +260,7 @@
 	elif count < len(progress):
 		return {'completed': False, 'started': True}
 
-def get_student_course_details(course, program):
+def get_course_progress(course, program):
 	"""
 	Return the porgress of a course in a program as well as the content to continue from.
 		:param topic_name:
@@ -269,16 +269,14 @@
 	course_progress = []
 	for course_topic in course.topics:
 		topic = frappe.get_doc("Topic", course_topic.topic)
-		progress = get_student_topic_details(topic, course.name, program)
+		progress = get_topic_progress(topic, course.name, program)
 		if progress:
 			course_progress.append(progress)
-
 	if course_progress:
 		number_of_completed_topics = sum([activity['completed'] for activity in course_progress])
 		total_topics = len(course_progress)
-		print("course_progress", course_progress)
-		print("number_of_completed_topics", number_of_completed_topics)
-		print("total_topics", total_topics)
+		if total_topics == 1:
+			return course_progress[0]
 		if number_of_completed_topics == 0:
 			return {'completed': False, 'started': False}
 		if number_of_completed_topics == total_topics:
@@ -288,6 +286,47 @@
 
 	return None
 
+def get_program_progress(program):
+	program_progress = []
+	if not program.courses:
+		return None
+	for program_course in program.courses:
+		course = frappe.get_doc("Course", program_course.course)
+		progress = get_course_progress(course, program.name)
+		if progress:
+			progress['name'] = course.name
+			progress['course'] = course.course_name
+			program_progress.append(progress)
+
+	if program_progress:
+		return program_progress
+
+	return None
+
+def get_program_completion(program):
+	topics = frappe.db.sql("""select `tabcourse topic`.topic, `tabcourse topic`.parent
+	from `tabcourse topic`,
+		 `tabprogram course`
+	where `tabcourse topic`.parent = `tabprogram course`.course
+			and `tabprogram course`.parent = '{0}'""".format(program.name))
+
+	progress = []
+	for topic in topics:
+		topic_doc = frappe.get_doc('Topic', topic[0])
+		topic_progress = get_topic_progress(topic_doc, topic[1], program.name)
+		if topic_progress:
+			progress.append(topic_progress)
+
+	if progress:
+		number_of_completed_topics = sum([activity['completed'] for activity in progress if activity])
+		total_topics = len(progress)
+		try:
+			return int((float(number_of_completed_topics)/total_topics)*100)
+		except ZeroDivisionError:
+			return 0
+
+	return 0
+
 def create_student_from_current_user():
 	user = frappe.get_doc("User", frappe.session.user)
 
diff --git a/erpnext/www/lms/course.py b/erpnext/www/lms/course.py
index f59c28c..e7ed2e3 100644
--- a/erpnext/www/lms/course.py
+++ b/erpnext/www/lms/course.py
@@ -15,5 +15,5 @@
 	context.progress = get_topic_progress(context.topics, course, context.program)
 
 def get_topic_progress(topics, course, program):
-	progress = {topic.name: utils.get_student_topic_details(topic, course.name, program) for topic in topics}
+	progress = {topic.name: utils.get_topic_progress(topic, course.name, program) for topic in topics}
 	return progress
diff --git a/erpnext/www/lms/profile.html b/erpnext/www/lms/profile.html
new file mode 100644
index 0000000..c642265
--- /dev/null
+++ b/erpnext/www/lms/profile.html
@@ -0,0 +1,56 @@
+{% extends "templates/base.html" %}
+{% block title %}Profile{% endblock %}
+{% from "www/lms/macros/hero.html" import hero %}
+
+{% macro card(program) %}
+<div class="col-sm-4 mb-4 text-left">
+	<a href="/lms/program?program={{ program.name }}" class="no-decoration no-underline">
+	<div class="card h-100">
+		<div class='card-body'>
+			<h5 class='card-title'>{{ program.program }}</h5>
+			<ul class="list-unstyled text-muted">
+				{% for course in program.progress %}
+				<li>
+					{% if course.completed %} <span class="indicator green">
+					{% elif course.started %} <span class="indicator orange">
+					{% else %} <span class="indicator blue">{{ course }}</span>
+					{% endif %}
+						<a class="text-muted" href="/lms/course?program={{ program.name }}&name={{ course.course }}">{{ course.course }}</a>
+					</span>
+				</li>
+				{% endfor %}
+			</ul>
+		</div>
+		<div class='card-footer'>
+			<span class="small">{{ program.completion }}% Complete</span>
+		</div>
+	</div>
+	</a>
+</div>
+{% endmacro %}
+
+{% block content %}
+<section class="section">
+	<div class='container pb-5'>
+		<div class="mb-3 row">
+			<div class="col-md-7">
+				<a href="/lms" class="text-muted">
+					<i class="fa fa-chevron-left"></i> Back to Home
+				</a>
+			</div>
+			<div class="col-md-5 text-right">
+				<a href="/update-profile?name={{ frappe.session.user }}" target="blank" class="mt-0 text-muted">Edit Profile</a>
+			</div>
+		</div>
+		<h1>{{ student.first_name }} {{ student.last_name or '' }}</h1>
+		<p class="lead" style="max-width: 100%;">{{ student.name }}</p>
+	</div>
+	<div class='container'>
+		<div class="row mt-5">
+			{% for program in progress %}
+				{{ card(program) }}
+			{% endfor %}
+		</div>
+	</div>
+</section>
+{% endblock %}
\ No newline at end of file
diff --git a/erpnext/www/lms/profile.py b/erpnext/www/lms/profile.py
new file mode 100644
index 0000000..1a0decc
--- /dev/null
+++ b/erpnext/www/lms/profile.py
@@ -0,0 +1,24 @@
+from __future__ import unicode_literals
+import erpnext.education.utils as utils
+import frappe
+
+no_cache = 1
+
+def get_context(context):
+	context.student = utils.get_current_student()
+	context.progress = get_program_progress(context.student.name)
+
+def get_program_progress(student):
+	enrolled_programs = frappe.get_all("Program Enrollment", filters={'student':student}, fields=['program'])
+	student_progress = []
+	for list_item in enrolled_programs:
+		program = frappe.get_doc("Program", list_item.program)
+		progress = utils.get_program_progress(program)
+		completion = utils.get_program_completion(program)
+		student_progress.append({'program': program.program_name, 'name': program.name, 'progress':progress, 'completion': completion})
+
+	return student_progress
+
+
+
+
diff --git a/erpnext/www/lms/program.py b/erpnext/www/lms/program.py
index 1242336..a92ec31 100644
--- a/erpnext/www/lms/program.py
+++ b/erpnext/www/lms/program.py
@@ -18,5 +18,5 @@
 		frappe.throw(_("Program {0} does not exist.".format(program_name)))
 
 def get_course_progress(courses, program):
-	progress = {course.name: utils.get_student_course_details(course, program) for course in courses}
+	progress = {course.name: utils.get_course_progress(course, program) for course in courses}
 	return progress
\ No newline at end of file
