- https://github.com/philipdaquin/infra-modules
- https://github.com/philipdaquin/infra-live
- Users should be able to add new products to sell
- Users should be ablet to search by their name or category
- Users can search and view all the products, but they will have to become a registered member to buy a product
- Users should be able to add / remove / modify product items in their shopping cart
- Users can check out and buy items in the shopping cart
- Users can rate and add a review for a product
- The should be able to specify a shipping address where their order will be delivered
- Users can cancel an order if it has not shipped
- Users should be able to pay through credit cards or electronic bank transfers
- Users should be able to track their shipment to see the current state of their order
- Users should get notifications whenever there is a change in the order or shipping status
- Add/ Delete/ edit, rate and add review on products; search by their name and category
- Check out/ modify, add new items and delete items in their shopping cart
- Place/ cancel/ track theirs order
- Payment system with credit or bank transfers
- Guests can only view, Users can only buy new products, vendors can sell products
- System will notify users if there is any changes in the order or shipping
- Customers: Can view and place an order on any products, and add new products to sell
- Anonymous customers (prospective buyers): can only view products and add to their shopping cart, as well as become members
- Admin: Responsible for account management, adding and modifying product categories
- Vendors: Add new items to sell
- System : notifies any significant changes on the user’s orders or payments
- Highly available: We need to make sure that we can handle random spikes in traffic during peak hours
- Data privacy: We need to make sure their shipping address is concealed
- Moderate latency: We want to be able to see the products with at least minimal delay when the user arrive on the front page. The faster the user can reach to placing an order from the start to end, the better it is
- Highly consistent
- Minimise the maintenance: We want a reliable system that can handle random spikes in our system