diff --git a/frontend/src/components/BrowseThemes.vue b/frontend/src/components/BrowseThemes.vue
index 9575da5f..3e63a2f9 100644
--- a/frontend/src/components/BrowseThemes.vue
+++ b/frontend/src/components/BrowseThemes.vue
@@ -1,9 +1,57 @@
-
+
+
+
+
+
+
+
diff --git a/frontend/src/components/ThemeCard.vue b/frontend/src/components/ThemeCard.vue
new file mode 100644
index 00000000..f84a9c2f
--- /dev/null
+++ b/frontend/src/components/ThemeCard.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+ {{ t("read-more") }}
+
+
+
+
+
+
+
diff --git a/frontend/src/i18n/locale/en.json b/frontend/src/i18n/locale/en.json
index 2f6555a4..18be114d 100644
--- a/frontend/src/i18n/locale/en.json
+++ b/frontend/src/i18n/locale/en.json
@@ -28,5 +28,6 @@
"upper-secondary": "14-16 years old",
"high-school": "16-18 years old",
"older": "18 and older"
- }
+ },
+ "read-more": "read-more"
}
diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts
index 08618aac..0d1b5a0d 100644
--- a/frontend/src/router/index.ts
+++ b/frontend/src/router/index.ts
@@ -13,6 +13,7 @@ import UserClasses from "@/views/classes/UserClasses.vue";
import UserAssignments from "@/views/classes/UserAssignments.vue";
import authState from "@/services/auth/auth-service.ts";
import UserHomePage from "@/views/homepage/UserHomePage.vue";
+import SingleTheme from "@/views/SingleTheme.vue";
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
@@ -63,6 +64,12 @@ const router = createRouter({
],
},
+ {
+ path: "/theme/:id",
+ name: "Theme",
+ component: SingleTheme,
+ meta: { requiresAuth: true },
+ },
{
path: "/assignment/create",
name: "CreateAssigment",
@@ -112,7 +119,7 @@ router.beforeEach(async (to, from, next) => {
// Verify if user is logged in before accessing certain routes
if (to.meta.requiresAuth) {
if (!authState.isLoggedIn.value) {
- //next("/login");
+ //Next("/login");
next();
} else {
next();
diff --git a/frontend/src/utils/constants.ts b/frontend/src/utils/constants.ts
new file mode 100644
index 00000000..32ccb76f
--- /dev/null
+++ b/frontend/src/utils/constants.ts
@@ -0,0 +1,22 @@
+import { ref } from "vue";
+
+export const THEMESITEMS = ref([
+ "all-themes",
+ "culture",
+ "electricity-and-mechanics",
+ "nature-and-climate",
+ "agriculture",
+ "society",
+ "math",
+ "technology",
+ "algorithms",
+]);
+
+export const AGEITEMS = ref([
+ "all-ages",
+ "primary-school",
+ "lower-secondary",
+ "upper-secondary",
+ "high-school",
+ "older",
+]);
diff --git a/frontend/src/views/SingleTheme.vue b/frontend/src/views/SingleTheme.vue
new file mode 100644
index 00000000..85af7153
--- /dev/null
+++ b/frontend/src/views/SingleTheme.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/frontend/src/views/homepage/UserHomePage.vue b/frontend/src/views/homepage/UserHomePage.vue
index cfd4d7db..e90f0262 100644
--- a/frontend/src/views/homepage/UserHomePage.vue
+++ b/frontend/src/views/homepage/UserHomePage.vue
@@ -1,12 +1,11 @@