CherryAuctions: Official SRS Checklist
1. Guest Role
1.1. Menu System
- Display all categories
- Categories have at least 2 levels
1.2. Home Page
- Top 5 ending soon products
- Top 5 products with most bids
- Top 5 products with highest bids
1.3. Products Catalog
- Pagination
- From categories
1.4. Products Searching
- Full-text Search
- Search by name
- Search by category
- Paginated results
- Ordered results
- Ending time
- Price
- New products (within some minutes) have emphasis
- Product Display on Catalog
- Thumbnail
- Name
- Current Price
- Current Highest Bid
- BIN price
- Posted date
- Remaining time
- Number of bids
1.5. Products Details
- All content of the product
- Thumbnail
- Other images
- Product name
- Current price
- BIN price
- Seller info & rating
- Highest bidder info & rating
- Posted date
- Expired at
- Relative expired in if less than 3 days
- Description
- Questions and Answers
- Similar products
1.6. Registration
- reCaptcha
- Passwords are hashed
- Information
- OTP
- Name
- Address
2. Bidder Role
2.1. Watch List
- Can add/remove from catalog
- Can add/remove at details page
2.2. Bid
- At details page
- Allowed only if product allows it, or rating is 80% or greater.
- System enforces a reasonable bid (current bid + bid step at least)
- Confirmation dialog for bidding
2.3. Bidding History
- All bids are masked
- Needs to show price and time, and a masked name
2.4. Question
- At details page
- Seller receives email when someone asks a question
2.5. Profile Management
- Change email, name
- Change password (requires old password)
- View total rating and all ratings
- View favorites / watch list
- View current bids
- View won auctions
- Rate the product’s seller (+1) or (-1), with a feedback
2.6. Request Seller privileges
- Bidder can request to be a seller
- Admin can approve or reject
3. Seller Role
3.1. Post an Auction
- Product name
- At least 3 images
- Starting bid
- Bid step
- BIN price (optional)
- Description
- WYSIWYG
- Auto extends
3.2. Editing a Description
- Modify the description of a posted product
- New changes are appended to the old description, but can’t replace them
3.3. Deny a Bidder
- At details page
- A denied bidder can no longer bid on a product
- If the bidder gets denied, the highest bid is moved to the second highest
3.4. Answer a User
- At details page
3.5. Profile Management
- View my auctions
- View expired auctions
- Can rate or feedback on the highest bidder
- Can cancel the auction and automatically mark as -1 with a description “Bidder did not follow through”
4. Admin Role
4.1. Categories
- Can’t delete a category with a product
- View all
- View details
- Add
- Delete
- Edit
4.2. Products
- Can remove an auction
4.3. Users
- Basic management tools
- View bidders requesting privileges
- Can approve
4.4. Dashboard
- Charts on auctions, pricing, new users, new sellers
5. General Role
5.1. Login
- Login
- (Optional) add Oauth
5.2. Update Profile
- Name
5.3. Change password
- Both passwords are hashed with bcrypt or scrypt or similar
5.4. Forgot password
- OTP code
6. System
6.1. Mailing System
- New bid, to seller, to bidder, to previous bidder
- When bidder is denied the bid to bidder
- Auction expired to seller
- Auction ended to seller and winner
- User questions, to the bidder
- Seller answers, to the questioner, and all current bidders, or questioned
6.2. Automated bidding (Optional)
- Bidder sets a maximum price
- The product will kept getting bidded on if possible
- If 2 bidders have the same price, then the one who bidded first wins.
6.3. Payment System
- When auction ends, the detail page can lead to the “checkout”
- Other bidders just see: Auction ended
- Checkout flow:
- Through Stripe
- Winner sends the address
- Seller confirms delivery
- Winner confirms received
- Transaction over, and the two rate each other
- The seller can cancel, and automatically mark the winner as -1.
- Chat interface for completing the product
7. Others
These requirements are non-negotiable.
7.1. Technical
- Web App with Client-side rendering
- Backend is RESTful
- Backend Requirements
- Swagger
- Validation on all routes
- Logging and monitoring (ELK stack or similar)
- Security with JWT key pair
- Frontend
- Client-side router
- Form processing and Validation
- State management
- Same design system for entire website
7.2. Data
- At least 20 products, with descriptions and images
- Products need at least some bids
7.3. Source Management
- Github (non-negotiable, course fail if not checked)