Planning
CREATE TABLE C_USERS(
USER_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
USER_FNAME VARCHAR(20) NOT NULL,
USER_LNAME VARCHAR(20) NOT NULL,
USER_EMAIL VARCHAR(60) NOT NULL,
USER_LEVEL TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
USER_PASS CHAR(40) NOT NULL,
USER_TELEPHONE INT(10) NOT NULL,
USER_REGISTRATION DATETIME NOT NULL,
USER_STREAM TEXT DEFAULT NULL,
PRIMARY KEY (USER_ID),
UNIQUE KEY (USER_EMAIL),
INDEX login (USER_EMAIL,USER_PASS )
);
CREATE TABLE C_PNEWS(
PN_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
USER_ID INT NOT NULL,
PN_TITLE VARCHAR(255) NOT NULL,
PN_TEXT TEXT NOT NULL,
PN_IMAGE VARCHAR(60) DEFAULT NULL,
PN_DATE DATETIME NOT NULL,
PRIMARY KEY(PN_ID),
INDEX(PN_ID, USER_ID)
);
CREATE TABLE C_CNEWS(
CN_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
USER_ID INT NOT NULL,
COURSE_ID VARCHAR(7) NOT NULL,
CN_TITLE VARCHAR(255) NOT NULL,
CN_TEXT TEXT NOT NULL,
CN_IMAGE VARCHAR(60) DEFAULT NULL,
CN_DATE DATETIME NOT NULL,
PRIMARY KEY(CN_ID),
INDEX(CN_ID, USER_ID)
);
CREATE TABLE C_MNEWS(
MN_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
USER_ID INT NOT NULL,
MN_TITLE VARCHAR(255) NOT NULL,
MN_TEXT TEXT NOT NULL,
MN_IMAGE VARCHAR(60) DEFAULT NULL,
MN_DATE DATETIME NOT NULL,
PRIMARY KEY(MN_ID),
INDEX(MN_ID, USER_ID)
);
CREATE TABLE C_COURSE(
COURSE_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
COURSE_CODE VARCHAR(7) NOT NULL,
COURSE_NAME VARCHAR(40)NOT NULL,
COURSE_DESC VARCHAR(255) NOT NULL,
PRIMARY KEY(COURSE_ID),
INDEX(COURSE_ID)
);
CREATE TABLE C_TOPICS(
TOPIC_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
COURSE_ID INT NOT NULL,
USER_ID INT UNSIGNED NOT NULL,
TOPIC_SUBJECT VARCHAR(255) NOT NULL,
TOPIC_DATE DATETIME NOT NULL,
PRIMARY KEY(TOPIC_ID)
);
CREATE TABLE C_POSTS(
POST_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
TOPIC_ID INT UNSIGNED NOT NULL,
USER_ID INT UNSIGNED NOT NULL,
POST_TEXT TEXT NOT NULL,
POST_DATE DATETIME NOT NULL,
PRIMARY KEY(POST_ID),
INDEX(POST_ID, TOPIC_ID)
);
CREATE TABLE C_TEXTBOOK(
TEXTBOOK_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
COURSE_ID INT UNSIGNED NOT NULL,
USER_ID INT UNSIGNED NOT NULL,
TEXTBOOK_TITLE VARCHAR(255) NOT NULL,
TEXTBOOK_DESC VARCHAR(255) NOT NULL,
TEXTBOOK_ISBN INT UNSIGNED NOT NULL,
TEXTBOOK_PRICE INT UNSIGNED NOT NULL,
PRIMARY KEY(TEXTBOOK_ID)
);
Use Scenario: Browsing for Forum or Professor
- User from a drop down list will select course or professor website he/she would like to access
Use Scenario: login/register
- At the landing page user will have option to login or register
- If user decide to login, after successful verification she/he would be redirected to the home page
- If user is not currently subscribed he/she will need to register in order to access the forum
Use Scenario: Access live stream
- User will login with credential to the website
- User will choose wanted professor from the list
- On the professor website user will click on the stream link which will take him into the live stream page
- User will need to enter code provided by the professor to see live stream
Use scenario: Posting a comment
- User will login with credential to the website
- User from a drop down list will select course
- From a navigation menu user will select topics tab
- To access specific topic user will click on the topic which will take him to topic page with users post
- To enter post at the bottom of the page user will be able to enter text and submit the post
Use scenario: Create a topic on forum
- User will login with credential to the website
- User from a drop down list will select course
- From a navigation menu user will select topics tab
- From the navigation menu user will choose create topic
- On the create topic page user will need to enter topic and text for the thread
Use scenario: Selling/buying textbook
- User will login with credential to the website
- User from a drop down list will select course
- User will select from a navigation menu brat textbooks
- User will be asked if want to buy or sell textbook
- If buy:
- List of currently available books will be populated
- If sell
- User will be redirected to the page whee he/she can enter textbook information
First design ideas
Improvmnents to layout