book auctioning system blue jays. system overview our system is a book auction website for depaul...

28
Book Auctioning Book Auctioning System System Blue Jays Blue Jays

Post on 22-Dec-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

Book Auctioning SystemBook Auctioning System

Blue JaysBlue Jays

System OverviewSystem Overview

Our system is a book auction website for Our system is a book auction website for DePaul University. Students have the DePaul University. Students have the opportunity to buy and sell books in an opportunity to buy and sell books in an auction structured system. auction structured system.

The University also has the ability to publish The University also has the ability to publish & sell the books directly to the students. & sell the books directly to the students.

Book Auctioning SystemBook Auctioning System

Types of UserTypes of User Application AdministratorApplication Administrator AuctioneerAuctioneer

Buyer Buyer SellerSeller

Why???Why???

Why a Book Action Site???Why a Book Action Site???

Bookstores overprice their booksBookstores overprice their books Will encourage students to buy all their books for classes. Will encourage students to buy all their books for classes.

Some Students only buy books for a particular Some Students only buy books for a particular quarter and have no use for them afterwards. quarter and have no use for them afterwards.

Students can now sell them back for a good price! Students can now sell them back for a good price!

Students can save money on shipping by selling Students can save money on shipping by selling books to on campus students. books to on campus students.

Students will always need books; thus, it is in Students will always need books; thus, it is in demand- the market is there!demand- the market is there!

With That In MindWith That In Mind

Here is our system…Here is our system…

-Book Auction Website- -Book Auction Website-

http://http://www.skitowns.us/auction/main.phpwww.skitowns.us/auction/main.php

First, I will explain a few requirements from the First, I will explain a few requirements from the site. site.

Then, Sergey will follow with design and code.Then, Sergey will follow with design and code. Next, Zuku will discuss the XML integration into Next, Zuku will discuss the XML integration into

our system.our system. Finally, I will conclude our presentation. Finally, I will conclude our presentation.

Requirements (Logging In)Requirements (Logging In)

-Main Page User Login Requirements--Main Page User Login Requirements-

Requirement 2.1.1- User LoginRequirement 2.1.1- User Login There will be a section to enter in a logon id as well as a There will be a section to enter in a logon id as well as a

corresponding password in the Interface of the main page. Also, corresponding password in the Interface of the main page. Also, contain a link for users without a login or password (users who contain a link for users without a login or password (users who have not logged in) to a page where they can submit any have not logged in) to a page where they can submit any information need to become registered on the system.information need to become registered on the system.

Requirement 2.1.1.1- Login and Password:Requirement 2.1.1.1- Login and Password: The system should display a means of input for the user on the The system should display a means of input for the user on the

main page to provide a login and password string acquired main page to provide a login and password string acquired through the signup procedure (2.2) which the server side will through the signup procedure (2.2) which the server side will verify, and then log the user into the system verify, and then log the user into the system

Design & Implementation (Logging In)Design & Implementation (Logging In)

Design & Implementation (Logging In)Design & Implementation (Logging In)

<?php<?php include_once("autoloader.php");include_once("autoloader.php");

$login = $_GET['login'];$login = $_GET['login']; $pass = $_GET['password'];$pass = $_GET['password'];

$conObj = new DBCon();$conObj = new DBCon(); $con = $conObj->openCon();$con = $conObj->openCon(); $uid = UserDB::checkLogin($login, $pass, $con);$uid = UserDB::checkLogin($login, $pass, $con);

if($uid > 0)if($uid > 0) {{ $admin = UserDB::isAdmin($uid, $con);$admin = UserDB::isAdmin($uid, $con); $user = new User();$user = new User(); $user->Uid($uid);$user->Uid($uid); $user->Login($login);$user->Login($login); $user->Admin($admin);$user->Admin($admin); $user->updateSession();$user->updateSession(); }}

$conObj->closeCon();$conObj->closeCon();

header("Location: /auction/main.php"); // . $_SERVER['HTTP_REFERER']);header("Location: /auction/main.php"); // . $_SERVER['HTTP_REFERER']); ?>?>

Requirements (Sign-Up)Requirements (Sign-Up)-Client-Side User Interface Registration--Client-Side User Interface Registration-

Sign Up pageSign Up page:: Additionally, the system should provide a link on the Additionally, the system should provide a link on the

main page that will allow non-registered users to sign up main page that will allow non-registered users to sign up to be able to use the system. Users will need to provide to be able to use the system. Users will need to provide the following details in a form: Username, Password, the following details in a form: Username, Password, Password verification, E-mail, First Name, Last Name, Password verification, E-mail, First Name, Last Name, Address, City, State, Zip, CC Number, CC Expiration Address, City, State, Zip, CC Number, CC Expiration date, and Campus. Once the information is submitted it, date, and Campus. Once the information is submitted it, must wait for approval by the Administrator and will be must wait for approval by the Administrator and will be confirmed via email.confirmed via email.

