1
DROP DATABASE `lenasys` ;
2
CREATE SCHEMA IF NOT EXISTS `lenasys` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
4
-- -----------------------------------------------------
6
-- -----------------------------------------------------
7
-- Table `lenasys`.`Courses`
8
-- -----------------------------------------------------
9
CREATE TABLE IF NOT EXISTS `lenasys`.`Courses` (
10
`courseID` VARCHAR(10) NOT NULL ,
11
`name` VARCHAR(50) NULL ,
12
`courseData` VARCHAR(128) NULL , -- explanation about course, example: G1N 7,5hp + additional text
13
`isHidden` BIT(1) NOT NULL DEFAULT 0 , -- Published or not
14
`isPublic` BIT(1) NOT NULL DEFAULT 1 , -- Public or not
15
PRIMARY KEY (`courseID`))
18
-- -----------------------------------------------------
19
-- Table `lenasys`.`Users`
20
-- -----------------------------------------------------
22
CREATE TABLE IF NOT EXISTS `lenasys`.`Users` (
23
`userName` VARCHAR(20) NOT NULL ,
24
`userType` ENUM('Teacher','Student') DEFAULT 'Student' , -- 1=teacher and 2=student
25
`name` VARCHAR(45) NULL ,
26
`passwd` CHAR(40) NULL ,
27
`passwdHint` CHAR(100) NULL ,
28
`ssn` CHAR(13) NULL COMMENT 'yyyymmdd-xxxx' ,
29
`firstLogin` BIT(1) NOT NULL DEFAULT 1, -- 1=true 0=false
30
`activeCourse` VARCHAR(10) NULL,
31
`email` VARCHAR(128) NULL,
32
PRIMARY KEY (`userName`) ,
33
FOREIGN KEY (`activeCourse` )
34
REFERENCES `lenasys`.`Courses` (`courseID`)ON UPDATE CASCADE ON DELETE CASCADE)
37
-- -----------------------------------------------------
38
-- Table `lenasys`.`Permissions`
39
-- -----------------------------------------------------
40
CREATE TABLE IF NOT EXISTS `lenasys`.`Permissions` (
41
`courseID` VARCHAR(10) NOT NULL ,
42
`userName` VARCHAR(20) NOT NULL ,
43
PRIMARY KEY (`courseID`, `userName`) ,
44
FOREIGN KEY (`courseID` )
45
REFERENCES `lenasys`.`Courses` (`courseID` )
46
ON UPDATE CASCADE ON DELETE CASCADE,
47
FOREIGN KEY (`userName` )
48
REFERENCES `lenasys`.`Users` (`userName` )
49
ON UPDATE CASCADE ON DELETE CASCADE)
54
-- -----------------------------------------------------
55
-- Table `lenasys`.`StudentCourseRegistrations`
56
-- -----------------------------------------------------
57
CREATE TABLE IF NOT EXISTS `lenasys`.`StudentCourseRegistrations` (
58
`courseOccasion` VARCHAR(16) NOT NULL , -- Example HT2012 period 2
59
`userName` VARCHAR(20) NOT NULL ,
60
`courseID` VARCHAR(10) NOT NULL , -- Example G14234
61
PRIMARY KEY (`courseOccasion`,`userName`, `courseID`) ,
62
FOREIGN KEY (`userName` )
63
REFERENCES `lenasys`.`Users` (`userName` )ON UPDATE CASCADE ON DELETE CASCADE,
64
FOREIGN KEY (`courseID` )
65
REFERENCES `lenasys`.`Courses` (`courseID` )ON UPDATE CASCADE ON DELETE CASCADE)
68
-- -----------------------------------------------------
69
-- Table `lenasys`.`Categories`
70
-- -----------------------------------------------------
72
CREATE TABLE IF NOT EXISTS `lenasys`.`Categories` (
73
`categoryName` VARCHAR(64) NOT NULL ,
74
`courseID` VARCHAR(10) NOT NULL ,
75
`orderNr` INT NOT NULL , -- the order of the examples in the same category
76
PRIMARY KEY (`categoryName`, `courseID`) ,
77
FOREIGN KEY (`courseID` )
78
REFERENCES `lenasys`.`Courses` (`courseID` )ON UPDATE CASCADE ON DELETE CASCADE)
81
-- -----------------------------------------------------
82
-- Table `lenasys`.`SubCategories`
83
-- -----------------------------------------------------
84
CREATE TABLE IF NOT EXISTS `lenasys`.`SubCategories` (
85
`subCategoryName` VARCHAR(64) NOT NULL ,
86
`categoryName` VARCHAR(64) NOT NULL ,
87
`courseID` VARCHAR(10) NOT NULL ,
88
`orderNr` INT NOT NULL , -- the order of the examples in the same category
89
PRIMARY KEY (`subCategoryName`, `categoryName`, `courseID`) ,
90
FOREIGN KEY (`categoryName` , `courseID` )
91
REFERENCES `lenasys`.`Categories` (`categoryName` , `courseID` )ON UPDATE CASCADE ON DELETE CASCADE)
94
-- -----------------------------------------------------
95
-- Table `lenasys`.`Quizzes`
96
-- -----------------------------------------------------
97
CREATE TABLE IF NOT EXISTS `lenasys`.`Quizzes` (
98
`quizNr` INT NOT NULL ,
99
`subCategoryName` VARCHAR(64) NOT NULL ,
100
`categoryName` VARCHAR(64) NOT NULL ,
101
`courseID` VARCHAR(10) NOT NULL ,
102
`quizData` VARCHAR(45) NULL ,
103
`allowMultipleReplies` BIT(1) NULL , -- 1=true and 0=false
104
`autoCorrected` BIT(1) NULL , -- if the quiz is corrected by auto or if the teacher needs to do it manually., 1=true and 0=false
105
`openingDate` DATETIME NULL , -- time for the student to do the quiz
106
`closingDate` DATETIME NULL ,
107
`updatedAt` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
108
PRIMARY KEY (`quizNr`, `subCategoryName`, `categoryName` , `courseID`) ,
109
FOREIGN KEY (`subCategoryName`, `categoryName`, `courseID`)
110
REFERENCES `lenasys`.`SubCategories` (`subCategoryName`, `categoryName`, `courseID` )ON UPDATE CASCADE ON DELETE CASCADE)
113
-- -----------------------------------------------------
114
-- Table `lenasys`.`QuizQuestions`
115
-- -----------------------------------------------------
116
CREATE TABLE IF NOT EXISTS `lenasys`.`QuizQuestions` (
117
`questionID` INT NOT NULL , -- The id of the individual question in the quiz.
118
`quizNr` INT NOT NULL , -- The quiz from wich the question is from
119
`subCategoryName` VARCHAR(64) NOT NULL ,
120
`categoryName` VARCHAR(64) NOT NULL ,
121
`courseID` VARCHAR(10) NOT NULL ,
122
`questionData` VARCHAR(45) NULL , -- the question
123
`correctAnswer` VARCHAR(45) NULL , -- the answer
124
PRIMARY KEY (`questionID`, `quizNr`, `subCategoryName`,`categoryName` , `courseID`) ,
125
FOREIGN KEY (`quizNr` ,`subCategoryName` ,`categoryName`, `courseID` )
126
REFERENCES `lenasys`.`Quizzes` (`quizNr` , `subCategoryName`,`categoryName` , `courseID` )ON UPDATE CASCADE ON DELETE CASCADE)
129
-- -----------------------------------------------------
130
-- Table `lenasys`.`AssignedQuizzes`
131
-- -----------------------------------------------------
132
CREATE TABLE IF NOT EXISTS `lenasys`.`AssignedQuizzes` (
133
`courseOccasion` VARCHAR(16) NOT NULL , -- Example HT2012 period 2
134
`userName` VARCHAR(20) NOT NULL , -- wich student took the quiz
135
`courseID` VARCHAR(10) NOT NULL ,
136
`quizNr` INT NOT NULL ,
137
`subCategoryName` VARCHAR(64) NOT NULL ,
138
`categoryName` VARCHAR(64) NOT NULL ,
139
`quizCourseID` VARCHAR(10) NOT NULL ,
140
`answers` VARCHAR(45) NULL , -- answers provided by the student
141
`answerHash` VARCHAR(45) NULL , -- a security measure
142
`answeredTimeStamp` DATETIME NULL , -- when the student submittet the quiz
143
`grade` VARCHAR(8) NULL ,
144
`gradeComment` VARCHAR(200) NULL ,
145
PRIMARY KEY (`courseOccasion` ,`userName`, `courseID`, `quizNr`, `quizCourseID`) ,
146
FOREIGN KEY (`courseOccasion`,`userName` , `courseID` )
147
REFERENCES `lenasys`.`StudentCourseRegistrations` (`courseOccasion`,`userName` , `courseID` )ON UPDATE CASCADE ON DELETE CASCADE,
148
FOREIGN KEY (`quizNr` ,`subCategoryName`,`categoryName`, `quizCourseID` )
149
REFERENCES `lenasys`.`Quizzes` (`quizNr` ,`subCategoryName`,`categoryName`, `courseID` )ON UPDATE CASCADE ON DELETE CASCADE)
154
-- -----------------------------------------------------
155
-- Table `lenasys`.`Examples`
156
-- -----------------------------------------------------
157
CREATE TABLE IF NOT EXISTS `lenasys`.`Examples` (
158
`exampleName` VARCHAR(20) NOT NULL ,
159
`subCategoryName` VARCHAR(64) NOT NULL ,
160
`categoryName` VARCHAR(64) NOT NULL ,
161
`courseID` VARCHAR(10) NOT NULL ,
162
`orderNr` INT NOT NULL , -- the order of the examples in the same category
163
`description` VARCHAR(200) NULL ,
164
`updatedAt` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
165
PRIMARY KEY (`exampleName`, `subCategoryName`, `categoryName`, `courseID`) ,
166
FOREIGN KEY (`subCategoryName`, `categoryName`, `courseID` )
167
REFERENCES `lenasys`.`SubCategories` (`subCategoryName`,`categoryName`, `courseID` )ON UPDATE CASCADE ON DELETE CASCADE)
170
-- -----------------------------------------------------
171
-- Table `lenasys`.`Files`
172
-- -----------------------------------------------------
173
CREATE TABLE IF NOT EXISTS `lenasys`.`Files` (
174
`fileName` VARCHAR(228) NOT NULL ,
175
`fileType` ENUM('Text', 'Code', 'Video', 'Picture') DEFAULT 'text' , -- text=1, code=2, video=3 picture=4
176
`codeLanguage` VARCHAR(10) NULL , -- example: javascript, html, m.m.
177
`dataBlob` BLOB NULL , -- This is where the binary file is stored. Searchable.
178
`updatedAt` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
179
PRIMARY KEY (`fileName`))
181
-- -----------------------------------------------------
182
-- Table `lenasys`.`Containers`
183
-- -----------------------------------------------------
184
CREATE TABLE IF NOT EXISTS `lenasys`.`Containers` (
185
`columnNr` INT NOT NULL ,
186
`orderNr` INT NOT NULL , -- the order of the examples in the same category
187
`fileName` VARCHAR(228) NOT NULL , -- primary key??
188
`exampleName` VARCHAR(20) NOT NULL ,
189
`subCategoryName` VARCHAR(64) NOT NULL ,
190
`categoryName` VARCHAR(64) NOT NULL ,
191
`courseID` VARCHAR(10) NOT NULL ,
192
`executable` BIT(1) , -- 1=true and 0=false
193
PRIMARY KEY (`columnNr`, `orderNr`, `fileName`,`exampleName`,`subCategoryName`, `categoryName`, `courseID`) ,
194
FOREIGN KEY (`fileName` )
195
REFERENCES `lenasys`.`Files` (`fileName` )ON UPDATE CASCADE ON DELETE CASCADE,
196
FOREIGN KEY (`exampleName`,`subCategoryName` ,`categoryName` , `courseID` )
197
REFERENCES `lenasys`.`Examples` (`exampleName`,`subCategoryName` ,`categoryName` , `courseID` )ON UPDATE CASCADE ON DELETE CASCADE)
200
-- -----------------------------------------------------
201
-- Table `lenasys`.`FileInterestingLines`
202
-- -----------------------------------------------------
203
CREATE TABLE IF NOT EXISTS `lenasys`.`FileInterestingLines` (
204
`id` INT NOT NULL AUTO_INCREMENT ,
205
`fileName` VARCHAR(228) NOT NULL ,
206
`columnNr` INT NOT NULL ,
207
`orderNr` INT NOT NULL ,
208
`exampleName` VARCHAR(20) NOT NULL ,
209
`subCategoryName` VARCHAR(64) NOT NULL ,
210
`categoryName` VARCHAR(64) NOT NULL ,
211
`courseID` VARCHAR(10) NOT NULL ,
214
PRIMARY KEY (`id`, `fileName` , `columnNr`, `exampleName`,`subCategoryName`,`categoryName`, `courseID`) ,
215
FOREIGN KEY (`columnNr`, `orderNr`, `fileName`, `exampleName`,`subCategoryName`, `categoryName`, `courseID`)
216
REFERENCES `lenasys`.`Containers` (`columnNr`, `orderNr`, `fileName`, `exampleName`,`subCategoryName`, `categoryName`, `courseID`)ON UPDATE CASCADE ON DELETE CASCADE)
219
-- -----------------------------------------------------
220
-- Table `lenasys`.`Keywords`
221
-- -----------------------------------------------------
222
CREATE TABLE IF NOT EXISTS `lenasys`.`Keywords` (
223
`keyword` VARCHAR(20) NOT NULL ,
224
`exampleName` VARCHAR(20) NOT NULL ,
225
`subCategoryName` VARCHAR(64) NOT NULL ,
226
`categoryName` VARCHAR(64) NOT NULL ,
227
`courseID` VARCHAR(10) NOT NULL ,
228
PRIMARY KEY (`keyword`, `exampleName`, `subCategoryName` , `categoryName`, `courseID`) ,
229
FOREIGN KEY (`exampleName`,`subCategoryName` , `categoryName`, `courseID` )
230
REFERENCES `lenasys`.`Examples` (`exampleName`, `subCategoryName` , `categoryName`, `courseID` )ON UPDATE CASCADE ON DELETE CASCADE)
234
-- -----------------------------------------------------
235
-- Table `lenasys`.`logUserLoginAttempts`
236
-- -----------------------------------------------------
237
CREATE TABLE IF NOT EXISTS `lenasys`.`logUserLoginAttempts` (
238
`id` INT NOT NULL AUTO_INCREMENT,
239
`userName` VARCHAR(20) NOT NULL ,
240
`userAgent` VARCHAR(200) NOT NULL , -- web browser and version
241
`userIP` VARCHAR(20) NOT NULL , -- ip-number
242
`browserID` VARCHAR(64) NOT NULL , -- autogenerated id for local-storage
243
`loginTimeStamp` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
244
`success` BIT(1) NOT NULL , -- 1=true and 0=false
247
-- -------------------------------------------------
248
-- Table `lenasys`.`logAssignedQuizzesAnswers`
249
-- -----------------------------------------------------
250
CREATE TABLE IF NOT EXISTS `lenasys`.`logAssignedQuizzesAnswers` (
252
`userName` VARCHAR(20) NOT NULL ,
253
`userAgent` VARCHAR(200) NOT NULL ,
254
`userIP` VARCHAR(20) NOT NULL ,
255
`courseID` VARCHAR(10) NOT NULL ,
256
`courseOccasion` VARCHAR(16) NOT NULL ,
257
`quizNr` INT NOT NULL ,
258
`answers` VARCHAR(45) NULL ,
259
`answerHash` VARCHAR(45) NULL ,
260
`answeredTimeStamp` DATETIME NULL , -- TIMESTAMP ??
261
`grade` VARCHAR(8) NULL ,
262
`gradeComment` VARCHAR(200) NULL ,
266
-- -------------------------------------------------
267
-- Table `lenasys`.`logBenchmark`
268
-- -----------------------------------------------------
269
CREATE TABLE IF NOT EXISTS `lenasys`.`logBenchmark` (
271
`userName` VARCHAR(20) NOT NULL ,
272
`userAgent` VARCHAR(200) NOT NULL ,
273
`userIP` VARCHAR(20) NOT NULL ,
274
`browser` VARCHAR(20) NOT NULL , -- will they be used to show different views? Can we just use userAgent instead?
275
`browserVersion` VARCHAR(20) NOT NULL , -- -||-
276
`renderer` VARCHAR(20) NOT NULL , -- ??
277
`rendererVersion` VARCHAR(20) NOT NULL , -- ??
278
`os` VARCHAR(64) NOT NULL ,
279
`osVersion` VARCHAR(20) NOT NULL ,
280
`fps` VARCHAR(20) NOT NULL ,
281
`maxFps` VARCHAR(20) NOT NULL ,
282
`hostName` VARCHAR(20) NOT NULL , -- Ändrad till hostName
283
`app` VARCHAR(20) NOT NULL ,
284
`screenResolution` VARCHAR(20) NOT NULL ,
285
`logTimeStamp` DATETIME NOT NULL ,
286
`runtime` INT NOT NULL ,
289
-- -------------------------------------------------
291
INSERT INTO `Courses`(`courseID`, `name`, `courseData`, `isPublic`, `isHidden`)
292
VALUES('DA146G' , 'Computer Graphics' , ' 7,5hp (IKI)', 1, 0),
293
('IS317G' , 'Database Construction' , ' 7,5hp (IKI)', 0, 1),
294
('IS114G' , 'Database Systems' , ' 7,5hp (IKI)', 1, 0),
295
('DV313G' , 'Webdevelopment - XML API' , ' 7,5hp (IKI)', 1, 0),
296
('DA330G' , 'Webprogramming' , ' 7,5hp (IKI)', 0, 0),
297
('DA525G' , 'Advanced Computer Graphics and Shader Programming' , ' 7,5hp (IKI)', 0, 1);
299
INSERT INTO `lenasys`.`Users` (`userName`,`name`,`passwd`, passwdHint,`userType`,`ssn`,`activeCourse`)
300
VALUES ('student','Per Student','06d31954049ffa053039ae83bab3dcd0ebc67195','gamla vanliga' ,2,'19900385-2345', 'DA330G'),
301
('student2','Gösta Student','06d31954049ffa053039ae83bab3dcd0ebc67195','SypARN',2,'19800385-2385','DA525G' ),
302
('lärare','Kalle Lärare','06d31954049ffa053039ae83bab3dcd0ebc67195','Syp och året då Sverige först tillåter kommersiell radio x2',1,'19800385-2325', 'DV313G' );
305
INSERT INTO `StudentCourseRegistrations`(`courseOccasion`, `userName`, `courseID`)
306
VALUES ('HT2012 period 2','student','DV313G'),
307
('HT2012 period 2','student','DA525G'),
308
('HT2012 period 2','student2','DV313G'),
309
('HT2012 period 2','student2','DA330G');
311
INSERT INTO `Categories`(`categoryName`, `courseID`, `orderNr`)
312
VALUES ('Vektorgrafik','DA525G', 1),
313
('Shading','DA525G', 2),
315
('SAX Examples','DV313G', 2),
316
('DOM Examples 1','DV313G', 3),
317
('DOM Examples 2 - Validation','DV313G', 4),
318
('DOM Examples 3 - XPATH','DV313G', 5),
319
('XSLT Examples 1 - Navigation','DV313G', 6),
320
('XSLT 2 - Apply Template and Grouping','DV313G', 7),
321
('PHP Introduction','DV313G', 1),
322
('Categorie i nånting','DA330G', 1),
323
('Categorie i någontingen mer','DA330G', 2);
325
INSERT INTO `SubCategories`(`subCategoryName`, `categoryName`, `courseID`, `orderNr`)
326
VALUES ('Punkt' ,'Vektorgrafik','DA525G', 1),
327
('Linjer' ,'Vektorgrafik','DA525G', 2),
328
('Böjningar' ,'Vektorgrafik','DA525G', 3),
329
('Vertexshading','Shading','DA525G', 1),
330
('Globalshading','Shading','DA525G', 2),
331
('Bra 3d' , '3D','DA525G', 1),
332
('Dålig 3d' , '3D','DA525G', 2),
333
('Introduction','PHP Introduction','DV313G', 1),
334
('SAX Parsing','SAX Examples','DV313G', 1),
335
('Validation','DOM Examples 1','DV313G', 1),
336
('XPATH 1','DOM Examples 3 - XPATH','DV313G', 1),
337
('XPATH 2','DOM Examples 3 - XPATH','DV313G', 2),
338
('Subcategorie i nånting' ,'Categorie i nånting','DA330G', 1),
339
('Subcategorie2 i nånting' ,'Categorie i nånting','DA330G', 2),
340
('Subcategorie i nåntingen mer', 'Categorie i någontingen mer','DA330G', 1),
341
('Subcategorie2 i nåntingen mer', 'Categorie i någontingen mer','DA330G', 2);
344
INSERT INTO Quizzes(`quizNr`, `subCategoryName`, `categoryName`, `courseID`, `quizData`, `allowMultipleReplies`,`autoCorrected`, `openingDate`,`closingDate` )
345
VALUES(1,'punkt' ,'Vektorgrafik','DA525G','Svara så gott du kan, lycka till',1,1, '2013-05-20 08:00:00','2013-05-25 23:59:00'),
346
(2,'punkt' ,'Vektorgrafik','DA525G','Lol glhf',1,1, '2013-05-20 08:00:00','2013-05-25 23:59:00'),
347
(3,'punkt' ,'Vektorgrafik','DA525G','ajaja detta kommer nu gå bra *NAWHT*',1,1, '2013-05-20 08:00:00','2013-05-25 23:59:00'),
348
(1,'linjer' ,'Vektorgrafik','DA525G','happ happ lycka till',1,1, '2013-05-20 08:00:00','2013-05-25 23:59:00'),
349
(5,'Validation' ,'DOM Examples 1','DV313G','Validation with DOM',1,1, '2013-05-20 08:00:00','2013-05-25 23:59:00'),
350
(5,'SAX Parsing' ,'SAX Examples','DV313G','parsing with SAX',1,1, '2013-05-20 08:00:00','2013-05-25 23:59:00');
352
INSERT INTO QuizQuestions(`questionID`, `quizNr`, `subCategoryName`, `categoryName`, `courseID`, `questionData`, `correctAnswer`)
353
VALUES(1,1,'punkt' ,'Vektorgrafik','DA525G','vad är roten av pi plus solens massa?','inte vet jag lol'),
354
(2,1,'punkt' ,'Vektorgrafik','DA525G','hur mår du?','Bra som bara den');
356
INSERT INTO Examples(`exampleName`, `subCategoryName`, `categoryName`, `courseID`, `orderNr`, `description`)
357
VALUES('punkt example 1','punkt' ,'Vektorgrafik','DA525G',1,'nån sorts förklaring om punkter'),
358
('punkt example 2','punkt' ,'Vektorgrafik','DA525G',2,'nån sorts förklaring om punkter i example 2'),
359
('ett till exempel','punkt' ,'Vektorgrafik','DA525G',3,'nån sorts förklaring om punkter igen'),
360
('XPATH 1a','XPATH 2' ,'DOM Examples 3 - XPATH','DV313G',1,'XPATH intro'),
361
('SAX Example 1b','SAX Parsing' ,'SAX Examples','DV313G',2,'Printing of SAX parsing'),
362
('SAX Example 1a','SAX Parsing' ,'SAX Examples','DV313G',1,'Handling of SAX parsing'),
363
('linjer example 1','linjer' ,'Vektorgrafik','DA525G',1,'nån sorts förklaring om linjer');
365
INSERT INTO Files(`fileName`,`fileType`,`codeLanguage`, `dataBlob`)
366
VALUES('exempel fil1',1,'html','Lorem ipsum dolor sit amet, consectetur adipiscing elit.
367
Phasellus a tellus lacus, a dapibus velit. Integer ac lorem dui, nec condimentum purus. Nullam convallis erat a
368
mauris pulvinar adipiscing. In consectetur, odio sit amet dictum pulvinar, erat risus condimentum mi, eu eleifend
369
dolor est id elit. Pellentesque eu tellus sed sem molestie fringilla. Integer auctor arcu nec nunc pharetra non
370
consectetur augue viverra. Pellentesque lorem nisl, tristique sed lobortis et, tincidunt sit amet diam. Maecenas
371
lacinia laoreet ligula, eget pretium libero venenatis malesuada. Suspendisse eu velit in arcu consectetur dictum a quis orci.
372
Maecenas vulputate tincidunt odio sit amet interdum. CuraBIT(1)ur non ante tristique mi malesuada dictum at quis nunc.
373
Suspendisse ornare leo a elit egestas eu rutrum lorem cursus. Quisque sollicitudin, nisi eget consectetur auctor,
374
leo risus blandit eros, id aliquet purus tortor a turpis. Donec venenatis blandit est quis imperdiet. Sed mauris eros,
375
pharetra vitae tempus vel, pretium at purus.'),
377
('exempel fil2',1,'html','Donec sed turpis ante, et dapibus augue. Pellentesque haBIT(1)ant morbi tristique
378
senectus et netus et malesuada fames ac turpis egestas. Sed at tellus ante. Nunc non dolor ipsum, quis lacinia felis.
379
Sed tristique, leo eu imperdiet laoreet, lacus lacus porta purus, quis laoreet nisi sem non orci. In non consequat enim.
380
Donec lacinia auctor convallis. Nulla facilisi. Nulla tortor mi, accumsan vel cursus nec, porta nec ante.
381
Aenean venenatis elit vel sem sodales vulputate. Donec adipiscing porta tortor, sed sollicitudin erat dapibus id');
384
-- -----------------------------------------------------
385
-- allow maximum of 5 succesfull quiz-attemps is a good begining for implementation of the loggingtables to add restriction.
386
-- ska courseID i ContainerFiles vara foreignkey ifrån contaiers??
b'\\ No newline at end of file'