diff --git a/erpnext/public/build.json b/erpnext/public/build.json
index c9b107c..1abb2fe 100644
--- a/erpnext/public/build.json
+++ b/erpnext/public/build.json
@@ -55,7 +55,7 @@
         "stock/dashboard/item_dashboard_list.html",
         "stock/dashboard/item_dashboard.js"
     ],
-    "js/academy.min.js": [
+    "js/lms.min.js": [
         "public/js/education/lms/lms.js"
     ]
 }
diff --git a/erpnext/public/js/education/lms/components/Article.vue b/erpnext/public/js/education/lms/components/Article.vue
index 7fc1173..397b22e 100644
--- a/erpnext/public/js/education/lms/components/Article.vue
+++ b/erpnext/public/js/education/lms/components/Article.vue
@@ -1,8 +1,8 @@
 <template>
 <div>
-    <Title :title="contentData.title" :author="contentData.author" :publishDate="contentData.publish_date">
+    <ContentTitle :title="contentData.title" :author="contentData.author" :publishDate="contentData.publish_date">
         <slot></slot>
-    </Title>
+    </ContentTitle>
     <section class="article-content-section">
         <div class='container'>
             <div class="content" v-html="contentData.content"></div>
@@ -17,7 +17,7 @@
 </div>
 </template>
 <script>
-import Title from './Title.vue'
+import ContentTitle from './ContentTitle.vue'
 export default {
 	props: ['content', 'type'],
 	name: 'Article',
@@ -27,18 +27,15 @@
     	}
     },
     mounted() {
-    	frappe.call({
-    		method: "erpnext.www.lms.get_content",
-    		args: {
-    			content_name: this.content,
-    			content_type: this.type
-    		}
-    	}).then(r => {
-    			this.contentData = r.message
-    	});
+    	this.getContent().then(data => this.contentData = data);
+    },
+    methods: {
+        getContent() {
+            return frappe.db.get_doc(this.type, this.content)
+        }
     },
     components: {
-        Title
+        ContentTitle
     }
 };
 </script>
diff --git a/erpnext/public/js/education/lms/components/CardList.vue b/erpnext/public/js/education/lms/components/CardList.vue
index 0c03cf6..8f6f7c7 100644
--- a/erpnext/public/js/education/lms/components/CardList.vue
+++ b/erpnext/public/js/education/lms/components/CardList.vue
@@ -3,9 +3,9 @@
 	<div class='container'>
 		<h3 class='text-center' v-html="title"></h3>
 		<p class='lead text-center' v-html="description"></p>
-		<slot></slot>
+		<slot name="card-list-slot"></slot>
 		<div class='mt-4 text-center'>
-			<a class="btn btn-primary btn-lg" href="/program">View All</a>
+			<slot name="list-bottom"></slot>
 		</div>
 	</div>
 </section>
diff --git a/erpnext/public/js/education/lms/components/ProgramCard.vue b/erpnext/public/js/education/lms/components/ProgramCard.vue
index 23e7a96..6bd8532 100644
--- a/erpnext/public/js/education/lms/components/ProgramCard.vue
+++ b/erpnext/public/js/education/lms/components/ProgramCard.vue
@@ -57,7 +57,7 @@
                 }
         },
         programPageRoute() {
-            return `Program/${this.program.name}`
+            return { name: 'program', params: { program_name: this.program.name }}
         },
         isEnrolled() {
             return lms.store.enrolledPrograms.has(this.program.name)
diff --git a/erpnext/public/js/education/lms/components/Video.vue b/erpnext/public/js/education/lms/components/Video.vue
index 26d3bf6..c13d0db 100644
--- a/erpnext/public/js/education/lms/components/Video.vue
+++ b/erpnext/public/js/education/lms/components/Video.vue
@@ -46,15 +46,12 @@
     	}
     },
     mounted() {
-    	frappe.call({
-    		method: "erpnext.www.lms.get_content",
-    		args: {
-    			content_name: this.content,
-    			content_type: this.type
-    		}
-    	}).then(r => {
-    			this.contentData = r.message
-    	});
+    	this.getContent().then(data => this.contentData = data);
     },
+    methods: {
+        getContent() {
+            return frappe.db.get_doc(this.type, this.content)
+        }
+    }
 };
 </script>
