feat(frontend): Skelet voor de implementatie van views & services voor leerpaden aangemaakt.
This commit is contained in:
parent
30ec73a88d
commit
8b0fc4263f
7 changed files with 290 additions and 7 deletions
|
@ -1,7 +0,0 @@
|
||||||
<script setup lang="ts"></script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<main></main>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped></style>
|
|
|
@ -13,6 +13,7 @@ import UserDiscussions from "@/views/discussions/UserDiscussions.vue";
|
||||||
import UserClasses from "@/views/classes/UserClasses.vue";
|
import UserClasses from "@/views/classes/UserClasses.vue";
|
||||||
import UserAssignments from "@/views/classes/UserAssignments.vue";
|
import UserAssignments from "@/views/classes/UserAssignments.vue";
|
||||||
import authState from "@/services/auth/auth-service.ts";
|
import authState from "@/services/auth/auth-service.ts";
|
||||||
|
import LearningPathPage from "@/views/learning-paths/LearningPathPage.vue";
|
||||||
|
|
||||||
const router = createRouter({
|
const router = createRouter({
|
||||||
history: createWebHistory(import.meta.env.BASE_URL),
|
history: createWebHistory(import.meta.env.BASE_URL),
|
||||||
|
@ -99,6 +100,12 @@ const router = createRouter({
|
||||||
component: SingleDiscussion,
|
component: SingleDiscussion,
|
||||||
meta: { requiresAuth: true },
|
meta: { requiresAuth: true },
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: "/learningPath/:hruid/:language",
|
||||||
|
name: "LearningPath",
|
||||||
|
component: LearningPathPage,
|
||||||
|
meta: { requiresAuth: false }
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: "/:catchAll(.*)",
|
path: "/:catchAll(.*)",
|
||||||
name: "NotFound",
|
name: "NotFound",
|
||||||
|
|
186
frontend/src/services/learning-paths/language.ts
Normal file
186
frontend/src/services/learning-paths/language.ts
Normal file
|
@ -0,0 +1,186 @@
|
||||||
|
export enum Language {
|
||||||
|
Afar = 'aa',
|
||||||
|
Abkhazian = 'ab',
|
||||||
|
Afrikaans = 'af',
|
||||||
|
Akan = 'ak',
|
||||||
|
Albanian = 'sq',
|
||||||
|
Amharic = 'am',
|
||||||
|
Arabic = 'ar',
|
||||||
|
Aragonese = 'an',
|
||||||
|
Armenian = 'hy',
|
||||||
|
Assamese = 'as',
|
||||||
|
Avaric = 'av',
|
||||||
|
Avestan = 'ae',
|
||||||
|
Aymara = 'ay',
|
||||||
|
Azerbaijani = 'az',
|
||||||
|
Bashkir = 'ba',
|
||||||
|
Bambara = 'bm',
|
||||||
|
Basque = 'eu',
|
||||||
|
Belarusian = 'be',
|
||||||
|
Bengali = 'bn',
|
||||||
|
Bihari = 'bh',
|
||||||
|
Bislama = 'bi',
|
||||||
|
Bosnian = 'bs',
|
||||||
|
Breton = 'br',
|
||||||
|
Bulgarian = 'bg',
|
||||||
|
Burmese = 'my',
|
||||||
|
Catalan = 'ca',
|
||||||
|
Chamorro = 'ch',
|
||||||
|
Chechen = 'ce',
|
||||||
|
Chinese = 'zh',
|
||||||
|
ChurchSlavic = 'cu',
|
||||||
|
Chuvash = 'cv',
|
||||||
|
Cornish = 'kw',
|
||||||
|
Corsican = 'co',
|
||||||
|
Cree = 'cr',
|
||||||
|
Czech = 'cs',
|
||||||
|
Danish = 'da',
|
||||||
|
Divehi = 'dv',
|
||||||
|
Dutch = 'nl',
|
||||||
|
Dzongkha = 'dz',
|
||||||
|
English = 'en',
|
||||||
|
Esperanto = 'eo',
|
||||||
|
Estonian = 'et',
|
||||||
|
Ewe = 'ee',
|
||||||
|
Faroese = 'fo',
|
||||||
|
Fijian = 'fj',
|
||||||
|
Finnish = 'fi',
|
||||||
|
French = 'fr',
|
||||||
|
Frisian = 'fy',
|
||||||
|
Fulah = 'ff',
|
||||||
|
Georgian = 'ka',
|
||||||
|
German = 'de',
|
||||||
|
Gaelic = 'gd',
|
||||||
|
Irish = 'ga',
|
||||||
|
Galician = 'gl',
|
||||||
|
Manx = 'gv',
|
||||||
|
Greek = 'el',
|
||||||
|
Guarani = 'gn',
|
||||||
|
Gujarati = 'gu',
|
||||||
|
Haitian = 'ht',
|
||||||
|
Hausa = 'ha',
|
||||||
|
Hebrew = 'he',
|
||||||
|
Herero = 'hz',
|
||||||
|
Hindi = 'hi',
|
||||||
|
HiriMotu = 'ho',
|
||||||
|
Croatian = 'hr',
|
||||||
|
Hungarian = 'hu',
|
||||||
|
Igbo = 'ig',
|
||||||
|
Icelandic = 'is',
|
||||||
|
Ido = 'io',
|
||||||
|
SichuanYi = 'ii',
|
||||||
|
Inuktitut = 'iu',
|
||||||
|
Interlingue = 'ie',
|
||||||
|
Interlingua = 'ia',
|
||||||
|
Indonesian = 'id',
|
||||||
|
Inupiaq = 'ik',
|
||||||
|
Italian = 'it',
|
||||||
|
Javanese = 'jv',
|
||||||
|
Japanese = 'ja',
|
||||||
|
Kalaallisut = 'kl',
|
||||||
|
Kannada = 'kn',
|
||||||
|
Kashmiri = 'ks',
|
||||||
|
Kanuri = 'kr',
|
||||||
|
Kazakh = 'kk',
|
||||||
|
Khmer = 'km',
|
||||||
|
Kikuyu = 'ki',
|
||||||
|
Kinyarwanda = 'rw',
|
||||||
|
Kirghiz = 'ky',
|
||||||
|
Komi = 'kv',
|
||||||
|
Kongo = 'kg',
|
||||||
|
Korean = 'ko',
|
||||||
|
Kuanyama = 'kj',
|
||||||
|
Kurdish = 'ku',
|
||||||
|
Lao = 'lo',
|
||||||
|
Latin = 'la',
|
||||||
|
Latvian = 'lv',
|
||||||
|
Limburgan = 'li',
|
||||||
|
Lingala = 'ln',
|
||||||
|
Lithuanian = 'lt',
|
||||||
|
Luxembourgish = 'lb',
|
||||||
|
LubaKatanga = 'lu',
|
||||||
|
Ganda = 'lg',
|
||||||
|
Macedonian = 'mk',
|
||||||
|
Marshallese = 'mh',
|
||||||
|
Malayalam = 'ml',
|
||||||
|
Maori = 'mi',
|
||||||
|
Marathi = 'mr',
|
||||||
|
Malay = 'ms',
|
||||||
|
Malagasy = 'mg',
|
||||||
|
Maltese = 'mt',
|
||||||
|
Mongolian = 'mn',
|
||||||
|
Nauru = 'na',
|
||||||
|
Navajo = 'nv',
|
||||||
|
SouthNdebele = 'nr',
|
||||||
|
NorthNdebele = 'nd',
|
||||||
|
Ndonga = 'ng',
|
||||||
|
Nepali = 'ne',
|
||||||
|
NorwegianNynorsk = 'nn',
|
||||||
|
NorwegianBokmal = 'nb',
|
||||||
|
Norwegian = 'no',
|
||||||
|
Chichewa = 'ny',
|
||||||
|
Occitan = 'oc',
|
||||||
|
Ojibwa = 'oj',
|
||||||
|
Oriya = 'or',
|
||||||
|
Oromo = 'om',
|
||||||
|
Ossetian = 'os',
|
||||||
|
Punjabi = 'pa',
|
||||||
|
Persian = 'fa',
|
||||||
|
Pali = 'pi',
|
||||||
|
Polish = 'pl',
|
||||||
|
Portuguese = 'pt',
|
||||||
|
Pashto = 'ps',
|
||||||
|
Quechua = 'qu',
|
||||||
|
Romansh = 'rm',
|
||||||
|
Romanian = 'ro',
|
||||||
|
Rundi = 'rn',
|
||||||
|
Russian = 'ru',
|
||||||
|
Sango = 'sg',
|
||||||
|
Sanskrit = 'sa',
|
||||||
|
Sinhala = 'si',
|
||||||
|
Slovak = 'sk',
|
||||||
|
Slovenian = 'sl',
|
||||||
|
NorthernSami = 'se',
|
||||||
|
Samoan = 'sm',
|
||||||
|
Shona = 'sn',
|
||||||
|
Sindhi = 'sd',
|
||||||
|
Somali = 'so',
|
||||||
|
Sotho = 'st',
|
||||||
|
Spanish = 'es',
|
||||||
|
Sardinian = 'sc',
|
||||||
|
Serbian = 'sr',
|
||||||
|
Swati = 'ss',
|
||||||
|
Sundanese = 'su',
|
||||||
|
Swahili = 'sw',
|
||||||
|
Swedish = 'sv',
|
||||||
|
Tahitian = 'ty',
|
||||||
|
Tamil = 'ta',
|
||||||
|
Tatar = 'tt',
|
||||||
|
Telugu = 'te',
|
||||||
|
Tajik = 'tg',
|
||||||
|
Tagalog = 'tl',
|
||||||
|
Thai = 'th',
|
||||||
|
Tibetan = 'bo',
|
||||||
|
Tigrinya = 'ti',
|
||||||
|
Tonga = 'to',
|
||||||
|
Tswana = 'tn',
|
||||||
|
Tsonga = 'ts',
|
||||||
|
Turkmen = 'tk',
|
||||||
|
Turkish = 'tr',
|
||||||
|
Twi = 'tw',
|
||||||
|
Uighur = 'ug',
|
||||||
|
Ukrainian = 'uk',
|
||||||
|
Urdu = 'ur',
|
||||||
|
Uzbek = 'uz',
|
||||||
|
Venda = 've',
|
||||||
|
Vietnamese = 'vi',
|
||||||
|
Volapuk = 'vo',
|
||||||
|
Welsh = 'cy',
|
||||||
|
Walloon = 'wa',
|
||||||
|
Wolof = 'wo',
|
||||||
|
Xhosa = 'xh',
|
||||||
|
Yiddish = 'yi',
|
||||||
|
Yoruba = 'yo',
|
||||||
|
Zhuang = 'za',
|
||||||
|
Zulu = 'zu',
|
||||||
|
}
|
37
frontend/src/services/learning-paths/learning-object.ts
Normal file
37
frontend/src/services/learning-paths/learning-object.ts
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
import type {Language} from "@/services/learning-paths/language.ts";
|
||||||
|
|
||||||
|
export interface LearningPathIdentifier {
|
||||||
|
hruid: string;
|
||||||
|
language: Language;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface EducationalGoal {
|
||||||
|
source: string;
|
||||||
|
id: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ReturnValue {
|
||||||
|
callback_url: string;
|
||||||
|
callback_schema: Record<string, any>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface LearningObjectMetadata {
|
||||||
|
_id: string;
|
||||||
|
uuid: string;
|
||||||
|
hruid: string;
|
||||||
|
version: number;
|
||||||
|
language: Language;
|
||||||
|
title: string;
|
||||||
|
description: string;
|
||||||
|
difficulty: number;
|
||||||
|
estimated_time: number;
|
||||||
|
available: boolean;
|
||||||
|
teacher_exclusive: boolean;
|
||||||
|
educational_goals: EducationalGoal[];
|
||||||
|
keywords: string[];
|
||||||
|
target_ages: number[];
|
||||||
|
content_type: string; // Markdown, image, etc.
|
||||||
|
content_location?: string;
|
||||||
|
skos_concepts?: string[];
|
||||||
|
return_value?: ReturnValue;
|
||||||
|
}
|
40
frontend/src/services/learning-paths/learning-path.ts
Normal file
40
frontend/src/services/learning-paths/learning-path.ts
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
import type {Language} from "@/services/learning-paths/language.ts";
|
||||||
|
|
||||||
|
export interface LearningPath {
|
||||||
|
language: string;
|
||||||
|
hruid: string;
|
||||||
|
title: string;
|
||||||
|
description: string;
|
||||||
|
image?: string; // Image might be missing, so it's optional
|
||||||
|
num_nodes: number;
|
||||||
|
num_nodes_left: number;
|
||||||
|
nodes: LearningObjectNode[];
|
||||||
|
keywords: string;
|
||||||
|
target_ages: number[];
|
||||||
|
min_age: number;
|
||||||
|
max_age: number;
|
||||||
|
__order: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface LearningObjectNode {
|
||||||
|
_id: string;
|
||||||
|
learningobject_hruid: string;
|
||||||
|
version: number;
|
||||||
|
language: Language;
|
||||||
|
start_node?: boolean;
|
||||||
|
transitions: Transition[];
|
||||||
|
created_at: string;
|
||||||
|
updatedAt: string;
|
||||||
|
done?: boolean; // True if a submission exists for this node by the user for whom the learning path is customized.
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Transition {
|
||||||
|
default: boolean;
|
||||||
|
_id: string;
|
||||||
|
next: {
|
||||||
|
_id: string;
|
||||||
|
hruid: string;
|
||||||
|
version: number;
|
||||||
|
language: string;
|
||||||
|
};
|
||||||
|
}
|
20
frontend/src/views/learning-paths/LearningPathPage.vue
Normal file
20
frontend/src/views/learning-paths/LearningPathPage.vue
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<script setup lang="ts">
|
||||||
|
import {ref} from "vue";
|
||||||
|
const learningObjects = ref([
|
||||||
|
|
||||||
|
])
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<v-navigation-drawer>
|
||||||
|
<v-list-item title="My Application" subtitle="Vuetify"></v-list-item>
|
||||||
|
<v-divider></v-divider>
|
||||||
|
<v-list-item link title="List Item 1"></v-list-item>
|
||||||
|
<v-list-item link title="List Item 2"></v-list-item>
|
||||||
|
<v-list-item link title="List Item 3"></v-list-item>
|
||||||
|
</v-navigation-drawer>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
Loading…
Add table
Add a link
Reference in a new issue