GithubHelp home page GithubHelp logo

csharpthethird's People

Contributors

gregkorte avatar

Watchers

 avatar

csharpthethird's Issues

User should be able to add a payment option for a customer

Given a customer has been made active in the program
When the user selects the option to add a payment type
Then the user should be prompted to enter in all appropriate information for a payment type
And when complete, the payment type should be added for the active customer

Enter payment type (e.g. AmEx, Visa, Checking)
>

Enter account number
>

User can select product category when selling product

Given a user is authenticated
And performs a gesture on the Sell a product hyperlink
When the product form is rendered
Then there should be a dropdown that displays all product categories

Given a user has filled out the product form, but not chosen a category
When the user clicks on the Sell button
Then the user should be alerted to select a product category

User should be able to add a product for a customer

Given a customer has been made active in the program
When the user selects the option to add a product
Then the user should be prompted to enter in all appropriate information for a product
And when complete, the product should be added for the active customer

User can search products to buy

Given the user is authenticated
When the user clicks on the search input field in the navigation bar
And the user types the name of a product
When pressed the enter key
Then products matching the keyword show in the page

User can cancel an order

Given the user is authenticated
When the user is viewing their order
Then there should be a button labeled Cancel Order which will remove all products from the order and delete the order

User can view all product categories

Given a user is viewing any page on the Bangazon site
When the user performs a gesture on the Product Categories hyperlink
Then the user will see a view containing a list of all product categories
And next to the category name, the number of products in that category will be displayed
And the first three products in the category will be displayed beneath each category, that are hyperlinks to the product detail

Sample
Electronics (15)
    Dryer
    HD Television
    Sony Walkman

Sporting Goods (7)
    Football
    Ice skates
    Basketball hoop

User can view order history

Given a user is authenticated
When the user clicks on "my account" in the nav
Then the user will be presented with the option to view order history

The Order History View will include a list of previous orders

Given the user is on the "order history view"
When the user clicks on a specific order hyperlink
Then the user will be presented with the order detail including the products and total price for that order

Given the user is not authenticated
When the user clicks on "my account"
Then they are redirected to the login view

User should be able to add product to customer order

Given a customer has been made active in the program
When the user selects the option to add a product to the active customer's order
Then the user should be prompted with a numbered list of all products
And when one is chosen, the product should be added to an order for the active customer

Pro tip: To make it easier to add multiple products, when the user selects a product to add to the customer's order, display the menu of products again. Make sure the last option provides the option to go back to main menu.

1. Diapers
2. Case of Cracking Cola
3. Bicycle
4. AA Batteries
...
9. Done adding products

Order detail JSON should contain product details

Update the Order detail JSON object should contain all nested Product information.

For example:

{
   OrderId: 21,
   CustomerId: 16,
   PaymentTypeId: 83,
   Products: [
      {
         ProductId: 156,
         Name: "Kite",
         Price: 14.25
         Quantity: 1
      },
      {
         ProductId: 212,
         Name: "Roller blades",
         Price: 88.99
         Quantity: 1
      }
   ]
}

User can view product detail

Given user is viewing any page that contains a hyperlink for a product
When user performs a gesture on the product hyperlink
Then user will be shows the product detail page containing title, description, quantity available, price/unit, and a button labeled Add to Order

Given 1+ users have purchased a product
When a user views the details
Then the quantity display should show how many are remaining, not how many were originally for sale

User can delete a payment type

Given the user is authenticated
When the user performs a gesture on the My Settings hyperlink in the navigation bar
And the user clicks on Payment Options
And the user clicks on the Delete hyperlink next to a payment type
Then the payment option will get deleted

User can rate product after purchase. Seller can see average.

