-
diff --git a/frontend/src/components/projects/SubmissionCard.vue b/frontend/src/components/projects/SubmissionCard.vue
new file mode 100644
index 00000000..365730a8
--- /dev/null
+++ b/frontend/src/components/projects/SubmissionCard.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+ {{ t('views.projects.deadline') }}: {{ formattedDeadline }}
+
+
+
+ {{ t('views.projects.submissionStatus') }}:
+ {{ submissions ? submissions.at(-1)?.structure_checks_passed : 'false' }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/router/router.ts b/frontend/src/router/router.ts
index 095f2842..0b201eb9 100644
--- a/frontend/src/router/router.ts
+++ b/frontend/src/router/router.ts
@@ -1,7 +1,9 @@
+// import { useUserStore } from '@/stores/userStore';
+// TODO: after pinia setup is done
+
import DashboardView from '@/views/dashboard/DashboardView.vue';
import CourseView from '@/views/courses/CourseView.vue';
import CreateCourseView from '@/views/courses/CreateCourseView.vue';
-import CreateProjectView from '@/views/projects/CreateProjectView.vue';
import Dummy from '@/components/Dummy.vue';
import LoginView from '@/views/authentication/LoginView.vue';
import CalendarView from '@/views/calendar/CalendarView.vue';
@@ -10,7 +12,10 @@ import { type RouteRecordRaw, createWebHistory, createRouter } from 'vue-router'
import { AuthenticationGuard } from '@/router/guards/authentication.guard.ts';
import { LogoutGuard } from '@/router/guards/logout.guard.ts';
import ProjectView from '@/views/projects/ProjectView.vue';
+import CreateProjectView from '@/views/projects/CreateProjectView.vue';
import SearchCourseView from '@/views/courses/SearchCourseView.vue';
+import SubmissionView from '@/views/submissions/submissionView.vue';
+import SingleProjectView from '@/views/projects/SingleProjectView.vue';
const routes: RouteRecordRaw[] = [
// Authentication
@@ -43,18 +48,19 @@ const routes: RouteRecordRaw[] = [
{ path: 'edit', component: Dummy, name: 'course-edit' },
// Projects
{
- path: 'projects',
+ path: 'courseProjects',
children: [
- { path: '', component: Dummy, name: 'projects' },
+ { path: '', component: Dummy, name: 'courseProjects' },
{ path: 'create', component: CreateProjectView, name: 'project-create' },
// Single project
{
path: ':projectId',
children: [
- { path: '', component: ProjectView, name: 'project' },
+ { path: '', component: SingleProjectView, name: 'courseProject' },
{ path: 'edit', component: Dummy, name: 'project-edit' },
{ path: 'groups', component: Dummy, name: 'project-groups' },
{ path: 'submit', component: Dummy, name: 'project-submit' },
+ { path: 'submission', component: SubmissionView, name: 'submission' },
],
},
],
@@ -67,6 +73,9 @@ const routes: RouteRecordRaw[] = [
// Calendar
{ path: '/calendar', component: CalendarView, name: 'calendar' },
+ // Projects
+ { path: '/projects', component: ProjectView, name: 'projects' },
+
// Users
{
path: '/users',
diff --git a/frontend/src/types/Submission.ts b/frontend/src/types/Submission.ts
index c0193c26..abc46dc5 100644
--- a/frontend/src/types/Submission.ts
+++ b/frontend/src/types/Submission.ts
@@ -5,7 +5,7 @@ export class Submission {
public id: string,
public submission_number: number,
public submission_time: Date,
- public structureChecks_passed: boolean,
+ public structure_checks_passed: boolean,
public group: Group | null = null,
public files: File[] = [], // TODO check
public extra_checks_results: any[] = [], // TODO
@@ -21,7 +21,7 @@ export class Submission {
submission.id,
submission.submission_number,
new Date(submission.submission_time),
- submission.structureChecks_passed,
+ submission.structure_checks_passed,
);
}
}
diff --git a/frontend/src/views/projects/ProjectView.vue b/frontend/src/views/projects/ProjectView.vue
index 536c984b..d3ef4c47 100644
--- a/frontend/src/views/projects/ProjectView.vue
+++ b/frontend/src/views/projects/ProjectView.vue
@@ -1,76 +1,42 @@
-
-
-
-
- {{ project.name }}
-
-
-
-
-
- {{ project.description }}
-
-
-
-
-
-
-
-
-
+
+
+
+
{{ t('views.dashboard.projects') }}
+
+
+
diff --git a/frontend/src/views/projects/SingleProjectView.vue b/frontend/src/views/projects/SingleProjectView.vue
new file mode 100644
index 00000000..930c402b
--- /dev/null
+++ b/frontend/src/views/projects/SingleProjectView.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/views/projects/roles/AssistantProjectView.vue b/frontend/src/views/projects/roles/AssistantProjectView.vue
new file mode 100644
index 00000000..b57c793b
--- /dev/null
+++ b/frontend/src/views/projects/roles/AssistantProjectView.vue
@@ -0,0 +1,5 @@
+
+
+
Not implemented
+
+
diff --git a/frontend/src/views/projects/roles/StudentProjectView.vue b/frontend/src/views/projects/roles/StudentProjectView.vue
new file mode 100644
index 00000000..27a91f06
--- /dev/null
+++ b/frontend/src/views/projects/roles/StudentProjectView.vue
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+ {{ project.name }}
+
+
+
+
+
+ {{ project.description }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/views/projects/roles/TeacherProjectView.vue b/frontend/src/views/projects/roles/TeacherProjectView.vue
new file mode 100644
index 00000000..b57c793b
--- /dev/null
+++ b/frontend/src/views/projects/roles/TeacherProjectView.vue
@@ -0,0 +1,5 @@
+
+
+
Not implemented
+
+
diff --git a/frontend/src/views/submissions/submissionView.vue b/frontend/src/views/submissions/submissionView.vue
new file mode 100644
index 00000000..84e19e56
--- /dev/null
+++ b/frontend/src/views/submissions/submissionView.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
{{ t(`views.submissions.title`) }}: {{ project ? project.name : 'Loading' }}
+
{{ t(`views.submissions.course`) }}: {{ course.name }}
+
Deadline: {{ project ? formatDate(project.deadline) : 'Loading' }}
+
+
+ {{ t(`views.submissions.submit`) }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ file.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+