diff --git a/erpnext/education/doctype/course_enrollment/course_enrollment.json b/erpnext/education/doctype/course_enrollment/course_enrollment.json
index 686f2c1..47bb973 100644
--- a/erpnext/education/doctype/course_enrollment/course_enrollment.json
+++ b/erpnext/education/doctype/course_enrollment/course_enrollment.json
@@ -144,6 +144,40 @@
    "set_only_once": 0, 
    "translatable": 0, 
    "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "0", 
+   "fieldname": "completed", 
+   "fieldtype": "Check", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Completed", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 0, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "translatable": 0, 
+   "unique": 0
   }
  ], 
  "has_web_view": 0, 
@@ -156,7 +190,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2018-10-19 17:46:46.595749", 
+ "modified": "2018-10-24 16:05:02.961543", 
  "modified_by": "Administrator", 
  "module": "Education", 
  "name": "Course Enrollment", 
diff --git a/erpnext/education/utils.py b/erpnext/education/utils.py
index c6ca6ef..f298362 100644
--- a/erpnext/education/utils.py
+++ b/erpnext/education/utils.py
@@ -99,6 +99,8 @@
 
 @frappe.whitelist()
 def add_activity(content_type, content, course, program):
+	if content_type == "Quiz":
+		pass
 	enrollment = get_course_enrollment(course, frappe.session.user)
 	if check_activity_exists(enrollment['name'], content_type, content):
 		pass
@@ -167,4 +169,18 @@
 		return frappe.get_all('Student', filters={'student_email_id': email}, fields=['name'])[0].name
 	except IndexError:
 		frappe.throw("Student with email {0} does not exist".format(email))
+		return None
+
+@frappe.whitelist()
+def mark_course_complete(course):
+	try:
+		enrollment_name = get_course_enrollment(course, frappe.session.user)
+		enrollment = frappe.get_doc("Course Enrollment", enrollment_name)
+		enrollment.completed = 1
+		enrollment.save()
+		pass
+	except:
+		import traceback
+		traceback.print_exc()
+		frappe.throw("The user is not enrolled for the course {course}".format(course=course))
 		return None
\ No newline at end of file
diff --git a/erpnext/www/lms/course.html b/erpnext/www/lms/course.html
index 11b134d..799480b 100644
--- a/erpnext/www/lms/course.html
+++ b/erpnext/www/lms/course.html
@@ -1,13 +1,8 @@
 {% extends "frappe_theme/templates/base.html" %}
 {% block title %}ERPNext Academy{% endblock %}
 {% from "templates/includes/media.html" import media %}
-{% block head_include %}
-<meta name="description" content="ERPNext Academy is a learnig platform to gain expertise in the world's top 100% open source ERP software." />
-<meta name="keywords" content="ERP Software, Cloud ERP, Open Source ERP, Accounting Software, Online ERP, Online Accounting, ERP for small business, Learn ERP, ERPNext Academy, Learn ERPNext, Learn Accounting" />
-{% endblock %}
 {% block content %}
 <div id="content-holder" data-type="{{ content_type }}" data-content="{{ content.name }}" data-course="{{ course_name }}" data-program="{{ program_name }}">
-
 {% include "www/lms/templates/includes/" + content_type.lower() + ".html" %}
 
 </div>
diff --git a/erpnext/www/lms/course.js b/erpnext/www/lms/course.js
index d24c024..b4eb8f7 100644
--- a/erpnext/www/lms/course.js
+++ b/erpnext/www/lms/course.js
@@ -35,3 +35,13 @@
         }
     })
 }
+
+function addFinalActivity() {
+    addActivity()
+    frappe.call({
+        method: "erpnext.education.utils.mark_course_complete",
+        args: {
+            "course": $('#content-holder').data('course'),
+        },
+    })
+}
diff --git a/erpnext/www/lms/index.html b/erpnext/www/lms/index.html
index 444bbde..c39ee6e 100644
--- a/erpnext/www/lms/index.html
+++ b/erpnext/www/lms/index.html
@@ -3,11 +3,6 @@
 
 {% from "templates/includes/media.html" import media %}
 
