diff --git a/erpnext/public/js/education/web-academy.js b/erpnext/public/js/education/web-academy.js
index f37b8f0..9b96e6a 100644
--- a/erpnext/public/js/education/web-academy.js
+++ b/erpnext/public/js/education/web-academy.js
@@ -1,5 +1,6 @@
 import Vue from 'vue/dist/vue.js';
 import VueRouter from 'vue-router/dist/vue-router.js'
+
 import AcademyRoot from "./web-academy/AcademyRoot.vue";
 import AcademyHome from "./web-academy/pages/AcademyHome.vue";
 import AcademyProgramPage from "./web-academy/pages/AcademyProgramPage.vue";
@@ -7,21 +8,56 @@
 
 Vue.use(VueRouter)
 
+
 const routes = [
 	{name: 'home', path: '', component: AcademyHome},
 	{name: 'program', path: '/Program/:code', component: AcademyProgramPage, props: true},
 	{name: 'content', path: '/Program/:code/:course/:type/:content', component: AcademyCoursePage, props: true},
 ];
 
+var store = {
+	debug: true,
+	state: {
+		completedCourses: new Set(),
+		currentEnrollment: '',
+		currentStudentID: '',
+	},
+	setCourseEnrollment (enrollment) {
+	    if (this.debug) console.log('setCourseEnrollment triggered with', enrollment)
+	    this.state.currentEnrollment = enrollment
+	},
+	addCompletedCourses (courseName){
+		if (this.debug) console.log('addCompletedCourses triggered with', courseName)
+		this.state.completedCourses.add(courseName)
+	},
+	checkCourseCompletion (courseName){
+		return this.state.completedCourses.has(courseName)
+	},
+	updateState (){
+		if (this.debug) console.log('Updating States')
+		frappe.call("erpnext.www.academy.get_state").then( r => {
+			this.state.completedCourses.clear()
+			for(var ii=0; ii < r.message.length; ii++){
+				this.state.completedCourses.add(r.message[ii])
+			}
+		})
+		if (this.debug) console.log('Updated State', this.state.completedCourses)
+	}
+}
+
 const router = new VueRouter({
 	routes: routes,
 });
 
 frappe.ready(() => {
 	window.v = new Vue({
-		el: "#web-academy",
+		el: "#academy",
 		router: router,
+		data: store,
 		template: "<academy-root/>",
-		components: { AcademyRoot }
+		components: { AcademyRoot },
+		created: function() {
+			store.updateState()
+		}
 	});
 })
\ No newline at end of file
