-
Notifications
You must be signed in to change notification settings - Fork 7
/
model.jdl
174 lines (137 loc) · 3.25 KB
/
model.jdl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
entity Course {
name String required
}
entity CourseGroup {
groupName String required
}
entity Student {
name String required
firstname String
ine String required
caslogin String
mail String
}
entity Exam {
name String required
}
entity Template {
name String required
content Blob
mark Boolean
autoMapStudentCopyToList Boolean
}
entity Question {
numero Integer required
point Integer
step Integer
validExpression String
gradeType GradeType
// Add default point
defaultpoint Integer // Between 0 and 100
}
enum GradeType {
DIRECT,
POSITIVE,
NEGATIVE,
HYBRID
}
entity QuestionType {
algoName String required
endpoint String //rest endppoint to send the Question scan (back execution)
jsFunction String //js function to send the Question scan (front execution)
}
entity ExamSheet {
name String required
pagemin Integer
pagemax Integer
}
entity Scan {
name String required
content Blob
}
entity FinalResult {
note Integer
frozen Boolean
}
entity StudentResponse {
quarternote Integer
star Boolean
worststar Boolean
}
entity TextComment {
text String
description TextBlob
}
entity GradedComment {
text String
description TextBlob
grade Integer
}
entity Comments {
zonegeneratedid String
jsonData TextBlob
}
entity Zone {
pageNumber Integer
xInit Integer
yInit Integer
width Integer
height Integer
}
// New
entity HybridGradedComment {
text String
description TextBlob
grade Integer
relative Boolean
step Integer
}
entity Answer2HybridGradedComment {
stepValue Integer
}
relationship ManyToOne {
FinalResult{student(name)} to Student
FinalResult{exam(name)} to Exam
StudentResponse{question(numero)} to Question
StudentResponse{sheet(name)} to ExamSheet
Question{type(algoName)} to QuestionType
// new
Answer2HybridGradedComment{hybridcomments(text)} to HybridGradedComment{valueAnswer}
}
relationship OneToMany{
Course{exam(name)} to Exam{course(name)}
Course{groups(groupName)} to CourseGroup{course(name)}
Exam{question(numero)} to Question{exam(name)}
StudentResponse{comments} to Comments{studentResponse}
Scan{sheets} to ExamSheet{scan(name)}
Question{textcomments} to TextComment{question}
Question{gradedcomments} to GradedComment{question}
// new
Question{hybridcomments(text)} to HybridGradedComment{question}
StudentResponse{hybridcommentsValue} to Answer2HybridGradedComment
}
relationship ManyToMany {
Course{prof(login) required} to User
CourseGroup{students(name)} to Student{groups(groupName)}
Student{examSheets(name)} to ExamSheet{students(name)}
StudentResponse{textcomments} to TextComment{studentResponse}
StudentResponse{gradedcomments} to GradedComment{studentResponse}
}
relationship OneToOne {
Exam{template(name)} to Template{exam(name)}
// To change
Question{zone} to Zone
Exam{idzone} to Zone
Exam{namezone} to Zone
Exam{firstnamezone} to Zone
Exam{notezone} to Zone
Exam{scanfile(name)} to Scan
}
// Set pagination options
paginate * with pagination
// Use Data Transfer Objects (DTO)
dto * with mapstruct
// Set service options to all except few
service all with serviceClass
// Set an angular suffix
// angularSuffix * with mySuffix