Requirements (Sign-Up)Requirements (Sign-Up)

-Client-Side User Interface Registration--Client-Side User Interface Registration-

Username – The string that the user would like to use on the system. Username – The string that the user would like to use on the system. The system must validate that usernames are unique and up to 8 The system must validate that usernames are unique and up to 8 characters long.characters long.

PasswordPassword – The string of the password that the user would like to use on – The string of the password that the user would like to use on the system, which must be 8 characters long. The password cannot be the system, which must be 8 characters long. The password cannot be the same as the username, and the system should validate this on the same as the username, and the system should validate this on submission.submission.

Password verification – The system should provide a means of input for Password verification – The system should provide a means of input for the user to re-enter the password for verification. If the password and the user to re-enter the password for verification. If the password and the password verification strings do not match, the system should the password verification strings do not match, the system should inform the user in a message that the two must match.inform the user in a message that the two must match.

E-mail – The system will provide a means of input for the user as a E-mail – The system will provide a means of input for the user as a textbox to enter an E-mail address. The system should validate the e-textbox to enter an E-mail address. The system should validate the e-mail addresses to see if they are “Like” ‘*@*.*’, which is a check to see if mail addresses to see if they are “Like” ‘*@*.*’, which is a check to see if the e-mail is in correct format. The e-mail address will be used in the the e-mail is in correct format. The e-mail address will be used in the verification process of a new user into the system. verification process of a new user into the system.

First Name – The system should provide a means of input for the first First Name – The system should provide a means of input for the first name of the user, which must be a string no larger than 16 characters.name of the user, which must be a string no larger than 16 characters.

Requirements (Sign-Up)Requirements (Sign-Up)

-Client-Side User Interface Registration--Client-Side User Interface Registration-

Last Name – The system should provide a means of input for the last Last Name – The system should provide a means of input for the last name of the user, which must be a string no larger than 16 characters. name of the user, which must be a string no larger than 16 characters.

Address – The system should provide a means of input for the street Address – The system should provide a means of input for the street address location of the user. The address field should be optional to address location of the user. The address field should be optional to the user.the user.

City – The system should provide a means of input for the user to City – The system should provide a means of input for the user to enter the city, which will be required information.enter the city, which will be required information.

State – The system should provide a means of input for the user to State – The system should provide a means of input for the user to select the state out of a selection pick-list control that will contain the select the state out of a selection pick-list control that will contain the 2-character abbreviation for each of the 50 states.2-character abbreviation for each of the 50 states.

Zip-Code – The system should provide a means of input for the user to Zip-Code – The system should provide a means of input for the user to enter a zip code. The system must validate the entry to be a 5-digit enter a zip code. The system must validate the entry to be a 5-digit numeric input.numeric input.

Requirements (Sign-Up)Requirements (Sign-Up)

-Client-Side User Interface Registration--Client-Side User Interface Registration-

Credit-Card Number – The system should provide a means of Credit-Card Number – The system should provide a means of input for the user to enter their credit-card number. The system input for the user to enter their credit-card number. The system must validate the entry to be a 16-digit numeric input. Credit Card must validate the entry to be a 16-digit numeric input. Credit Card Number input is optional.Number input is optional.

Credit-Card Expiration Date – The system should have two Credit-Card Expiration Date – The system should have two selection pick-list controls; one will contain each of the months of selection pick-list controls; one will contain each of the months of the year abbreviated as 2-character digits (01-12), and the other the year abbreviated as 2-character digits (01-12), and the other will contain each of the years starting with 2005 and ending at will contain each of the years starting with 2005 and ending at 2015. The credit card expiration date input is optional; however, 2015. The credit card expiration date input is optional; however, when there is an input for the credit card number, the expiration when there is an input for the credit card number, the expiration date input becomes required. date input becomes required.

Campus – The system should provide a means of input to the Campus – The system should provide a means of input to the user to select the campus of DePaul that they are attending. This user to select the campus of DePaul that they are attending. This will include Loop, Lincoln Park, O’hare, Barat, and Naperville.will include Loop, Lincoln Park, O’hare, Barat, and Naperville.

Design & Implementation (Sign-Up)Design & Implementation (Sign-Up)

Design & Implementation (Sign-Up)Design & Implementation (Sign-Up) // $db->openCon() takes care of this// $db->openCon() takes care of this //mysql_select_db($sDatabase);//mysql_select_db($sDatabase);

