1
DROP DATABASE quizsystem;
2
CREATE DATABASE quizsystem;
6
ssn CHAR(11), /*YYMMDD-XXXX*/
8
loginName VARCHAR(50) UNIQUE, /*a02leifo */
9
passw VARCHAR(50), /*MD5-hashat lösenord*/
11
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
19
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
21
CREATE TABLE StudentCourseRegistration(
22
studentSsn CHAR(11), /*YYMMDD-XXXX*/
23
courseName VARCHAR(200),
24
courseOccasion VARCHAR(25),
25
PRIMARY KEY(studentSsn, courseName, courseOccasion),
26
FOREIGN KEY(studentSsn) REFERENCES Student(ssn) ON UPDATE CASCADE,
27
FOREIGN KEY(courseName) REFERENCES Course(name) ON UPDATE CASCADE
28
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
32
courseName VARCHAR(200),
36
autoCorrected BOOLEAN,
37
allowMultipleReplies BOOLEAN,
39
PRIMARY KEY(nr, courseName),
40
FOREIGN KEY(courseName) REFERENCES Course(name) ON UPDATE CASCADE
41
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
43
CREATE TABLE QuizVariant(
46
quizCourseName VARCHAR(200),
47
correctAnswer VARCHAR(255),
49
PRIMARY KEY(qVarNr, quizNr, quizCourseName),
50
FOREIGN KEY(quizNr, quizCourseName) REFERENCES Quiz(nr, courseName) ON UPDATE CASCADE
51
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
53
CREATE TABLE QuizVariantObject(
57
quizCourseName VARCHAR(200),
59
PRIMARY KEY(id, quizNr, qVarNr, quizCourseName),
60
FOREIGN KEY(qVarNr, quizNr, quizCourseName) REFERENCES QuizVariant(qVarNr, quizNr, quizCourseName) ON UPDATE CASCADE
61
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
63
CREATE TABLE AssignedQuizzes(
64
ssn CHAR(11), /*YYMMDD-XXXX*/
67
quizCourseName VARCHAR(200),
68
courseOccasion VARCHAR(25),
69
answerHash VARCHAR(255), /*Hash of Student login name + answer */
73
answeredDateTime TIMESTAMP,
74
userAgent VARCHAR(1024),
75
userIP VARCHAR(20), /*$_SERVER['REMOTE_ADDR']*/
76
PRIMARY KEY(ssn, quizNr, quizCourseName, courseOccasion),
77
FOREIGN KEY(ssn) REFERENCES Student(ssn) ON UPDATE CASCADE,
78
FOREIGN KEY(quizNr, quizCourseName) REFERENCES QuizVariant(quizNr, quizCourseName) ON UPDATE CASCADE
79
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
81
CREATE TABLE AssignedQuizzesAnswerLog(
82
ssn CHAR(11), /*YYMMDD-XXXX*/
83
loginName VARCHAR(50),
86
quizCourseName VARCHAR(200),
87
courseOccasion VARCHAR(25),
88
answerHash VARCHAR(255), /*Hash of Student login name + answer */
92
answeredDateTime TIMESTAMP,
93
userAgent VARCHAR(1024), /*$_SERVER['HTTP_USER_AGENT']*/
94
userIP VARCHAR(20) /*$_SERVER['REMOTE_ADDR']*/
95
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
97
CREATE TABLE QSystemUser(
98
userName VARCHAR(16) UNIQUE NOT NULL,
99
passw VARCHAR(41) NOT NULL,
100
userType VARCHAR(10) NOT NULL,
101
PRIMARY KEY(userName)
102
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
104
/* Logging of all student login attempts */
105
CREATE TABLE userLoginsLog(
106
id INTEGER AUTO_INCREMENT,
107
loginName VARCHAR(16),
108
userAgent VARCHAR(1024), /*$_SERVER['HTTP_USER_AGENT']*/
109
userIP VARCHAR(20), /*$_SERVER['REMOTE_ADDR']*/
112
courseName VARCHAR(100),
113
courseOccasion VARCHAR(25),
116
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
118
/* Logging of failed attempt to login to the backend */
119
CREATE TABLE logFailedUserLogins(
120
id INTEGER AUTO_INCREMENT,
121
userName VARCHAR(16),
122
user Type VARCHAR(10),
123
userAgent VARCHAR(1024), /*$_SERVER['HTTP_USER_AGENT']*/
124
userIP VARCHAR(20), /*$_SERVER['REMOTE_ADDR']*/
128
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
132
/* Logging of successful logins to the backend */
133
CREATE TABLE userLoginsLog(
134
id INTEGER AUTO_INCREMENT,
135
loginName VARCHAR(16),
136
userAgent VARCHAR(1024), /*$_SERVER['HTTP_USER_AGENT']*/
137
userIP VARCHAR(20), /*$_SERVER['REMOTE_ADDR']*/
141
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
143
INSERT INTO Course(name) VALUES('DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)');
144
INSERT INTO QSystemUser(userName,passw,userType) VALUES('tomtefar','$1$nwRo7ye/$WK7wY9GbNMRj3lIeuaPcG/','admin');
146
INSERT INTO Student(ssn,name,loginName,passw) VALUES ('780323-1212','Lei Fo','a02leifo','56edf750f3bb2053b3c1c44429b3ce82');
147
INSERT INTO StudentCourseRegistration(studentSsn, courseName, courseOccasion) VALUES ('780323-1212','DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','HT-12 LP1');
148
INSERT INTO StudentCourseRegistration(studentSsn, courseName, courseOccasion) VALUES ('780323-1212','DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','HT-12 LP2');
150
INSERT INTO Quiz(nr, courseName, opening, closing, autoCorrected, allowMultipleReplies, quizURI, quizData) VALUES(1,'DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','2012-08-19 00:00:00','2012-08-28 00:00:00',1,0,'','<div id="dugga"><h1>Dugga ett för en kurs</h1><p>Duggan ditten och duggan datten</p></div>');
151
INSERT INTO QuizVariant(quizNr, qVarNr, quizCourseName, correctAnswer, quizObjectIDs) VALUES(1,1,'DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','1,2,3,4,5,6,7,8','TEST1 TEST2 TEST3 TEST4');
152
INSERT INTO QuizVariantObject(id, quizNr, qVarNr, quizCourseName, objectData) VALUES('TEST1',1,1,'DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','<div id="TEST1"><p>Du ska göra bla bla...</p></div>');
153
INSERT INTO QuizVariantObject(id, quizNr, qVarNr, quizCourseName, objectData) VALUES('TEST2',1,1,'DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','<div id="TEST2"><strong>1 2 3 4 5</strong></div>');
154
INSERT INTO QuizVariantObject(id, quizNr, qVarNr, quizCourseName, objectData) VALUES('TEST3',1,1,'DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','<script lang="Javascript">alert("TEST3");</script>');
155
INSERT INTO QuizVariantObject(id, quizNr, qVarNr, quizCourseName, objectData) VALUES('TEST4',1,1,'DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','<script lang="Javascript">alert("<TEST4");</script>');
157
INSERT INTO QuizVariant(quizNr, qVarNr, quizCourseName, correctAnswer, quizObjectIDs) VALUES(1,2,'DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','8,7,6,5,4,3,2,1','TEST1 TEST2 TEST3 TEST4');
158
INSERT INTO QuizVariantObject(id, quizNr, qVarNr, quizCourseName, objectData) VALUES('TEST1',1,2,'DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','<div id="TEST1"><p>Variant 2 på dugga 1</p></div>');
159
INSERT INTO QuizVariantObject(id, quizNr, qVarNr, quizCourseName, objectData) VALUES('TEST2',1,2,'DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','<div id="TEST2"><strong>1111 2222 33333</strong></div>');
160
INSERT INTO QuizVariantObject(id, quizNr, qVarNr, quizCourseName, objectData) VALUES('TEST3',1,2,'DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','<script lang="Javascript">alert("TEST3 Var2");</script>');
161
INSERT INTO QuizVariantObject(id, quizNr, qVarNr, quizCourseName, objectData) VALUES('TEST4',1,2,'DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','<script lang="Javascript">alert("<TEST4 Var2");</script>');
163
INSERT INTO Quiz(nr, courseName, opening, closing, autoCorrected, quizData) VALUES(2,'DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','2012-08-19 00:00:00','2012-08-28 00:00:00',0,'<div id="dugga"><h1>Dugga 2 för en kurs</h1><p>Duggan ditten och duggan datten</p></div>');
164
INSERT INTO QuizVariant(quizNr, qVarNr, quizCourseName, correctAnswer, quizObjectIDs) VALUES(2,1,'DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','1,2,3,4,5,6,7,8','TEST1 TEST2 TEST3 TEST4');
165
INSERT INTO QuizVariantObject(id, quizNr, qVarNr, quizCourseName, objectData) VALUES('TEST1',2,1,'DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','<div id="TEST1"><p>I dugga 2 variant 1 ska bla bla...</p></div>');
166
INSERT INTO QuizVariantObject(id, quizNr, qVarNr, quizCourseName, objectData) VALUES('TEST2',2,1,'DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','<div id="TEST2"><strong>--!!--!!--!!--</strong></div>');
167
INSERT INTO QuizVariantObject(id, quizNr, qVarNr, quizCourseName, objectData) VALUES('TEST3',2,1,'DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','<script lang="Javascript">alert("TEST3 d2 var1");</script>');
168
INSERT INTO QuizVariantObject(id, quizNr, qVarNr, quizCourseName, objectData) VALUES('TEST4',2,1,'DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','<script lang="Javascript">alert("<TEST4 d2 var1");</script>');
172
DROP PROCEDURE IF EXISTS CHECKLOGIN;
173
CREATE PROCEDURE CHECKLOGIN(userName VARCHAR(16), userPassword VARCHAR(41))
175
SELECT userName,passw,userType FROM QSystemUser WHERE userName=userName AND passw=userPassword;
181
allowMultipleReplies BOOLEAN,
182
quizURI VARCHAR(255),
b'\\ No newline at end of file'