diff --git a/erpnext/public/js/education/lms/components/ProfileInfo.vue b/erpnext/public/js/education/lms/components/ProfileInfo.vue
new file mode 100644
index 0000000..a6118a0
--- /dev/null
+++ b/erpnext/public/js/education/lms/components/ProfileInfo.vue
@@ -0,0 +1,89 @@
+<template>
+<section>
+		<div class='container'>
+			<div class="row">
+				<div class="col-sm-3 text-center">
+					<span class="sidebar-standard-image" title="Lorem Ipsum">
+						<span v-if="avatar" class="avatar-frame" :style="avatarStyle">
+						</span>
+						<div v-else class="standard-image" style="background-color: #fafbfc;">
+							{{ abbr }}
+						</div>
+					</span>
+				</div>
+				<div class="col-sm-9">
+					<div>
+						<h3>{{ fullName }}</h3>
+						<ul>
+							<li class="row">
+								<div class="col-md-3 col-sm-4 pr-0 text-muted">Email:</div>
+								<div class="col-md-9 col-sm-8">{{ email }}</div>
+							</li>
+							<li class="row">
+								<div class="col-md-3 col-sm-4 pr-0 text-muted">Date of Joining:</div>
+								<div class="col-md-9 col-sm-8">{{ joiningDate }}</div>
+							</li>
+							<!-- <li><span class="text-muted">Date of Joining: </span>3rd July 2018</li> -->
+							<!-- <li><span class="text-muted">Programs Enrolled: </span>ERPNext Certified Professional 2018</li> -->
+							<li class="row">
+								<div class="col-md-3 col-sm-4 pr-0 text-muted">Programs Enrolled:</div>
+								<div class="col-md-9 col-sm-8">
+									<ul>
+										<li v-for="program in enrolledPrograms" :key="program">{{ program }}</li>
+									</ul>
+								</div>
+							</li>
+						</ul>
+					</div>
+					<a href="/update-profile" class="edit-button text-muted"><i class="fa fa-pencil" aria-hidden="true"></i></a>
+				</div>
+			</div>
+			<div ></div>
+		</div>
+	</section>
+</template>
+<script>
+
+export default {
+	props: ['enrolledPrograms'],
+	name: "ProfileInfo",
+	data() {
+		return {
+			avatar: frappe.get_cookie("user_image"),
+			fullName: frappe.get_cookie("full_name"),
+			abbr: frappe.get_abbr(frappe.get_cookie("full_name")),
+			email: frappe.session.user,
+			joiningDate: 'fetching...'
+		}
+	},
+	mounted(){
+		this.getJoiningDate().then(data => this.joiningDate = lms.moment(String(data)).format('D MMMM YYYY'))
+	},
+	computed: {
+		avatarStyle() {
+			return `background-image: url("${this.avatar}")`
+		},
+	},
+	methods: {
+		getJoiningDate() {
+			return lms.call("get_joining_date")
+		}
+	}
+};
+</script>
+<style scoped>
+	.edit-button{
+		position:absolute;
+		top:0;
+		right:0;
+	}
+	.standard-image {
+		font-size: 72px;
+		border-radius: 6px;
+	}
+	ul {
+        list-style-type: none;
+        padding: 0;
+		margin: 0
+    }
+</style>
\ No newline at end of file
diff --git a/erpnext/public/js/education/lms/components/ProgressCard.vue b/erpnext/public/js/education/lms/components/ProgressCard.vue
index 9666ab4..ad38de9 100644
--- a/erpnext/public/js/education/lms/components/ProgressCard.vue
+++ b/erpnext/public/js/education/lms/components/ProgressCard.vue
@@ -20,12 +20,11 @@
             </div>
             <div class='course-buttons text-center col-xs-5 col-sm-4 col-md-3'>
                 <a-button
-                    v-if="programData.name == 'ECP2018'"
-                    :type="'success'"
+                    :type="buttonType"
                     size="sm btn-block"
-                    :route="{name: 'home'}"
+                    :route="programRoute"
                 >
-                    Download Certificate
+                    {{ buttonName }}
                 </a-button>
             </div>
         </div>
@@ -53,6 +52,30 @@
 				})
         },
     },
+    computed: {
+        programRoute() {
+            return {name: 'program', params: {program_name: this.program}}
+        },
+        buttonType() {
+            if (this.programData.percentage == 100 ){
+                return "success"
+            }
+            else if (this.programData.percentage == "0" ) {
+                return "secondary"
+            }
+            else {
+                return "info"
+            }
+        },
+        buttonName() {
+            if (this.programData.percentage == 100 ){
+                return "Program Complete"
+            }
+            else {
+                return `${this.programData.percentage}% Completed`
+            }
+        }
+    },
     components: {
         AButton
     },