/*function UserIDCheck($sValue, &$oStatus)/*function UserIDCheck($sValue, &$oStatus) {{ global $sTable;global $sTable; $sUserID = addslashes($sValue);$sUserID = addslashes($sValue); $oStatus->bValid = false;$oStatus->bValid = false; $oStatus->sErrMsg = "User ID '$sValue' already exist";$oStatus->sErrMsg = "User ID '$sValue' already exist"; $sQuery = "SELECT UserID FROM $sTable WHERE UserID = '$sUserID'";$sQuery = "SELECT UserID FROM $sTable WHERE UserID = '$sUserID'"; if ($rRecordset = mysql_query($sQuery))if ($rRecordset = mysql_query($sQuery)) {{ $oStatus->bValid = mysql_num_rows($rRecordset) == 0;$oStatus->bValid = mysql_num_rows($rRecordset) == 0; mysql_free_result($rRecordset);mysql_free_result($rRecordset); }} }*/}*/ $UserID = $_POST['txtUserID'];$UserID = $_POST['txtUserID']; $Password = $_POST['txtPassword'];$Password = $_POST['txtPassword']; $Email = $_POST['txtEmail'];$Email = $_POST['txtEmail']; $FirstName = $_POST['txtFirstName'];$FirstName = $_POST['txtFirstName']; $LastName = $_POST['txtLastName'];$LastName = $_POST['txtLastName']; $Address = $_POST['txtAddress'];$Address = $_POST['txtAddress']; $City =$_POST['txtCity'];$City =$_POST['txtCity']; $State =$_POST['txtState'];$State =$_POST['txtState']; $Zip =$_POST['txtZip'];$Zip =$_POST['txtZip']; $CreditCard =$_POST['txtCreditCard'];$CreditCard =$_POST['txtCreditCard']; $CreditDate =$_POST['txtCreditDate'];$CreditDate =$_POST['txtCreditDate']; //$Campus =$_POST['txtCampus'];//$Campus =$_POST['txtCampus'];

Design & Implementation (Sign-Up)Design & Implementation (Sign-Up)

$db = new DBCon();$db = new DBCon(); $rConn = $db->openCon();$rConn = $db->openCon();

if(UserDB::isLoginUnique($UserID, $rConn))if(UserDB::isLoginUnique($UserID, $rConn)) {{ $sQuery = "INSERT INTO user ( `Login` , `Password` , `FirstName` , `LastName` , $sQuery = "INSERT INTO user ( `Login` , `Password` , `FirstName` , `LastName` ,

`Email` , `Address` , `City` , `State` , `Zip` , `Active` , `CCNumber` , `CCExpDate`) `Email` , `Address` , `City` , `State` , `Zip` , `Active` , `CCNumber` , `CCExpDate`) VALUES (VALUES ( '$UserID', '$Password', '$FirstName', '$LastName', '$Email', '$Address', '$City', '$UserID', '$Password', '$FirstName', '$LastName', '$Email', '$Address', '$City',

'$State', '$Zip', 0, '$CreditCard', '$CreditDate''$State', '$Zip', 0, '$CreditCard', '$CreditDate' )";)"; mysql_query($sQuery, $rConn);mysql_query($sQuery, $rConn);

$newUid = mysql_insert_id($rConn);$newUid = mysql_insert_id($rConn);

$sQuery = "insert into userrole values ($newUid, 2)";$sQuery = "insert into userrole values ($newUid, 2)"; mysql_query($sQuery, $rConn);mysql_query($sQuery, $rConn); }} elseelse $bad = true;$bad = true;

System Testing (Sign-Up)System Testing (Sign-Up)

Each requirement was tested through a formal Each requirement was tested through a formal Quality Assurance lifecycle with an indication of Quality Assurance lifecycle with an indication of P/F with comments if necessary. P/F with comments if necessary.

All requirements implemented were system All requirements implemented were system tested in addition to the unit testing at the time of tested in addition to the unit testing at the time of implementation by the developers. implementation by the developers.

One sample test case for the Sign-Up page One sample test case for the Sign-Up page requirements demonstrated:requirements demonstrated:

Requirements (Active Users)Requirements (Active Users)

-Activating Users (Administration)--Activating Users (Administration)-Requirement 2.2.2- Administration Approval/Account ActivationRequirement 2.2.2- Administration Approval/Account Activation

Administration ApprovalAdministration Approval In addition to the user registration interfaces and In addition to the user registration interfaces and

