Livoa LogoLivoa
Online Examination System - High Level Design
Student: Sambhav Mahajan
UID: 23BCS11290
Subject: System Design
User Management
UserAuthService
(SRP: Auth Only)
Exam Management
ExamScheduler
QuestionBank
«Interface»
Question (OCP)
MCQ / TrueFalse /
Descriptive
«Interface»
EvaluationStrategy
Auto / Manual
Evaluation
Result Module
ResultGenerator
ResultPublisher
«Interface»
NotificationService
Email / SMS /
Push Notifications
SRP Application:
- Each module has one specific responsibility (Auth, Exam, Eval, etc.)
- Changes in one module don't impact others.
OCP Application:
- New Question types or Notification methods can be added
without modifying the core logic via interfaces.
UML Class Diagram: Online Exam System
UserAuthService
- users: List<User>
- activeSessions: Map
+ authenticate(u, p): bool
+ getRole(user): Role
+ validateToken(t): bool
ExamManager
- currentExams: List
- questionBank: Bank
+ createExam(Exam): void
+ addQuestion(Question): void
+ schedule(DateTime): void
«interface»
Question
+ getPoints(): int
+ validate(ans): bool
MCQQuestion
+ validate(ans): bool
TrueFalseQuestion
+ validate(ans): bool
«interface»
EvaluationStrategy
+ calculate(submission): int
AutoEvaluation
+ calculate(sub): int
ResultGenerator
- results: List<Result>
+ computeFinalScore(): void
+ generatePDF(): File
+ publish(): void
«interface»
NotificationService
+ send(User, msg): void
EmailNotification
+ send(User, msg): void

Ass

by beep beep

0
0 uses