diff --git a/erpnext/education/utils.py b/erpnext/education/utils.py
index 6fb72f1..bf7327b 100644
--- a/erpnext/education/utils.py
+++ b/erpnext/education/utils.py
@@ -109,7 +109,12 @@
 		})
 	student.save(ignore_permissions=True)
 	frappe.db.commit()
-	return student_name
+	return student
+
+def enroll_in_course(course_name, program_name):
+	student_id = get_current_student()
+	student = frappe.get_doc("Student", student_id)
+	student.enroll_in_course(course_name=course_name, program_enrollment=get_program_enrollment(program_name))
 
 def enroll_all_courses_in_program(program_enrollment, student):
 	program = frappe.get_doc("Program", program_enrollment.program)
diff --git a/erpnext/public/js/education/lms/components/CourseCard.vue b/erpnext/public/js/education/lms/components/CourseCard.vue
index 494c5e5..2c589ac 100644
--- a/erpnext/public/js/education/lms/components/CourseCard.vue
+++ b/erpnext/public/js/education/lms/components/CourseCard.vue
@@ -67,7 +67,7 @@
         },
         isLogin() {
             return lms.store.checkLogin()
-        }
+        },
     },
     methods: {
         iconClass(content_type) {
@@ -77,9 +77,10 @@
         },
         getCourseMeta() {
 			return lms.call('get_course_meta', {
-					course_name: this.course.name
+                    course_name: this.course.name,
+                    program_name: this.program_name
 				})
-		}
+        },
     }
 };
 </script>
@@ -92,6 +93,7 @@
     }
     li {
         list-style-type: none;
+        padding: 0;
     }
     .fa {
         font-size: 0.8em;
diff --git a/erpnext/www/lms.py b/erpnext/www/lms.py
index 047b321..0033557 100644
--- a/erpnext/www/lms.py
+++ b/erpnext/www/lms.py
@@ -199,9 +199,10 @@
 	return status, score, result
 	
 @frappe.whitelist()
-def get_course_meta(course_name):
+def get_course_meta(course_name, program_name):
 	course_enrollment = utils.get_course_enrollment(course_name)
-	# course_enrollment = frappe.get_doc("Course Enrollment", course_enrollment_name)
+	if not course_enrollment:
+		utils.enroll_in_course(course_name, program_name)
 	progress = get_course_progress(course_enrollment)
 	count = sum([act['is_complete'] for act in progress])
 	if count == 0:
@@ -215,7 +216,11 @@
 @frappe.whitelist()
 def get_program_meta(program_name):
 	program = frappe.get_doc("Program", program_name)
-	program_meta = {}
-	for course in program.get_all_children():
-		program_meta[course.course] = get_course_meta(course.course)
-	return program_meta
\ No newline at end of file
+	program_enrollment = frappe.get_list("Program Enrollment", filters={'student': utils.get_current_student(), 'program': program_name })[0].name
+	if not program_enrollment:
+		return None
+	else:
+		program_meta = {}
+		for course in program.get_all_children():
+			program_meta[course.course] = get_course_meta(course.course, program_name)
+		return program_meta
\ No newline at end of file