forms, there must be a completion process that the forms, there must be a completion process that the Administrator must perform to successfully register the Administrator must perform to successfully register the user into the system. To meet this requirement, which user into the system. To meet this requirement, which requires data verification and authentication by the requires data verification and authentication by the system, an Administrator to accept the user and have system, an Administrator to accept the user and have the system send a notification, and the system to the system send a notification, and the system to accept e-mail verification from the user.accept e-mail verification from the user.

Requirements (Add Book)Requirements (Add Book)

- Adding a Book-Adding a Book-Requirement 1.2.2.1Requirement 1.2.2.1

The Product Management section of the The Product Management section of the Inventory Administration Interface should have a Inventory Administration Interface should have a section providing the Administrator the ability to section providing the Administrator the ability to add a book (with a Buy NOW price if applicable). add a book (with a Buy NOW price if applicable). Ideally, a user will add his/her book as an item Ideally, a user will add his/her book as an item in their auction interface; however, the system in their auction interface; however, the system should provide the ability to add a book if the should provide the ability to add a book if the business need arises. business need arises.

Requirements (Add Book)Requirements (Add Book)

- Adding a Book (Available Only to Registered Users)-Adding a Book (Available Only to Registered Users)-Requirement 2.1.4Requirement 2.1.4

The system must check to validate whether the current The system must check to validate whether the current user is logged in. If the user is not logged in, the system user is logged in. If the user is not logged in, the system must provide a link to the user to log-in, and display a must provide a link to the user to log-in, and display a message stating that this functionality is for registered message stating that this functionality is for registered users only. If the user is logged in, the system will users only. If the user is logged in, the system will provide a means for the user to enter in the data on the provide a means for the user to enter in the data on the book: Title, ISBN, Author, Starting Bid, End Date of book: Title, ISBN, Author, Starting Bid, End Date of Auction, Payment Method Accepted, and Location. Auction, Payment Method Accepted, and Location.

Requirements (Add Auction)Requirements (Add Auction)- - Add an Auction with ItemAdd an Auction with Item: Registered users should have the ability to start a new : Registered users should have the ability to start a new

Auction by adding it to the system. For this process, the system must gather all Auction by adding it to the system. For this process, the system must gather all required input from the user, and then validate and activate the auction. 2.3.1required input from the user, and then validate and activate the auction. 2.3.1

Required Components of a New Auction (Requirements 2.3.1.1 – 2.3.1.8)Required Components of a New Auction (Requirements 2.3.1.1 – 2.3.1.8)

Book Name – In order to start an Auction, an item must be associated with the Book Name – In order to start an Auction, an item must be associated with the auction. The system should provide a means of input for the user to enter a name auction. The system should provide a means of input for the user to enter a name of the book. This should be a string input limited up to 100 characters in length.of the book. This should be a string input limited up to 100 characters in length.

ISBN Number – The system should provide a means of ISBN Number input from ISBN Number – The system should provide a means of ISBN Number input from the user for every book. This should be a string input limited up to 100 characters. the user for every book. This should be a string input limited up to 100 characters.

Book Details, Reviews – The system should provide a means of free text input for Book Details, Reviews – The system should provide a means of free text input for the user for the item; this information will be details about the book, and the user for the item; this information will be details about the book, and information such as how well it rates in the market. Any selling points from the information such as how well it rates in the market. Any selling points from the user to persuade the audience to post a bid for the item will be inputted in this user to persuade the audience to post a bid for the item will be inputted in this section.section.

Authors Name – The system should provide a means of input for the user to list Authors Name – The system should provide a means of input for the user to list the Author of the book. This information should be required, and validated by the the Author of the book. This information should be required, and validated by the system as a string input.system as a string input.

Requirements (Add Auction)Requirements (Add Auction)- - Add an Auction with ItemAdd an Auction with Item: Registered users should have the ability to start a new Auction by : Registered users should have the ability to start a new Auction by

adding it to the system. For this process, the system must gather all required input from the user, adding it to the system. For this process, the system must gather all required input from the user, and then validate and activate the auction. 2.3.1and then validate and activate the auction. 2.3.1

Required Components of a New Auction (Requirements 2.3.1.1 – 2.3.1.8)Required Components of a New Auction (Requirements 2.3.1.1 – 2.3.1.8)

Bid Start Price / Minimum Bid Price – The system should provide a means for the user to input a Bid Start Price / Minimum Bid Price – The system should provide a means for the user to input a start/minimum bid price for the user, which the system should mark as a required piece of start/minimum bid price for the user, which the system should mark as a required piece of numeric information for a new auction. numeric information for a new auction.

