diff --git a/app/package.json b/app/package.json
index 019d1004a6c33744bf0385d0c74833428de44a5a..04458fb8ff765f0f7b7b1f5d5859b245ac57ad6e 100644
--- a/app/package.json
+++ b/app/package.json
@@ -22,6 +22,7 @@
     "material-design-icons": "^3.0.1",
     "pinia": "^2.1.3",
     "pinia-plugin-persistedstate": "^3.1.0",
+    "primevue": "^3.31.0",
     "readline-sync": "^1.4.10",
     "register-service-worker": "^1.6.2",
     "sass": "^1.54.4",
diff --git a/app/src/main.js b/app/src/main.js
index 6579bf33b9f23f2f93304328d2f10f776af2474b..cf6c3660657fe808fc66bc6cff2c388560e171f0 100644
--- a/app/src/main.js
+++ b/app/src/main.js
@@ -16,7 +16,10 @@ import VueClipboard from 'vue3-clipboard'
 const piniaStore = createPinia()
 const isProduction = process.env.NODE_ENV === 'production'
 piniaStore.use(piniaPluginPersistedstate)
+import primeVue from 'primevue/config'
 
+import '../node_modules/primevue/resources/themes/lara-light-blue/theme.css'
+import '../node_modules/primevue/resources/primevue.min.css'
 var vm = createApp({
   render: () => h(App),
 })
@@ -24,6 +27,8 @@ window.app = vm
 vm.use(piniaStore)
 vm.$router = router
 vm.use(i18n)
+vm.use(primeVue)
+
 vm.use(router)
 vm.use(plugin, defaultConfig(formKitConfig))
 vm.use(defaultConfig)
diff --git a/app/src/router.js b/app/src/router.js
index f7931d01bb42b02a5c213a9013c3a1f3135cc684..ad8766260bf843fd97a921deb3d65c3df1a1ecfd 100644
--- a/app/src/router.js
+++ b/app/src/router.js
@@ -59,6 +59,12 @@ export default createRouter({
       component: loadView("Home"),
       meta: { title: "Home", lang: "en", icon: "mdi mdi-home-outline" },
     },
+    {
+      path: "/primeVueComponent",
+      name: "PrimeVueTable",
+      component: loadView("PrimeVueTable"),
+      meta: { title: "PrimeVueTable", lang: "en", icon: "mdi mdi-home-outline" },
+    },
     {
       path: "/formkitcomposition",
       name: "FormKitComposition",
diff --git a/app/src/views/Home.vue b/app/src/views/Home.vue
index b6429ea4184ca5ed45deb05149c055a428391023..8c49225ac16f60888459040e9a5f98c2ed550382 100644
--- a/app/src/views/Home.vue
+++ b/app/src/views/Home.vue
@@ -7,6 +7,15 @@
         LIST OF CORE FUNCTIONALITIES
   </p>
   <div class="grid grid-cols-3 gap-4">
+    <div class="card flex flex-row items-center justify-between" @click="$router.push({name: 'PrimeVueTable'})">
+      <div class="flex flex-row items-center">
+        <i class="isax isax-bold-stickynote me-2"></i>
+        <div class="card-title">
+          Prime Vue Table
+        </div>
+      </div>
+      <i class="isax isax-bold-arrow-right"></i>
+    </div>
     <div class="card flex flex-row items-center justify-between" @click="$router.push({name: 'TOTP'})">
       <div class="flex flex-row items-center">
         <i class="isax isax-bold-timer me-2"></i>
diff --git a/app/src/views/PrimeVueTable.vue b/app/src/views/PrimeVueTable.vue
new file mode 100644
index 0000000000000000000000000000000000000000..d91d4a23e199729b3fd81f605197fdcb9e4cab25
--- /dev/null
+++ b/app/src/views/PrimeVueTable.vue
@@ -0,0 +1,61 @@
+<template>
+	<div id="mTable" class="container-fluid">
+		<div class="row justify-content-center">
+			<div class="col-4">
+				<div class="box-login">
+					<div class="p-card p-component">
+						<h3 class="mb-4">
+							{{ msg }}
+						</h3>
+						<DataTable :id="idTable" :value="itemList" responsiveLayout="scroll">
+							<Column field="id" header="id"></Column>
+							<Column field="age" header="age"></Column>
+						</DataTable>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script>
+	import MQL from "@/plugins/mql.js"
+	import DataTable from "primevue/datatable"
+	import Column from "primevue/column"
+
+	export default {
+		name: "MTable",
+		data() {
+			return {
+				itemList: [],
+			}
+		},
+		components: {
+			DataTable,
+			Column,
+		},
+		mounted() {
+			this.getActivityData()
+		},
+		methods: {
+			// call for activity specific mql
+			getActivityData() {
+				new MQL()
+					.setActivity("o.[query_1el1NAwh6nMeZl1PhbzhP1TyQLf]")
+					.setData({})
+					.fetch("")
+					.then((rs) => {
+						let res = rs.getActivity("query_1el1NAwh6nMeZl1PhbzhP1TyQLf", true)
+						if (rs.isValid("query_1el1NAwh6nMeZl1PhbzhP1TyQLf")) {
+							// Write some intelligent logic here
+							console.log("Data Received:  ", res)
+							console.log(res)
+							this.itemList = res
+						} else {
+							rs.showErrorToast("query_1el1NAwh6nMeZl1PhbzhP1TyQLf")
+						}
+					})
+			},
+		},
+	}
+</script>