diff --git a/erpnext/public/js/education/lms/pages/CoursePage.vue b/erpnext/public/js/education/lms/pages/CoursePage.vue
index 477de46..f838575 100644
--- a/erpnext/public/js/education/lms/pages/CoursePage.vue
+++ b/erpnext/public/js/education/lms/pages/CoursePage.vue
@@ -1,7 +1,7 @@
 <template>
 	<div>
 		<component v-bind:is="currentComponent" :content="content" :type="type">
-			<Navigation :nextContent="nextContent" :nextContentType="nextContentType"/>
+			<ContentNavigation :nextContent="nextContent" :nextContentType="nextContentType"/>
 		</component>
 	</div>
 </template>
@@ -9,7 +9,7 @@
 import Article from "../components/Article.vue"
 import Quiz from "../components/Quiz.vue"
 import Video from "../components/Video.vue"
-import Navigation from "../components/Navigation.vue"
+import ContentNavigation from "../components/ContentNavigation.vue"
 
 export default {
 	props:['program_name', 'course', 'type', 'content'],
@@ -50,7 +50,7 @@
 		Article,
 		Video,
 		Quiz,
-		Navigation
+		ContentNavigation
 	}
 };
 </script>
diff --git a/erpnext/public/js/education/lms/pages/Home.vue b/erpnext/public/js/education/lms/pages/Home.vue
index f823d38..b312084 100644
--- a/erpnext/public/js/education/lms/pages/Home.vue
+++ b/erpnext/public/js/education/lms/pages/Home.vue
@@ -4,11 +4,13 @@
         <TopSectionButton/>
     </TopSection>
 	<CardList :title="'Featured Programs'" :description="'Master ERPNext'">
-        <ProgramCard v-for="item in featuredPrograms" :key="item.program.name" :program="item.program" :enrolled="item.is_enrolled"/>
+        <ProgramCard slot="card-list-slot" v-for="item in featuredPrograms" :key="item.program.name" :program="item.program" :enrolled="item.is_enrolled"/>
+        <AButton slot="list-bottom" :type="'primary'" :size="'lg'" :route="'List/Program'">View All</AButton>
     </CardList>
 </div>
 </template>
 <script>
+import Button from '../components/Button.vue';
 import TopSection from "../components/TopSection.vue"
 import CardList from "../components/CardList.vue"
 import ProgramCard from "../components/ProgramCard.vue"
