/lenasys/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/lenasys/trunk
11.1.3 by Erik Wikström
Merged correct sql
1
DROP DATABASE dsystem;
2
CREATE DATABASE dsystem;
3
USE dsystem;
4
14.1.2 by Erik Wikström
Added user creation to db.sql, and switched to use the database on localhost
5
CREATE USER 'dbsk'@'localhost' IDENTIFIED BY 'Tomten2009';
6
GRANT ALL PRIVILEGES ON 'dsystem'.* TO 'dbsk'@'localhost' WITH GRANT OPTION;
7
1 by Henrik G.
First seed of Lenasys ... Needs to be Organized Further
8
/* Students */
9
CREATE TABLE Student(
10
    ssn CHAR(11), /*YYMMDD-XXXX*/
11
    name VARCHAR(100),
12
    loginName VARCHAR(50) UNIQUE, /*a02leifo */
11.2.5 by Erik Wikström
Remerged! Changed password hashes to VARCHAR(32)
13
    passw VARCHAR(32), /*MD5 hashed password*/
1 by Henrik G.
First seed of Lenasys ... Needs to be Organized Further
14
    PRIMARY KEY(ssn)    
15
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
16
17
/* Courses */
18
CREATE TABLE Course(
19
    name VARCHAR(200),
20
	description TEXT,
21
	courseData TEXT,
22
    PRIMARY KEY(name)
23
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
24
25
CREATE TABLE StudentCourseRegistration(
26
    studentSsn CHAR(11), /*YYMMDD-XXXX*/
27
    courseName VARCHAR(200),
28
    courseOccasion VARCHAR(25),
29
    PRIMARY KEY(studentSsn, courseName, courseOccasion),
30
    FOREIGN KEY(studentSsn) REFERENCES Student(ssn) ON UPDATE CASCADE,
31
    FOREIGN KEY(courseName) REFERENCES Course(name) ON UPDATE CASCADE
32
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
33
34
CREATE TABLE Quiz(
35
    nr INTEGER,
36
    courseName VARCHAR(200),
37
	opening TIMESTAMP,
38
	closing TIMESTAMP,
39
    quizData TEXT,
40
	autoCorrected BOOLEAN,
41
	allowMultipleReplies BOOLEAN,
42
	quizURI VARCHAR(255),
43
    PRIMARY KEY(nr, courseName),
44
    FOREIGN KEY(courseName) REFERENCES Course(name) ON UPDATE CASCADE
45
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
46
47
CREATE TABLE QuizVariant(
48
    qVarNr INTEGER,
49
    quizNr INTEGER,
50
    quizCourseName VARCHAR(200),
51
    correctAnswer VARCHAR(255),
52
    quizObjectIDs TEXT,
53
    PRIMARY KEY(qVarNr, quizNr, quizCourseName),
54
    FOREIGN KEY(quizNr, quizCourseName) REFERENCES Quiz(nr, courseName) ON UPDATE CASCADE
55
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
56
57
CREATE TABLE QuizVariantObject(
58
    id VARCHAR(255),
59
    quizNr INTEGER,
60
    qVarNr INTEGER,
61
    quizCourseName VARCHAR(200),
62
    objectData TEXT,
63
    PRIMARY KEY(id, quizNr, qVarNr, quizCourseName),
64
    FOREIGN KEY(qVarNr, quizNr, quizCourseName) REFERENCES QuizVariant(qVarNr, quizNr, quizCourseName) ON UPDATE CASCADE
65
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
66
67
CREATE TABLE AssignedQuizzes(
68
    ssn CHAR(11), /*YYMMDD-XXXX*/
69
    quizNr INTEGER,
70
    qVarNr INTEGER,
71
    quizCourseName VARCHAR(200),
72
	courseOccasion VARCHAR(25),
73
    answerHash VARCHAR(255), /*Hash of Student login name + answer */
74
    answer TEXT,
75
	grade VARCHAR(10),
76
	gradeComment TEXT,
77
	answeredDateTime TIMESTAMP,
78
    userAgent VARCHAR(1024),
79
    userIP VARCHAR(20), /*$_SERVER['REMOTE_ADDR']*/
80
    PRIMARY KEY(ssn, quizNr, quizCourseName, courseOccasion),
81
    FOREIGN KEY(ssn) REFERENCES Student(ssn) ON UPDATE CASCADE,
82
    FOREIGN KEY(quizNr, quizCourseName) REFERENCES QuizVariant(quizNr, quizCourseName) ON UPDATE CASCADE
83
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
84
85
CREATE TABLE AssignedQuizzesAnswerLog(
86
    ssn CHAR(11), /*YYMMDD-XXXX*/
87
	loginName VARCHAR(50),
88
    quizNr INTEGER,
89
    qVarNr INTEGER,
90
    quizCourseName VARCHAR(200),
91
	courseOccasion VARCHAR(25),
92
    answerHash VARCHAR(255), /*Hash of Student login name + answer */
93
    answer TEXT,
94
	grade VARCHAR(10),
95
	gradeComment TEXT,
96
	answeredDateTime TIMESTAMP,
97
    userAgent VARCHAR(1024), /*$_SERVER['HTTP_USER_AGENT']*/
98
    userIP VARCHAR(20) /*$_SERVER['REMOTE_ADDR']*/
99
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
100
101
CREATE TABLE QSystemUser(
11.2.5 by Erik Wikström
Remerged! Changed password hashes to VARCHAR(32)
102
    userName     VARCHAR(16) UNIQUE NOT NULL,
1 by Henrik G.
First seed of Lenasys ... Needs to be Organized Further
103
    passw        VARCHAR(32) NOT NULL,
104
    userType     VARCHAR(10) NOT NULL,
105
    PRIMARY KEY(userName)
106
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
107
108
/* Logging of all student login attempts */
109
CREATE TABLE userLoginsLog(
110
    id INTEGER AUTO_INCREMENT,
111
    loginName VARCHAR(16),
112
    userAgent VARCHAR(1024), /*$_SERVER['HTTP_USER_AGENT']*/
113
    userIP VARCHAR(20), /*$_SERVER['REMOTE_ADDR']*/
114
    DateTime TIMESTAMP,
115
	success VARCHAR(25),
116
	courseName VARCHAR(100),
117
	courseOccasion VARCHAR(25),
118
    quizNr INTEGER,
119
    PRIMARY KEY(id)
120
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
121
122
INSERT INTO Course(name) VALUES('DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)');
123
INSERT INTO QSystemUser(userName,passw,userType) VALUES('tomtefar','$1$nwRo7ye/$WK7wY9GbNMRj3lIeuaPcG/','admin');
124
INSERT INTO Student(ssn,name,loginName,passw) VALUES ('780323-1212','Lei Fo','a02leifo','56edf750f3bb2053b3c1c44429b3ce82'); 
125
INSERT INTO StudentCourseRegistration(studentSsn, courseName, courseOccasion) VALUES ('780323-1212','DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','HT-12 LP1');
126
INSERT INTO StudentCourseRegistration(studentSsn, courseName, courseOccasion) VALUES ('780323-1212','DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','HT-12 LP2');
127
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>');
128
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');
129
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>');
130
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>');
131
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>');
132
INSERT INTO QuizVariantObject(id, quizNr, qVarNr, quizCourseName, objectData) VALUES('TEST4',1,1,'DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','<script lang="Javascript">alert("&lt;TEST4");</script>');
133
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');
134
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>');
135
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>');
136
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>');
137
INSERT INTO QuizVariantObject(id, quizNr, qVarNr, quizCourseName, objectData) VALUES('TEST4',1,2,'DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','<script lang="Javascript">alert("&lt;TEST4 Var2");</script>');
138
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>');
139
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');
140
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>');
141
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>');
142
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>');
143
INSERT INTO QuizVariantObject(id, quizNr, qVarNr, quizCourseName, objectData) VALUES('TEST4',2,1,'DA133G Webbutveckling - datorgrafik G1N, 7,5hp (IKI)','<script lang="Javascript">alert("&lt;TEST4 d2 var1");</script>');
144
145
146
DELIMITER //
147
DROP PROCEDURE IF EXISTS CHECKLOGIN;
148
CREATE PROCEDURE CHECKLOGIN(userName VARCHAR(16), userPassword VARCHAR(41))
149
BEGIN
150
   SELECT userName,passw,userType FROM QSystemUser WHERE userName=userName AND passw=userPassword;
14.1.2 by Erik Wikström
Added user creation to db.sql, and switched to use the database on localhost
151
END;
152
//