diff --git a/package-lock.json b/package-lock.json
index 0b47c2de..a1c8a4bc 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1702,6 +1702,16 @@
"integrity": "sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A==",
"dev": true
},
+ "carbon-components-svelte": {
+ "version": "0.39.0",
+ "resolved": "https://registry.npmjs.org/carbon-components-svelte/-/carbon-components-svelte-0.39.0.tgz",
+ "integrity": "sha512-pz6P8JwU959YyrjJ9TUxM4O9uVjj51htGFWHAXyH2ou2TcY2t2u8DgRQMAXImAqVpwOKgwTNJ5HhnEzNyFhiSw==",
+ "dev": true,
+ "requires": {
+ "carbon-icons-svelte": "^10.27.0",
+ "flatpickr": "4.6.9"
+ }
+ },
"carbon-icons-svelte": {
"version": "10.28.0",
"resolved": "https://registry.npmjs.org/carbon-icons-svelte/-/carbon-icons-svelte-10.28.0.tgz",
@@ -2214,6 +2224,12 @@
"pinkie-promise": "^2.0.0"
}
},
+ "flatpickr": {
+ "version": "4.6.9",
+ "resolved": "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.9.tgz",
+ "integrity": "sha512-F0azNNi8foVWKSF+8X+ZJzz8r9sE1G4hl06RyceIaLvyltKvDl6vqk9Lm/6AUUCi5HWaIjiUbk7UpeE/fOXOpw==",
+ "dev": true
+ },
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
diff --git a/package.json b/package.json
index d5cf1fc8..7d92f2af 100644
--- a/package.json
+++ b/package.json
@@ -31,6 +31,7 @@
"@rollup/plugin-node-resolve": "^8.0.0",
"@rollup/plugin-replace": "^2.2.0",
"@tailwindcss/typography": "^0.3.1",
+ "carbon-components-svelte": "^0.39.0",
"carbon-icons-svelte": "^10.21.0",
"postcss": "^8.0.9",
"postcss-load-config": "^2.1.0",
diff --git a/src/client.js b/src/client.js
index cec91725..aef11056 100644
--- a/src/client.js
+++ b/src/client.js
@@ -1,5 +1,6 @@
-import * as sapper from '@sapper/app';
+import "carbon-components-svelte/css/all.css";
+import * as sapper from "@sapper/app";
sapper.start({
- target: document.querySelector('#sapper')
-});
\ No newline at end of file
+ target: document.querySelector("#sapper"),
+});
diff --git a/src/components/Course/components/HomeTask.svelte b/src/components/Course/components/HomeTask.svelte
deleted file mode 100644
index b887b438..00000000
--- a/src/components/Course/components/HomeTask.svelte
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/src/components/Course/components/Lecture/Classwork.svelte b/src/components/Course/components/Lecture/Classwork.svelte
deleted file mode 100644
index 6405a849..00000000
--- a/src/components/Course/components/Lecture/Classwork.svelte
+++ /dev/null
@@ -1 +0,0 @@
-
class work
diff --git a/src/components/Course/components/Lecture/Homework/EditMode.svelte b/src/components/Course/components/Lecture/Exercises/EditMode.svelte
similarity index 100%
rename from src/components/Course/components/Lecture/Homework/EditMode.svelte
rename to src/components/Course/components/Lecture/Exercises/EditMode.svelte
diff --git a/src/components/Course/components/Lecture/Homework/index.svelte b/src/components/Course/components/Lecture/Exercises/Exercise.svelte
similarity index 98%
rename from src/components/Course/components/Lecture/Homework/index.svelte
rename to src/components/Course/components/Lecture/Exercises/Exercise.svelte
index 0f09afb0..3bfddbbb 100644
--- a/src/components/Course/components/Lecture/Homework/index.svelte
+++ b/src/components/Course/components/Lecture/Exercises/Exercise.svelte
@@ -2,11 +2,13 @@
import { handleAddQuestion } from "./store/index";
import PrimaryButton from "../../../../PrimaryButton/index.svelte";
import PageBody from "../../../../PageBody/index.svelte";
- import EditMode from "./EditMode.svelte";
import ViewMode from "./ViewMode.svelte";
+ import EditMode from "./EditMode.svelte";
import MODES from "../../../../../utils/constants/mode.js";
import { VARIANTS } from "../../../../PrimaryButton/constants";
+ export let exerciseId;
+
let mode = MODES.view;
let preview = false;
diff --git a/src/components/Course/components/Lecture/Exercises/List.svelte b/src/components/Course/components/Lecture/Exercises/List.svelte
new file mode 100644
index 00000000..d50c3695
--- /dev/null
+++ b/src/components/Course/components/Lecture/Exercises/List.svelte
@@ -0,0 +1,66 @@
+
+
+
+ Create a new Cloudant database in the US South region.
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Course/components/Lecture/Homework/ViewMode.svelte b/src/components/Course/components/Lecture/Exercises/ViewMode.svelte
similarity index 90%
rename from src/components/Course/components/Lecture/Homework/ViewMode.svelte
rename to src/components/Course/components/Lecture/Exercises/ViewMode.svelte
index a599bfb1..6b6c3559 100644
--- a/src/components/Course/components/Lecture/Homework/ViewMode.svelte
+++ b/src/components/Course/components/Lecture/Exercises/ViewMode.svelte
@@ -8,6 +8,7 @@
import Progress from "../../../../Progress/index.svelte";
import { removeDuplicate } from "../../../../../utils/functions/removeDuplicate";
import { QUESTION_TYPE } from "../../../../Question/constants";
+ import { STATUS } from "./constants";
export let preview;
@@ -113,10 +114,10 @@
};
}
- function getTotalScores(scoresObject) {
+ function getTotalScores() {
let total = 0;
- for (const score in scoresObject) {
- total += score;
+ for (const score in $userQuestionniareAnswers.scores) {
+ total += parseInt($userQuestionniareAnswers.scores[score]);
}
return total;
@@ -206,19 +207,28 @@
{title}
-
- Pending Review
-
+ {#if STATUS.IN_PROGRESS === $userQuestionniareAnswers.status}
+
+ Pending
+
+ {:else if STATUS.REVIEWED === $userQuestionniareAnswers.status && getTotalScores() > 0}
+
+ Reviewed
+
+ {/if}
- {getTotalScores($userQuestionniareAnswers.scores)}/100
+ {getTotalScores()}/100
{#each questions as currentQuestion, currentQuestionIndex}
diff --git a/src/components/Course/components/Lecture/Exercises/constants.js b/src/components/Course/components/Lecture/Exercises/constants.js
new file mode 100644
index 00000000..dc8db2c8
--- /dev/null
+++ b/src/components/Course/components/Lecture/Exercises/constants.js
@@ -0,0 +1,4 @@
+export const STATUS = {
+ IN_PROGRESS: 0,
+ REVIEWED: 1,
+};
\ No newline at end of file
diff --git a/src/components/Course/components/Lecture/Exercises/index.svelte b/src/components/Course/components/Lecture/Exercises/index.svelte
new file mode 100644
index 00000000..bd3e56e3
--- /dev/null
+++ b/src/components/Course/components/Lecture/Exercises/index.svelte
@@ -0,0 +1,13 @@
+
+
+{#if exerciseId}
+
+{:else}
+
+{/if}
diff --git a/src/components/Course/components/Lecture/Exercises/store/answers.js b/src/components/Course/components/Lecture/Exercises/store/answers.js
new file mode 100644
index 00000000..2fbdf6e6
--- /dev/null
+++ b/src/components/Course/components/Lecture/Exercises/store/answers.js
@@ -0,0 +1,21 @@
+import { writable } from "svelte/store";
+
+import { STATUS } from "../constants";
+
+// export const userQuestionniareAnswers = writable({
+// answers: {},
+// scores: { gates: 60 },
+// currentQuestionIndex: 5,
+// isFinished: true,
+// progressValue: 100,
+// status: STATUS.REVIEWED,
+// });
+
+export const userQuestionniareAnswers = writable({
+ answers: {},
+ scores: {},
+ currentQuestionIndex: 0,
+ isFinished: false,
+ progressValue: 100,
+ status: STATUS.IN_PROGRESS,
+});
diff --git a/src/components/Course/components/Lecture/Homework/store/index.js b/src/components/Course/components/Lecture/Exercises/store/index.js
similarity index 100%
rename from src/components/Course/components/Lecture/Homework/store/index.js
rename to src/components/Course/components/Lecture/Exercises/store/index.js
diff --git a/src/components/Course/components/Lecture/Home/index.svelte b/src/components/Course/components/Lecture/Home/index.svelte
deleted file mode 100644
index 100ba3da..00000000
--- a/src/components/Course/components/Lecture/Home/index.svelte
+++ /dev/null
@@ -1,149 +0,0 @@
-
-
-
-
-
-
-
-
- {#each $lessons as lecture, index}
-
-
-
- (lecture.isComplete = !lecture.isComplete)}
- >
- {#if lecture.isComplete}
-
- {:else}
- 🔒
- {/if}
-
-
-
-
-
- {#if lectureEditing === index}
- (lectureEditing = null)}>
-
-
- {:else}
- (lectureEditing = index)}>
-
-
- {/if}
-
-
-
-
{index + 1}
-
-
- {#if lectureEditing === index}
-
- {:else}
-
- {/if}
-
-
- {lecture.resources.map((r) => `${r.value} ${r.label}`).join(", ")}
-
-
-
-
- {#if lectureEditing === index}
-
- {:else}
-
-
- {lecture.lecturer.name}
-
- {/if}
-
-
- {#if lectureEditing === index}
-
(lecture.date = e.target.value)}
- />
- {:else}
-
-
- {new Date(lecture.date).toDateString()}
-
- {/if}
-
-
-
-
- {/each}
-
-
-
-
diff --git a/src/components/Course/components/Lecture/Homework/store/answers.js b/src/components/Course/components/Lecture/Homework/store/answers.js
deleted file mode 100644
index d954a7db..00000000
--- a/src/components/Course/components/Lecture/Homework/store/answers.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import { writable } from "svelte/store";
-
-export const userQuestionniareAnswers = writable({
- answers: {},
- scores: {},
- currentQuestionIndex: 5,
- isFinished: true,
- progressValue: 100,
-});
diff --git a/src/components/Course/components/Lecture/index.svelte b/src/components/Course/components/Lecture/index.svelte
index 737cf5ee..7fdb15b9 100644
--- a/src/components/Course/components/Lecture/index.svelte
+++ b/src/components/Course/components/Lecture/index.svelte
@@ -1,51 +1,37 @@
-{#if showLectureHome}
-
-{:else}
-
-
+
+
-
- {#if tab === "lectures"}
-
- {:else if tab === "classwork"}
-
- {:else if tab === "hometasks"}
-
- {/if}
-
+
+ {#if tab === "lectures"}
+
+ {:else if tab === "exercises"}
+
+ {/if}
-{/if}
+
-
-
diff --git a/src/components/Course/components/TimeTable.svelte b/src/components/Course/components/TimeTable.svelte
deleted file mode 100644
index 5f17b105..00000000
--- a/src/components/Course/components/TimeTable.svelte
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/src/components/CourseContainer/index.svelte b/src/components/CourseContainer/index.svelte
new file mode 100644
index 00000000..5da66182
--- /dev/null
+++ b/src/components/CourseContainer/index.svelte
@@ -0,0 +1,28 @@
+
+
+
+ {courseTitle}
+
+
+
+
+
diff --git a/src/components/Question/CheckboxQuestion/index.svelte b/src/components/Question/CheckboxQuestion/index.svelte
index 5fe80129..72ccae4b 100644
--- a/src/components/Question/CheckboxQuestion/index.svelte
+++ b/src/components/Question/CheckboxQuestion/index.svelte
@@ -1,7 +1,7 @@
@@ -15,7 +16,7 @@
-
+
diff --git a/src/routes/courses/[...id]/exercises.svelte b/src/routes/courses/[...id]/exercises.svelte
new file mode 100644
index 00000000..1b5a0bdf
--- /dev/null
+++ b/src/routes/courses/[...id]/exercises.svelte
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/src/routes/courses/[...id]/index.svelte b/src/routes/courses/[...id]/index.svelte
index ee95f833..2e920a48 100644
--- a/src/routes/courses/[...id]/index.svelte
+++ b/src/routes/courses/[...id]/index.svelte
@@ -7,65 +7,12 @@
-
- ReactJS
-
-
-
-
-
- {#if !courseNavItem}
-
- {:else if courseNavItem === "score"}
-
- {:else if courseNavItem === "timetable"}
-
- {:else if courseNavItem === "hometasks"}
-
- {:else if courseNavItem === "lecture"}
-
- {:else if courseNavItem === "people"}
-
- {/if}
-
-
-
-
-
-
+
+
+
diff --git a/src/routes/courses/[...id]/lecture/[...id]/index.svelte b/src/routes/courses/[...id]/lecture/[...id]/index.svelte
new file mode 100644
index 00000000..53df7318
--- /dev/null
+++ b/src/routes/courses/[...id]/lecture/[...id]/index.svelte
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
diff --git a/src/routes/courses/[...id]/lecture/index.svelte b/src/routes/courses/[...id]/lecture/index.svelte
new file mode 100644
index 00000000..f1513c31
--- /dev/null
+++ b/src/routes/courses/[...id]/lecture/index.svelte
@@ -0,0 +1,166 @@
+
+
+
+
+
+
+
+
+
+
+
+ {#each $lessons as lecture, index}
+
+
+
+ (lecture.isComplete = !lecture.isComplete)}
+ >
+ {#if lecture.isComplete}
+
+ {:else}
+ 🔒
+ {/if}
+
+
+
+
+
+ {#if lectureEditing === index}
+ (lectureEditing = null)}>
+
+
+ {:else}
+ (lectureEditing = index)}>
+
+
+ {/if}
+
+
+
+
{index + 1}.
+
+
+ {#if lectureEditing === index}
+
+ {:else}
+
+ {/if}
+
+
+ {lecture.resources
+ .map((r) => `${r.value} ${r.label}`)
+ .join(", ")}
+
+
+
+
+ {#if lectureEditing === index}
+
+ {:else}
+
+
+ {lecture.lecturer.name}
+
+ {/if}
+
+
+ {#if lectureEditing === index}
+
(lecture.date = e.target.value)}
+ />
+ {:else}
+
+
+ {new Date(lecture.date).toDateString()}
+
+ {/if}
+
+
+
+
+ {/each}
+
+
+
+
+
diff --git a/src/routes/courses/[...id]/people.svelte b/src/routes/courses/[...id]/people.svelte
new file mode 100644
index 00000000..d1d7c60a
--- /dev/null
+++ b/src/routes/courses/[...id]/people.svelte
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+ {#each teachers as teacher}
+
+ {/each}
+
+
+
+
+
+
+ {#each students as student}
+
+ {/each}
+
+
+
diff --git a/src/routes/courses/[...id]/scoreboard.svelte b/src/routes/courses/[...id]/scoreboard.svelte
new file mode 100644
index 00000000..0a164959
--- /dev/null
+++ b/src/routes/courses/[...id]/scoreboard.svelte
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/src/routes/courses/[...id]/timetable.svelte b/src/routes/courses/[...id]/timetable.svelte
new file mode 100644
index 00000000..ecf10855
--- /dev/null
+++ b/src/routes/courses/[...id]/timetable.svelte
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+