@@ -19,11 +21,12 @@
     data() {
     	return{
     		portal: {},
-            featuredPrograms: [],
+            featuredPrograms: {},
             // enrolledPrograms: new Set()
     	}
     },
     components: {
+        AButton: Button,
 		TopSection,
         CardList,
         ProgramCard,
diff --git a/erpnext/public/js/education/lms/pages/ListPage.vue b/erpnext/public/js/education/lms/pages/ListPage.vue
new file mode 100644
index 0000000..3b48a6b
--- /dev/null
+++ b/erpnext/public/js/education/lms/pages/ListPage.vue
@@ -0,0 +1,51 @@
+<template>
+	<div>
+		<TopSection :title="portal.title" :description="portal.description">
+        	<AButton :type="'primary'" :size="'lg'" :route="{ name: 'signup'}">Sign Up</AButton>
+    	</TopSection>
+		<CardList :title="'All Programs'" :description="''">
+			<ProgramCard slot="card-list-slot" v-for="item in masterData" :key="item.program.name" :program="item.program" :enrolled="item.is_enrolled"/>
+		</CardList>
+	</div>
+</template>
+<script>
+import ProgramCard from '../components/ProgramCard.vue';
+import CourseCard from "../components/CourseCard.vue"
+import Button from '../components/Button.vue';
+import TopSection from "../components/TopSection.vue"
+import CardList from "../components/CardList.vue"
+
+
+export default {
+	props: ['master'],
+    name: "ListPage",
+    components: {
+        AButton: Button,
+		CourseCard,
+		ProgramCard,
+		CardList,
+		TopSection		
+	},
+	data() {
+		return {
+			portal: {},
+			masterData: {}
+		}
+	},
+	mounted() {
+        this.getPortalDetails().then(data => this.portal = data);
+        this.getMaster().then(data => this.masterData = data);
+    },
+    methods: {
+        // updateEnrolledPrograms(){
+        //     return lms.call("get_program_enrollments")
+        // },
+        getPortalDetails() {
+            return lms.call("get_portal_details")
+        },
+        getMaster() {
+            return lms.call("get_all_programs")
+        }
+    }
+};
+</script>
\ No newline at end of file
diff --git a/erpnext/public/js/education/lms/pages/ProgramPage.vue b/erpnext/public/js/education/lms/pages/ProgramPage.vue
index c0d4f15..bc0f267 100644
--- a/erpnext/public/js/education/lms/pages/ProgramPage.vue
+++ b/erpnext/public/js/education/lms/pages/ProgramPage.vue
@@ -1,16 +1,13 @@
 <template>
 <div>
 	<TopSection v-bind:title="program.program_name" v-bind:description="program.description">
-		<!-- <a-button @click="startCourse">Start Course</a-button>
-		<a-button @click="continueCourse">Continue Course</a-button> -->
     </TopSection>
 	<CardList :title="'Courses'" :description="''">
-        <CourseCard v-for="course in course_data" :course="course.course" :program_name="program_name" :courseMeta="course.meta" :key="course.meta.flag"/>
+        <CourseCard slot="card-list-slot" v-for="course in course_data" :course="course.course" :program_name="program_name" :courseMeta="course.meta" :key="course.course.name + course.meta.flag"/>
     </CardList>
 </div>
 </template>
 <script>
-import Button from '../components/Button.vue';
 import TopSection from "../components/TopSection.vue"
 import CardList from "../components/CardList.vue"
 import CourseCard from "../components/CourseCard.vue"
@@ -20,7 +17,6 @@
 	props: ['program_name'],
     name: "ProgramPage",
     components: {
-        AButton: Button,
 		TopSection,
 		CardList,
 		CourseCard
diff --git a/erpnext/public/js/education/lms/routes.js b/erpnext/public/js/education/lms/routes.js
index 450e655..c28dd19 100644
--- a/erpnext/public/js/education/lms/routes.js
+++ b/erpnext/public/js/education/lms/routes.js
@@ -1,11 +1,22 @@
 import Home from "./pages/Home.vue";
 import ProgramPage from "./pages/ProgramPage.vue";
 import CoursePage from "./pages/CoursePage.vue";
+import ListPage from "./pages/ListPage.vue";
 
 const routes = [
 	{name: 'home', path: '', component: Home},
 	{name: 'program', path: '/Program/:program_name', component: ProgramPage, props: true},
 	{name: 'content', path: '/Program/:program_name/:course/:type/:content', component: CoursePage, props: true},
+	{name: 'list', path: '/List/:master', component: ListPage, props: true},
+	{
+		name: 'signup',
+		path: '/Signup',
+		beforeEnter(to, from, next) {
+        	window.location = window.location.origin.toString() +'/login#signup'
+    	},
+		component: ListPage,
+		props: true
+	},
 ];
 
 export default routes;
\ No newline at end of file
diff --git a/erpnext/www/lms.html b/erpnext/www/lms.html
index 66fae7a..372e874 100644
--- a/erpnext/www/lms.html
+++ b/erpnext/www/lms.html
@@ -1,8 +1,8 @@
 {% extends "templates/web.html" %}
 
-{% block title %}{{ heading or "Academy"}}{% endblock %}
+{% block title %}{{ heading or "LMS"}}{% endblock %}
 
 {% block page_content %}
 <div id="lms-app"></div>
-<script type="text/javascript" src="/assets/js/academy.min.js"></script>
+<script type="text/javascript" src="/assets/js/lms.min.js"></script>
 {% endblock %}
\ No newline at end of file
diff --git a/erpnext/www/lms.py b/erpnext/www/lms.py
index ab01aed..bb5daaf 100644
--- a/erpnext/www/lms.py
+++ b/erpnext/www/lms.py
@@ -28,6 +28,15 @@
 	else:
 		return None
 
+@frappe.whitelist(allow_guest=True)
+def get_all_programs():
+	program_names = frappe.get_all("Program", filters={"is_published": True})
+	if program_names:
+		featured_list = [get_program(program['name']) for program in program_names]
+		return featured_list
+	else:
+		return None
+
 def get_program(program_name):
 	program = frappe.get_doc('Program', program_name)
 	is_enrolled = check_program_enrollment(program_name)