Buy NOW Price – The system should provide a means for the user to input a Buy NOW price that Buy NOW Price – The system should provide a means for the user to input a Buy NOW price that will be optional numeric information for an auction. The system should will be optional numeric information for an auction. The system should

Bid End Date – The system should provide a means of input from the user on the end date for Bid End Date – The system should provide a means of input from the user on the end date for the auction. The system must close the auction at 11:59 PM on that day, which will act as a the auction. The system must close the auction at 11:59 PM on that day, which will act as a cutover for the system to stop accepting bids. The system should send a notification message to cutover for the system to stop accepting bids. The system should send a notification message to the winning bidder and the auction owner user with the final bid.the winning bidder and the auction owner user with the final bid.

Preferred Payment Method – The system should accept a preferred payment method from the Preferred Payment Method – The system should accept a preferred payment method from the user for each auction. The system should present these in a list of values in a pick-list that will user for each auction. The system should present these in a list of values in a pick-list that will include Credit Card, Cash, Check, Money Order, and Wire Transfer.include Credit Card, Cash, Check, Money Order, and Wire Transfer.

Requirements (Searching)Requirements (Searching)

-Searching--Searching-Requirement 2.1.2- Search for BooksRequirement 2.1.2- Search for Books

On the main page of the system, there should be On the main page of the system, there should be another section that provides a function to search for another section that provides a function to search for books. There will be textboxes provided that will allow books. There will be textboxes provided that will allow the user to search for books by any of the following: the user to search for books by any of the following: Name, ISBN Code, Author, Categories, or Keywords. Name, ISBN Code, Author, Categories, or Keywords. Upon completing the query, any auctions containing a Upon completing the query, any auctions containing a product matching the information provided will be product matching the information provided will be displayed on a new page (Product Auctions). displayed on a new page (Product Auctions).

Requirements (Bidding)Requirements (Bidding)

Bidding/Viewing BidsBidding/Viewing Bids

Requirement 2.3.3.1Requirement 2.3.3.1

The system should provide a hyperlink The system should provide a hyperlink on each bid that a user has received for on each bid that a user has received for an auction to view its details, which an auction to view its details, which include the user who set the bid and the include the user who set the bid and the amount and time of the bid.amount and time of the bid.

Requirements (Public Forum)Requirements (Public Forum)

-Public Forum--Public Forum-Requirement 2.1.5.1- Message Center (Planned for future Requirement 2.1.5.1- Message Center (Planned for future

expansion):expansion):

On the main page, there will be a link to Message Center, which On the main page, there will be a link to Message Center, which will allow users to send and receive messages to other users, will allow users to send and receive messages to other users, and manage existing communication chains. There will be two and manage existing communication chains. There will be two options to a user’s Message Center. The system should first options to a user’s Message Center. The system should first check to see if the user is logged in, and if so, the system will check to see if the user is logged in, and if so, the system will provide the user with two links:provide the user with two links:

(2) Message Board, which will display to the user all of the (2) Message Board, which will display to the user all of the messages posted on the Message Board forum, with the ability messages posted on the Message Board forum, with the ability to view and reply to any of the messages, and to add any new to view and reply to any of the messages, and to add any new categories for a Message Board to start a new topic in the categories for a Message Board to start a new topic in the Message Board.Message Board.

Requirements (XML)Requirements (XML)

-XML Integration--XML Integration-

We have developed an XML file that contains objects We have developed an XML file that contains objects with attributes. The attributes of the XML file with attributes. The attributes of the XML file correspond to the attributes of an object (“Book”) in correspond to the attributes of an object (“Book”) in our business requirements. There are a few book our business requirements. There are a few book objects with nodes that act as attributes for this objects with nodes that act as attributes for this object. object.

An external script has been written to read these An external script has been written to read these objects in the StockItems.xml file with the attribute objects in the StockItems.xml file with the attribute nodes; and, it inserts these objects as records into nodes; and, it inserts these objects as records into the Book table of our site.the Book table of our site.

ConclusionConclusion The Market for a Book Action Site will always be in The Market for a Book Action Site will always be in

demand; and, it will only grow as the University demand; and, it will only grow as the University continues to expand. continues to expand.

The Book Auction System is a secure and easy way to The Book Auction System is a secure and easy way to get books to studentsget books to students

Students can also expect better pricing when buying and Students can also expect better pricing when buying and cash back when sellingcash back when selling

The DePaul University Book Action System is also a The DePaul University Book Action System is also a great way to bring students together. Students can share great way to bring students together. Students can share a common interest among books on the site. a common interest among books on the site.

ConclusionConclusion

Thank you!Thank you!

Thank you!Thank you!

Thank you!Thank you!