-{% block head_include %}
-<meta name="description" content="ERPNext Academy is a learnig platform to gain expertise in the world's top 100% open source ERP software." />
-<meta name="keywords" content="ERP Software, Cloud ERP, Open Source ERP, Accounting Software, Online ERP, Online Accounting, ERP for small business, Learn ERP, ERPNext Academy, Learn ERPNext, Learn Accounting" />
-{% endblock %}
-
 {% macro featured_card(program_name, description, hero_image, code) %}
 <div class='card-deck mt-5'>
 	<div class="card">
diff --git a/erpnext/www/lms/program.html b/erpnext/www/lms/program.html
index 00e13cb..bee0136 100644
--- a/erpnext/www/lms/program.html
+++ b/erpnext/www/lms/program.html
@@ -1,11 +1,6 @@
 {% extends "frappe_theme/templates/base.html" %}
 {% block title %}ERPNext Academy{% endblock %}
 
-{% block head_include %}
-<meta name="description" content="ERPNext Academy is a learnig platform to gain expertise in the world's top 100% open source ERP software." />
-<meta name="keywords" content="ERP Software, Cloud ERP, Open Source ERP, Accounting Software, Online ERP, Online Accounting, ERP for small business, Learn ERP, ERPNext Academy, Learn ERPNext, Learn Accounting" />
-{% endblock %}
-
 {% macro course_card(course) %}
 <div class="card mt-3" data-list="getting-started">
     <div class='card-body'>
@@ -22,7 +17,11 @@
                 </span>
             </div>
             <div class='text-center col-xs-4 col-sm-3 col-md-2'>
+                {% if not check_complete(course.name) %}
                 <a class='btn btn-primary btn-sm btn-block' href="/lms/course?program={{ program.program_code }}&course={{ course.name }}&type={{course.course_content[0].content_type}}&content={{ course.course_content[0].content }}">Start Course</a>
+                {% else %}
+                <a class='btn btn-success btn-sm btn-block' href="/lms/course?program={{ program.program_code }}&course={{ course.name }}&type={{course.course_content[0].content_type}}&content={{ course.course_content[0].content }}">Complete</a>
+                {% endif %}
             </div>
         </div>
     </div>
diff --git a/erpnext/www/lms/program.py b/erpnext/www/lms/program.py
index 10bdd6b..a8c9c0e 100644
--- a/erpnext/www/lms/program.py
+++ b/erpnext/www/lms/program.py
@@ -8,4 +8,14 @@
     course_list = program.get_course_list()
 
     context.program = program
-    context.course_list = course_list
\ No newline at end of file
+    context.course_list = course_list
+    context.check_complete = check_complete
+
+
+def check_complete(course_name):
+	try:
+		enrollment = utils.get_course_enrollment(course_name, frappe.session.user)
+		completed = frappe.get_value('Course Enrollment', enrollment['name'], "completed")
+		return bool(completed)
+	except:
+		return False
\ No newline at end of file
diff --git a/erpnext/www/lms/templates/includes/lms-nav.html b/erpnext/www/lms/templates/includes/lms-nav.html
index 64932f6..efd1b8b 100644
--- a/erpnext/www/lms/templates/includes/lms-nav.html
+++ b/erpnext/www/lms/templates/includes/lms-nav.html
@@ -2,5 +2,5 @@
 {% if next_content != None %}
 <a class='btn btn-primary' onclick="addActivity()" href="/lms/course?program={{ program_name }}&course={{ course_name }}&type={{ next_content_type }}&content={{ next_content }}">Next</a>
 {% else %}
-<a class='btn btn-primary' onclick="addActivity()" href="/lms/program?program={{ program_name }}">Finish Course</a>
+<a class='btn btn-primary' onclick="addFinalActivity()" href="/lms/program?program={{ program_name }}">Finish Course</a>
 {% endif %}
\ No newline at end of file
