MIS 333K Web Application Development Team Project Specifications
FALL 2008 MIS 333K SYSTEM PROJECT : SAFARI BOOKS
VERSION 1 | LAST UPDATED MONDAY, OCTOBER 20
4 Safari Books, the world’s not-quite-largest collection of literature, has enlisted your team to implement a system for their new
5 website. A recent tornado devastated their IT system. Unfortunately, Safari did not have a disaster recovery plan and therefore
6 did not back up anything. Safari would like a brand-new online system so that they can regain the market share they have lost to
7 Tundra Books. They are offering a $1000/member cash prize to the team who develops the best system.
8 The system consists of a Customer, Employee, and Manager Side. Customers can search, buy, and review books. Employees
9 manage customers and the reviews they write. Managers are in charge of managing books, managing promotions placing book
10 orders to the supplier, and generating reports.
12 questions. Rick Byars, the CEO, will have final say on everything. The discussion board will be the official medium for
15 A customer logs in with his email and password. Log in is required to see all customer pages except create account and find
16 books. Upon successful login, the customer should see a welcome message with his or her name. If the customer tries to do any
17 other actions besides create account and find books, they should be prompted to log in or create an account.
19 - Email, Password, First and Last Name, Address, Phone Number are required. City/State are automatically generated
20 based on Zip Code.
22 - View account information
23 - Modify First and Last name, Email, Address, and Phone Number.
24 - Change password – requires verification by entering in the old password
25 - Add credit cards (up to 3 maximum credit cards per customer)
o Allowed types are Visa, American Express, Discover, and Master Card
o Credit cards are 16 digits, except for American Express, which is 15 digits
29 - Search books by title, by author, and by unique number (used instead of ISBN for the convenience of not typing out so
30 many digits)
o For title and author, customers have an option to do a partial search or keyword search
o There is also an option to show all books
o Search results should have the following information: Title, Author, Unique Number, whether the item is in
34 stock, Rating
o For all queries, display a record count
Page 1 of 7
36 - Sort search results by title, author, most popular (the total number of times it’s been bought), newest first, oldest first
37 (based on publication date), highest rated
38 - Filter to see only items in stock
39 Clicking on the book in the search result will bring you to details for that book, which has all of its information (Title, Author,
40 Unique #, Price, Publication Date), along with discount price (if applicable – see Managers > Promotions), an option to add the
41 item to the cart, an option to add the item to the wish list, reviews/rating, and an option to review the book. If the item is
42 already in the customer’s cart, the customer will see a message on the page informing them of such.
43 On the customer side, no information about book procurement or profit margins should ever be available.
46 - Customers navigate to a book detail page, which allows them to add the book to the shopping cart. Books that are out
47 of stock cannot be added to the shopping cart, but could be added to the wish list.
48 - The shopping cart is automatically saved for the users. If the customer logs out and logs back in later, all the items in
49 the shopping cart should be preserved.
50 - Customers can change the quantity of books, delete them, or move them to the wish list.
o Customers cannot add a quantity greater than the number in stock
52 - If something changes in the shopping cart since it’s been added…
o Books remain in the shopping cart until the customer removes them. The shopping cart should always reflect
54 current prices – so if the price of the item changes after it was added into the cart, the price that customers
55 should see should be the current one.
o If a book was added to the cart while it was in stock but then goes out of stock, the customer should see a
57 message that the item went out of stock and was added to their wish list.
o If a book has been discontinued since it was first added to the cart, the customer should see a message that the
59 item has been discontinued and removed from the cart. Customers only need to see this message once – the
60 first time they visit their cart after the item is discontinued.
61 - Item discounts are automatically applied to items in the shopping cart, and the customer should see an appropriate
62 message about the promotion. Coupon codes are not automatically applied and must be entered at checkout.
63 - The subtotal and total (which is the subtotal + shipping) for the order should be displayed in the shopping cart.
o Customers do not have to pay sales tax.
o Shipping price is $3.50 for the first book, and $1.50 for each additional book.
67 - Customers should not be able to check out if they have an empty shopping cart
68 - When the customer goes to check out, he selects his payment method
o Customers have the option to add credit cards from the checkout page.
70 - For sake of simplicity, you do not have to keep track of multiple addresses – orders will be shipped to the address in the
71 customer’s profile.
72 - You may also assume that between the time the customer begins the checkout process and when he places the order,
73 the books in the order will not go out of stock. When your system is tested, only one order will be placed at a time.
74 - Customers have the option to enter in a coupon code.
o Once the customer enters in the coupon code, the system should update the prices to reflect the promotion. If
76 the coupon code is invalid, disabled, or not applicable to the order, the customer should receive a message that
77 the coupon code is not valid.
Page 2 of 7
78 - Before the order is finalized, the customer should see a summary of their entire order. The customer can then finalize
79 the order by hitting the “Place Order” button.
o Only the last 4 digits of the credit card should show on this page. All other digits should be hidden with an
82 - If at any point the customer starts checkout out but does not finish (i.e. closes the window), you do not have to preserve
83 where in the checkout process the customer left off, but you should keep the items in the cart.
84 - When the order is placed, the appropriate items should be removed from the shopping cart.
85 - This system does not encompass the shipping process. Assume that once an order is placed, it is instantly and
86 automatically shipped.
88 - They system will send messages to the customer’s email address.
89 - Customers do not need to be able to send each other messages or respond to messages
90 - Customers get messages when:
o They create an account
o They place an order (include the information about the order)
o They change their password
o An item in their cart or wish list is discontinued (include the book title/author)
95 - Include your team number in all emails for ease of grading
RATE AND REVIEW BOOKS
97 - Customers can review books. If writing a review, the customer must include a rating on a scale from 1-5. Reviews are
98 limited to 100 characters.
99 - They are not limited to rating books that they have purchased.
100 - Reviews must be approved by an employee before they show up on the website
101 - Book ratings are a simple average of approved customer ratings. They should be carried out to 1 decimal place (e.g. 4.3,
103 - A customer can only review a book once, and cannot change their review or rating once it has been submitted.
VIEW ORDER HISTORY
105 Customers can see a list of all orders they’ve placed, most recent first. Includes all information about the order (except only the
106 last 4 digits of the credit card # should show – all other digits should be replaced with an asterisk)
107 This system does not keep track of the shipping status of an item – assume that an item is shipped and delivered as soon as the
108 order is placed.
110 Employees log in with their empID and password.
MODIFY EMPLOYEE ACCOUNT
112 Employees can modify their address, phone number, and password only. Changing the password requires entering in the old
113 one again
115 Create and modify customers – same functionality as the customer side.
Page 3 of 7
116 Disable/enable customer account – A customer with a disabled account cannot log in and receives the appropriate message
117 when trying to log in. All information is preserved, so if the employee re-enables the account, everything for that account is back
118 to normal.
120 Employees should be able to search books just like the customer can. The only difference between employee side and customer
121 side searching is:
122 Employees do not need the option to add the item to the cart, add the item to wish list, or have an option to review the book
123 (but they must be able to see the reviews).
125 Employees see a list of all reviews pending approval. They can approve or reject each review. Approved reviews instantly
126 appear on the website, and the book rating is updated.
128 All functionality of regular employees, plus:
CREATE AND MANAGE PROMOTIONS
130 Promotions can be any of the following:
GENERAL PROMOTION RULES
132 Managers should be able to see a list of all discounts and coupon codes (see below). Promotions cannot be modified after they
133 are created, but they can be enabled and disabled by the manager.
134 For simplicity sake – coupon codes are not “stackable.” Customers cannot combine coupon codes and cannot use coupon codes
135 if any of the items in their order are discounted. However, they may have more than one discounted item in their order.
136 Promotions bring up the issue of how the selling price is calculated (see Coupon Code and Discount for an Item below), since the
137 discount must be allocated to books in an accurate and automatic way. To determine the selling price of a book whenever there
138 is a discount, take the amount of the discount and apply it equally to all affected items.
139 - Example 1 – 10% off your order – the selling price (needed for reports – see Manager > Reports) for each book item
140 would be 90% of the regular price.
141 - Example 2 – You have items A ($5), B ($15), and C ($10) in your order. A has been discounted to $3 and B has been
142 discounted to $10. The sell prices would be A: $3, B: $10, C: $10 – no discount)
144 The manager creates a coupon code, which are up 1 to 20 digit combinations of letters and numbers (e.g. FREESHIP, 10OFF). This
145 sequence of letters and numbers must be unique for all codes. The manager inputs in the coupon code, selects which type it is,
146 and based on type, enters in the necessary information.
Page 4 of 7
148 a. Free shipping for orders above $X. The manager also has an option to give free shipping for all orders, no $
150 b. X% off your total order
151 A given coupon may only be used once by a individual customer.
152 Coupon codes are advertised on the website on the customer side main page.
DISCOUNT FOR AN ITEM
154 a. The manager selects an item and inputs the amount of discount. This behaves much like changing the price for an item
155 – the only difference is that it is temporary. Once the manager discontinues the discount, prices revert to the original
157 b. Item discounts should be automatically advertised on the customer-side website – customers should see the regular
158 price, as well as the sale price on the item page. When the item is listed in a search result however, the only the
159 discounted price should be displayed.
160 c. A list of current active discounts should be displayed on the home page
162 - Hire new employees
163 - Fire existing ones (their information should be kept in the system and can be rehired at a later date). Fired employees
164 should be blocked from logging in and should receive the appropriate message.
165 - Modify employee profiles – ability to modify all fields except for EmpID and SSN
168 - The manager can add new titles. Once a new title is added, the manager can order copies of the book (see Book
170 - Books are never deleted per se, but can be discontinued. Discontinued books still show up in search results and have
171 their own item detail page, but cannot be added to shopping carts or wish lists.
172 - Managers can edit all information about any given book, except the automatically generated Unique Number field.
173 - The search functionality is the same as the employee side book search
ORDER BOOKS (FROM THE SUPPLIER)
176 When the manager selects this function, he should have two basic choices: Manually ordering books, or Automatic inventory
177 check for books below reorder point.
178 - Manual
o When the manager chooses the manual method, he can order one or more titles.
o He should be able to select books via search, see that book’s detailed information, and then order as many
181 copies as he wants.
The search functionality is the same as the employee side book search, except he can order from the
183 supplier and he should be able to see the price last paid to the supplier for the book, as well as the
184 average profit margin (see Manager>Reports for details on how to calculate this).
Page 5 of 7
185 The price defaults to whatever price was paid to the supplier the last time that book was ordered. If the price
186 the supplier is charging changes, the manager can input a different price (assume he has this information as it is
187 not part of this project).
188 - Automatic
o If the manager selects the automatic check, he should see a list of all books that are currently below the
190 reorder point.
o Any books with current orders in processing should account for the number copies already on order. So if a
192 book is below the reorder point, but the manager has already ordered enough copies to get over the reorder
193 point, this book should NOT show in the current list.
o When viewing the list of books below the reorder point, the manager should have the choice of editing the list
195 and deleting any books he knows Safari doesn’t really need. The default number of new copies should be set at
196 5, but the manager should be able to change this. The default price is whatever price was last paid for the
197 book, and the manager should be able to change this.
o Once adjustments are made, the manager pushes a button and all automatic orders are placed.
200 The manager must be able to view a list of books currently on order, along with who placed the order.
202 When books arrive at the loading dock, a manager will log on and check them in. He should see a list of all current orders, be
203 able to select a book, and enter the number of copies that arrived. If the number of copies that came in is the same as the
204 number ordered, this book should no longer appear on the book order list. Inventory should be updated to show the new book
207 If the supplier accidentally sends more copies than the manager ordered, the system should only allow the number ordered into
208 the system, and assume that the manager will send all additional copies back to the supplier.
210 Managers see a list of all pending reviews like the employees see. In addition, they see a list of all approved/rejected reviews
211 (most recent first) with the customer, book title, rating, review text, whether it was approved or rejected, and the name and
212 employee ID of the employee who approved/rejected it.
214 Include a count of the number of records for all reports.
215 In order to calculate profit margin, you must keep track of the weighted average price and weighted average cost (price paid to
216 supplier) for all books.
217 Ignore shipping for all reports. Safari charges exactly what it costs for shipping, so shipping does not affect revenue or costs in
218 any way. Do not include the shipping fees in price, cost, profit margin, or order total calculations.
219 a. All books sold- A list of every book: the book title, quantity, order number, the customer who bought it, the sell price
220 specific to the order, the weighted average cost for the book, and the profit margin (specific sell price minus weighted
221 average cost). Sorting options: most recent first, profit margin (ascending and descending), price (ascending and
222 descending), most popular (highest quantity sold)
223 b. All orders - Identical to (a), except grouped by order. For example, the profit margin would be the profit for the entire
224 order, rather than on a per-book level. Sorting options: most recent first, profit margin (ascending and descending),
225 price for the order (ascending and descending)
Page 6 of 7
226 c. All customers – identical to (a), except grouped by customer. Sorting options : profit margin (ascending and
227 descending), $ amount of revenue from the customer (ascending and descending)
228 d. Totals: total profit, total cost, and total revenue. These are not organized by book, order, or customer, it’s just three
230 e. Current inventory – Shows the book title, the number of books in inventory, the average cost for each book title. Also at
231 the bottom shows the total value of current inventory
232 f. Approved/Rejected reviews – Displays the number of reviews that each employee has approved/rejected. Sorting
233 options: EmpID ascending, number of approved/rejected reviews (ascending and descending)
234 ***The reports section is likely to be expanded in the next few weeks to include reports to facilitate testing of your system.
236 Data and validation requirements for customers, employees/managers, and books will be provided at a later date.
Page 7 of 7