diff --git a/erpnext/public/js/education/lms/components/TopicCard.vue b/erpnext/public/js/education/lms/components/TopicCard.vue
index 883277d..c9cb94f 100644
--- a/erpnext/public/js/education/lms/components/TopicCard.vue
+++ b/erpnext/public/js/education/lms/components/TopicCard.vue
@@ -9,7 +9,7 @@
                     Content
                     <ul class="mb-0 mt-1">
                         <li v-for="content in topic.topic_content" :key="content.name">
-                            <router-link v-if="isLogin" tag="a" :class="'text-muted'" :to="{name: 'content', params:{program_name: program_name, topic:topic.name, course: course, type:content.content_type, content: content.content} }">
+                            <router-link v-if="isLogin" tag="a" :class="'text-muted'" :to="{name: 'content', params:{program_name: program_name, topic:topic.name, course_name: course_name, type:content.content_type, content: content.content} }">
                                 <span style="padding-right: 0.4em"></span>{{ content.content }}
                             </router-link>
                             <div v-else><span style="padding-right: 0.4em"></span>{{ content.content }}</div>
@@ -35,7 +35,7 @@
 import AButton from './Button.vue';
 
 export default {
-    props: ['topic', 'course', 'program_name'],
+    props: ['topic', 'course_name', 'program_name'],
     name: "TopicCard",
     data() {
         return {
@@ -51,7 +51,7 @@
     computed: {
         firstContentRoute() {
             if(lms.store.checkLogin()){
-                return `${this.program_name}/${this.course.name}/${this.courseMeta.content_type}/${this.courseMeta.content}`
+                return `${this.program_name}/${this.course}/${this.courseMeta.content_type}/${this.courseMeta.content}`
             }
             else {
                 return {}
@@ -93,8 +93,9 @@
             if(content_type == 'Quiz') return 'fa fa-question-circle-o'
         },
         getCourseMeta() {
-			return lms.call('get_course_meta', {
-                    course_name: this.course.name,
+			return lms.call('get_topic_meta', {
+                    topic_name: this.topic.topic_name,
+                    course_name: this.course_name,
                     program_name: this.program_name
 				})
         },
diff --git a/erpnext/public/js/education/lms/pages/CoursePage.vue b/erpnext/public/js/education/lms/pages/CoursePage.vue
index 56656c5..eb64ec5 100644
--- a/erpnext/public/js/education/lms/pages/CoursePage.vue
+++ b/erpnext/public/js/education/lms/pages/CoursePage.vue
@@ -3,7 +3,7 @@
 	<TopSection v-bind:title="course.course_name" v-bind:description="course.description">
     </TopSection>
 	<CardList :title="'Topics'" :description="''" :sectionType="'section-padding section-bg'">
-        <TopicCard slot="card-list-slot" v-for="topic in topicData" :topic="topic" :course="course.course_name" :program_name="program_name" :key="topic.name"/>
+        <TopicCard slot="card-list-slot" v-for="topic in topicData" :topic="topic" :course_name="course_name" :program_name="program_name" :key="topic.name"/>
     </CardList>
 </div>
 </template>
diff --git a/erpnext/public/js/education/lms/routes.js b/erpnext/public/js/education/lms/routes.js
index 4428c74..7f06c78 100644
--- a/erpnext/public/js/education/lms/routes.js
+++ b/erpnext/public/js/education/lms/routes.js
@@ -24,7 +24,7 @@
 	},
 	{
 		name: 'content',
-		path: '/Program/:program_name/:course/:topic/:type/:content',
+		path: '/Program/:program_name/:course_name/:topic/:type/:content',
 		component: ContentPage,
 		props: true,
 		beforeEnter: (to, from, next) => {
diff --git a/erpnext/www/lms.py b/erpnext/www/lms.py
index b8aee4b..c2a8bd5 100644
--- a/erpnext/www/lms.py
+++ b/erpnext/www/lms.py
@@ -190,6 +190,33 @@
 		return {'flag':'Continue', 'content_type': next_item['content_type'], 'content': next_item['content']}
 
 @frappe.whitelist()
+def get_topic_meta(topic_name, course_name, program_name):
+	"""
+	Return the porgress of a course in a program as well as the content to continue from.
+		:param topic_name:
+		:param course_name:
+		:param program_name:
+	"""
+	print(locals())
+	course_enrollment = utils.get_course_enrollment(course_name)
+	program_enrollment = utils.get_program_enrollment(program_name)
+	student = frappe.get_doc("Student", utils.get_current_student())
+	if not program_enrollment:
+		return None
+	if not course_enrollment:
+		utils.enroll_in_course(course_name, program_name)
+	progress = course_enrollment.get_progress(student)
+	print(progress)
+	count = sum([activity['is_complete'] for activity in progress])
+	if count == 0:
+		return {'flag':'Start Course', 'content_type': progress[0]['content_type'], 'content': progress[0]['content']}
+	elif count == len(progress):
+		return {'flag':'Completed', 'content_type': progress[0]['content_type'], 'content': progress[0]['content']}
+	elif count < len(progress):
+		next_item = next(item for item in progress if item['is_complete']==False)
+		return {'flag':'Continue', 'content_type': next_item['content_type'], 'content': next_item['content']}
+
+@frappe.whitelist()
 def get_program_progress(program_name):
 	import math
 	program = frappe.get_doc("Program", program_name)
