Auction Site Requirements

Each team will deliver the design for and implementation of an Auction Site, modeled on eBay.  Each team will be responsible for working through multiple iterations (the content of which  the teams themselves will largely determine) and demonstrate during class and at the end their progressing design and system.  These requirements may fluctuate during the in a reql development project.  Continue to refer to this page at least weekly to see clarifications and modulations of the functional and technical requirements.  Note also that many requirements will be clarified during the progress of the course itself in lectures.

Student teams are welcome (and especially encouraged) to utilize source code management systems to protect and share their team code.  There are several available publicly, and we recommend BitBucket.

Admin Functions:
-Stop an auction early
-Remove and block a user
-Add, modify, or remove categories
-View all items that have been flagged by users 
-View all auctions currently in progress, and include sorting capability so that auctions ending soonest can be displayed first
-Examine metrics for closed auctions in a given timeframe(last day, week, month, etc)
-Examine emails that are received by customer support, and respond to these emails within the admin functionality

Auction Functions:
    -Allow listing of items for bidding
    -Start the auction when the current time matches the start time defined by the user
    -Allowing auction window to be set by the bidder, and begin countdown to the end of the bidding window once auction begins
    -Allow bid to be placed, and increment bid amount as users enter new bids
    -Allow item to be categorized by user
    -Allow search of items on the site by keyword, or item category
    -Allow item to be placed on a watchlist for a user, that includes parameters defined by the user(i.e. Ray-Ban sunglasses less than $100 in starting price)
    -Send a email notification to user when an item on their watchlist appears matching their criteria
    -Allow multiple bids to be placed at once by different users
    -Alert seller when their item has been bid on with an email
    -Alert buyer via email when someone has placed a higher bid on the item they had bid current high bid on
    -Implementation of a shopping cart that will store multiple items in it while the user shops on the site
    -Allow item to be place in the shopping cart if the Buy Now feature is selected
    -Place item in a user's cart if they have the winning bid when the auction expires
    -Allow a user to checkout from their cart once there are items in it
    -Alert both seller and bidders when on predetermined time setting, 1 day before bidding ends, 1 hour before bidding ends, etc
    -Remove auction once bidding is complete and user checkouts out

User Functions:
    -Create a new user(user should have the ability to place bids on a item(s) or place an item for sale, or both)
    -Update a user’s information
    -Delete a user
    -Suspend an account
    -List an item for auction(item should have start price, start time, quantity, time when the auction expires, shipping costs, buy now feature if applicable, item description, seller rating)
-    Update an item properties, including quantity, description, shipping costs, buy now feature
-    Flag an item as inappropriate or counterfeit
-    Categorize an item based on existing categories or create an new category if needed
-    Delete an item if there are no bids on it, but do not allow an item to be deleted if there are bids on it
-    Bid on an item, and update that bid if another user outbids that user
-    See a list of all items that are currently being bid on by that user
-    Add item to cart directly via the Buy Now functionality
-    Checkout of the auction once winning by selecting checkout from the cart