Given the user is authenticated
And is viewing their Order History (see #18)
When user rates a product from 1 to 5
Then the product rating must be saved in the system

Given the user is authenticated
And has sold products
When the user views their Account View
Then the average of all their product ratings will be displayed

User should be able to update a product

Given a customer wants to update product information in the system
When the user selects the option to update a product
Then the user should be presented with a numbered list of all of the active customer's product
And when one is selected, the title, description, price, and quantity should be displayed
And the user can select which one to update

Select a product to update:
1. Kite
2. Marbles
3. Refrigerator
>
1. Change title "Refrigerator"
2. Change description "It keeps things cold"
3. Change price "149.99"
4. Change quantity "1"
>
Enter new price:
>

User can like or dislike products

Given the user is authenticated
When the user is viewing a product detail page
Then a like and dislike button should be presented next to the product title

Given the user is authenticated
When the user clicks on the like or dislike icon
Then that preference should be stored for the current user

User should be able to view stale products

Given a user wants to see products that aren't selling
When the user selects the option to view stale products
Then the user should be presented with a list of all products that meet any of the following criteria

  1. Has never been added to an order, and has been in the system for more than 180 days
  2. Has been added to an order, but the order hasn't been completed, and the order was created more than 90 days ago
  3. Has been added to one, or more orders, and the order were completed, but there is remaining quantity for the product, and the product has been in the system for more than 180 days

Pro tip: Investigate the SQL Union operation to fulfill these requirements

User should be able to remove a product

Given a customer wants to remove a product from the system
When the user selects the option to remove a product
Then the user should be presented with a numbered list of all of the active customer's product
And when one is selected, it should be deleted from the system if it has not been added to an order yet

Choose product to delete:
1. Kite
2. Marbles
3. Refrigerator
>

User can view and edit their account settings

Given the user is authenticated
When the user clicks on "my account" in the nav
Then the user will be taken to account view

The account view will include:

  • First Name
  • Last Name
  • Address
  • Phone Number
  • Payment Options
  • Order History

Given the user is on the Account View
When the user clicks "edit account"
Then the user will be presented with a pre-populated form to edit their address, phone number, and last name

Given the user has completed the form with valid information
When the user clicks "update"
Then the information will update in the database, and in the account view

User can recommend product to another user

Given the user is viewing a product detail
When the user performs a gesture on the Recommend to a friend button
Then the user will be presented with a view so (s)he can type in another username and see a Send Notification button

Given the user has entered in another username in the recommendation screen
When the user clicks on the Send Notification button
Then the user will be taken back to the product detail view that they were viewing originally

Given a user has recommended a product to another user
When the receiver logs in next
Then the recommendation icon in the navigation bar will have it's notification count increased by one

User can add a payment type

Given the user is authenticated
When the user clicks on a profile affordance in the navigation bar
And the user clicks on the Add Payment Option hyperlink in their profile
Then the user can fill out the payment option form
And click Submit to save payment option

User should be able to able to complete a customer order

Given a customer has been made active in the program
When the user selects the option to complete an order
Then the user should be prompted to choose one of the active customer's payment options
And when one is chosen, the payment option should be added to the open order

If no products have been selected yet

Please add some products to your order first. Press any key to return to main menu.

If there are current products in an order

Your order total is $149.54. Ready to purchase
(Y/N) >

# If user entered Y
Choose a payment option
1. Amex
2. Visa
>

User should be able to select who the active Customer is

Given the user needs to perform an action on behalf of a customer
When the user selects the option to choose which customer is active
Then the user should be presented with a numbered list of all customers
And be able to select one of the customers

Which customer will be active?
1. John Q. Public
2. Svetlana Z. Herevazena
>

User can remove a product listing

Given the user is authenticated
When the user clicks on the My Products hyperlink in the navigation bar
Then the user will be presented with a list of products they (s)he has posted for sale

Given the list of products is presented to the user
When the user clicks the Delete button next to a posted product
Then the product for sale is removed from the system

User can upload a photo of the product

Given the user is uploading a product
When the user clicks "upload photo"
And selects a file
Then a thumbnail of the image will show in the Product Detail view

User should be able to create a Customer account

Given a new customer calls with a request for a representative to handle
When the user select the option to create a customer account
Then the user should be presented with prompts to enter in customer information

Enter customer name
>

Enter street address
>

Enter city
>

Enter state
>

Enter postal code
>

Enter phone number
>

User should be able to view the active customer's revenue report

Given a customer requests their overall revenue
When the user selects the corresponding option from the main menu
Then the user should be presented with the following report

Revenue report for Svetlana:

Order #34
----------------------------------------------------
Marble                          15         $21.43

Order #109
----------------------------------------------------
Kite                            1          $5.12
Marble                          5          $5.52

Total Revenue: $32.07

User can view latest products on home page

Given a user visits the home page of Bangazon
When the page renders
Then the last 20 products that have been added to the system will be displayed as hyperlinks to their respective detail pages

Customer can add a product to sell

Given the user is not authenticated
When any view renders
Then the Sell a Product affordance will not be visible

Given the user is authenticated
When the user clicks on the Sell a product button in the menu bar
Then the user will be presented with a product form

Given the user can filled in all fields of the product form with valid information
When the user clicks the Sell button
Then the user will be redirected to the product detail view for that product

Given the user can filled in all fields of the product form with any invalid information
When the user clicks the Sell button
Then the user will be immediately notified with error information for each invalid value

User can complete an order

Given the user is authenticated
And the user is viewing their open order
When the user clicks the Complete Order button
Then the user should be presented with a view that allows them to select a payment type for the order

Given the user selects a payment option
When the user clicks the Done button
Then the payment type must be added to the order
And the user will be presented with a confirmation/thank you screen

User can view status of products uploaded

Given a user is authenticated
When a user clicks the My Products hyperlink in the navigation bar
Then the user will be presented with product status for each product uploaded including "current inventory" and "number sold"

Given a user is not authenticated
Then the My Products hyperlink will not be available in the navigation bar

Seller can specify local delivery available

Given a user is uploading a product to sell
When the product form is displayed
Then the user will have an option to specify that local delivery is available
And the user can add the city to be used as a searchable field in the main application

User should see overall product popularity

Given a user wants to see the most popular products in the system
When the user selects the corresponding option from the main menu
Then the user should see the following report

Product             Orders      Purchasers    Revenue
*******************************************************
AA Batteries        100         20            $990.90 
Diapers             50          10            $640.95
Case of Cracking... 40          30            $270.96
*******************************************************
Totals:             190         60            $1,902.81

-> Press any key to return to main menu
  1. User will see the top 3 revenue generating products
  2. The product column must be 20 characters wide, and will display a maximum of 18 characters for the product name.
  3. The orders column must be 11 characters wide.
  4. The purchasers column must be 15 characters wide.
  5. The revenue column must be 15 characters wide.

User can delete product from shopping cart

Given the user is authenticated
When the user is viewing their shopping cart
And clicks the Delete button at the end of the row
Then the product is deleted from the shopping cart

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.