diff --git a/erpnext/public/js/education/lms/lms.js b/erpnext/public/js/education/lms/lms.js
index d45b4ef..3d2bd50 100644
--- a/erpnext/public/js/education/lms/lms.js
+++ b/erpnext/public/js/education/lms/lms.js
@@ -1,5 +1,6 @@
 import Vue from 'vue/dist/vue.js';
 import VueRouter from 'vue-router/dist/vue-router.js'
+import moment from 'moment/min/moment.min.js'
 
 import lmsRoot from "./lmsRoot.vue";
 import routes from './routes';
@@ -17,6 +18,8 @@
 	frappe.provide('lms')
 	// frappe.utils.make_event_emitter(lms);
 
+	lms.moment = moment
+
 	lms.store = new Vue({
 		data: store,
 		methods: {
diff --git a/erpnext/public/js/education/lms/pages/ProfilePage.vue b/erpnext/public/js/education/lms/pages/ProfilePage.vue
index 59d5aaa..6d303c7 100644
--- a/erpnext/public/js/education/lms/pages/ProfilePage.vue
+++ b/erpnext/public/js/education/lms/pages/ProfilePage.vue
@@ -1,45 +1,6 @@
 <template>
 <div>
-	<section>
-		<div class='container'>
-			<div class="row">
-				<div class="col-sm-3 text-center">
-					<span class="sidebar-standard-image" title="Lorem Ipsum">
-						<div class="standard-image" style="background-color: #fafbfc;">
-							LP
-						</div>
-					</span>
-				</div>
-				<div class="col-sm-9">
-					<div>
-						<h3>Lorem Ipsum</h3>
-						<ul>
-							<li class="row">
-								<div class="col-md-3 col-sm-4 pr-0 text-muted">Email:</div>
-								<div class="col-md-9 col-sm-8">lorem@example.com</div>
-							</li>
-							<li class="row">
-								<div class="col-md-3 col-sm-4 pr-0 text-muted">Date of Joining:</div>
-								<div class="col-md-9 col-sm-8">18th July 2018</div>
-							</li>
-							<!-- <li><span class="text-muted">Date of Joining: </span>3rd July 2018</li> -->
-							<!-- <li><span class="text-muted">Programs Enrolled: </span>ERPNext Certified Professional 2018</li> -->
-							<li class="row">
-								<div class="col-md-3 col-sm-4 pr-0 text-muted">Programs Enrolled:</div>
-								<div class="col-md-9 col-sm-8">
-									<ul>
-										<li>Frappe Certified ERPNext Professional</li>
-										<li>Frappe Certified Developer</li>
-									</ul>
-								</div>
-							</li>
-						</ul>
-					</div>
-					<a href="" class="edit-button text-muted"><i class="fa fa-pencil" aria-hidden="true"></i></a>
-				</div>
-			</div>
-		</div>
-	</section>
+	<ProfileInfo :enrolledPrograms="enrolledPrograms"></ProfileInfo>
 	<CardList :title="'Your Progress'" :description="''">
         <ProgressCard slot="card-list-slot" v-for="program in enrolledPrograms" :program="program" :key="program"/>
     </CardList>
@@ -50,6 +11,7 @@
 import TopSection from "../components/TopSection.vue"
 import CardList from "../components/CardList.vue"
 import ProgressCard from "../components/ProgressCard.vue"
+import ProfileInfo from "../components/ProfileInfo.vue"
 
 
 export default {
@@ -58,6 +20,7 @@
         AButton: Button,
 		TopSection,
 		CardList,
+		ProfileInfo,		
 		ProgressCard		
 	},
 	data() {
@@ -74,20 +37,4 @@
         }
     }
 };
-</script>
-<style scoped>
-	.edit-button{
-		position:absolute;
-		top:0;
-		right:0;
-	}
-	.standard-image {
-		font-size: 72px;
-		border-radius: 6px;
-	}
-	ul {
-        list-style-type: none;
-        padding: 0;
-		margin: 0
-    }
-</style>
\ No newline at end of file
+</script>
\ No newline at end of file
diff --git a/erpnext/www/lms.py b/erpnext/www/lms.py
index 17afbae..d3d47d6 100644
--- a/erpnext/www/lms.py
+++ b/erpnext/www/lms.py
@@ -215,6 +215,7 @@
 	
 @frappe.whitelist()
 def get_program_progress(program_name):
+	import math
 	program = frappe.get_doc("Program", program_name)
 	program_enrollment = frappe.get_list("Program Enrollment", filters={'student': utils.get_current_student(), 'program': program_name })[0].name
 	program_meta = {}
@@ -231,4 +232,10 @@
 		program_meta['progress'] = progress
 		program_meta['name'] = program_name
 		program_meta['program'] = program.program_name
-		return program_meta
\ No newline at end of file
+		program_meta['percentage'] = math.ceil((sum([item['is_complete'] for item in progress] * 100)/len(progress)))
+		return program_meta
+
+@frappe.whitelist()
+def get_joining_date():
+	student = frappe.get_doc("Student", utils.get_current_student())
+	return student.joining_date
\ No newline at end of file
