Skip to content

Soheila-Lotfi/Bamazon

Repository files navigation

Bamazon

By:

Soheila Lotfi

Node.js & MySQL

Overview

In this app, I create an Amazon-like storefront with the MySQL skillst. The app will take in orders from customers and deplete stock from the store's inventory.

The app includes three js files : bamazonCustomer, bamazonManager, and bamazonSupervisor

Customer View:

  1. create a Table inside of the database (which I called it bamazon) called products.

  2. The products table ave each of the following columns:

    • item_id (unique id for each product)

    • product_name (Name of product)

    • department_name

    • price (cost to customer)

    • stock_quantity (how much of the product is available in stores)

  3. Populate this database with around 10 different products.

  4. Then create a Node application called bamazonCustomer.js. Running this application will first display all of the items available for sale. Include the ids, names, and prices of products for sale.

  5. The app then prompt users with two messages.

    • The first should ask them the ID of the product they would like to buy.
    • The second message should ask how many units of the product they would like to buy.
  6. Once the customer has placed the order, the application check if your store has enough of the product to meet the customer's request.

    • If not, the app should log a phrase like Insufficient quantity!, and then prevent the order from going through.
  7. However, if the store does have enough of the product, the app fulfill the customer's order.

    • This means updating the SQL database to reflect the remaining quantity.
    • Once the update goes through, it shows the customer the total cost of their purchase.

Manager View :

  • Create a new Node application called bamazonManager.js. Running this application will:

    • List a set of menu options:

      • View Products for Sale

      • View Low Inventory

      • Add to Inventory

      • Add New Product

    • If a manager selects View Products for Sale, the app should list every available item: the item IDs, names, prices, and quantities.

    • If a manager selects View Low Inventory, then it should list all items with an inventory count lower than five.

    • If a manager selects Add to Inventory, your app should display a prompt that will let the manager "add more" of any item currently in the store.

    • If a manager selects Add New Product, it should allow the manager to add a completely new product to the store.

Supervisor View :

  1. Create a new MySQL table called departments. It includes the following columns:

    • department_id

    • department_name

    • over_head_costs (A dummy number you set for each department)

  2. Modify the products table so that there's a product_sales column, and modify bamazonCustomer.js app so that when a customer purchases anything from the store, the price of the product multiplied by the quantity purchased is added to the product's product_sales column.

  3. Create another Node app called bamazonSupervisor.js. Running this application will list a set of menu options:

    • View Product Sales by Department

    • Create New Department

  4. When a supervisor selects View Product Sales by Department, the app display a summarized table in their terminal/bash window. Use the table below as a guide.

department_id department_name over_head_costs product_sales total_profit
01 Electronics 10000 20000 10000
02 Clothing 60000 100000 40000
  1. The total_profit column is calculated on the fly using the difference between over_head_costs and product_sales. total_profit should not be stored in any database.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published