From ec7eb69f4da0992f7f6ecc7190bca02bf81981c9 Mon Sep 17 00:00:00 2001 From: Taufik Date: Fri, 28 Nov 2025 11:00:57 +0700 Subject: [PATCH] Class diagram (PlantUML) UTS --- 1-Introduction/Class diagram (PlantUML) | 94 +++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 1-Introduction/Class diagram (PlantUML) diff --git a/1-Introduction/Class diagram (PlantUML) b/1-Introduction/Class diagram (PlantUML) new file mode 100644 index 000000000..538c28b93 --- /dev/null +++ b/1-Introduction/Class diagram (PlantUML) @@ -0,0 +1,94 @@ +@startuml +' Classes for e-learning system +class User { + +userId: UUID + +name: String + +email: String + +passwordHash: String + +role: Role + +register(): void + +authenticate(): Token +} + +class Student { + +studentId: UUID + +enroll(courseId: UUID): Enrollment + +submitQuiz(quizId: UUID, answers): Submission +} + +class Instructor { + +instructorId: UUID + +createCourse(courseData): Course + +gradeSubmission(submissionId): Grade +} + +class Course { + +courseId: UUID + +title: String + +description: String + +materials: List + +modules: List + +publish(): void +} + +class Module { + +moduleId: UUID + +title: String + +order: Int +} + +class Material { + +materialId: UUID + +type: {VIDEO, PDF, HTML} + +location: URL +} + +class Enrollment { + +enrollmentId: UUID + +userId: UUID + +courseId: UUID + +status: {ENROLLED, COMPLETED} +} + +class Quiz { + +quizId: UUID + +title: String + +timeLimit: Int + +questions: List +} + +class Question { + +questionId: UUID + +text: String + +options: List