Project 2 Requirements (12062021DynamicsBatch) - 12062021-dynamics365-uta/12062021-batch-repo GitHub Wiki

P2 - Store Application

Your team is in charge of building a Dynamics365 Model-Driven Store Application. This application will be very similar in functionality to your P0.

Presentation

  • You will be presenting on February 11th, 2022
  • Your team (assigned by Mark/Deepti) will
    • choose a team leader
    • turn in a project proposal document to Mark/Deepti that includes:
      • a user interaction diagram,
      • a detailed paragraph summarizing what the site will offer,
      • Entity/Relationship diagram of the planned Db.
    • We understand that these may change as you move through development.
    • We will review the proposal and suggest changes to make the site and Db better.
    • Then your team leader will resubmit.
    • The proposal is due by Wednesday, February 2nd, 5pm, but I will review it ASAP before then so you can get started.
    • Include a link to a GoogleDoc or Word doc online that your team collaborates on. I can leave comments there.
    • Name your proposal by this naming convention -> 'G1_TeamName_1' (Group 1, Team Name, 1st version of the proposal)

Technology Stack

  • Dynamics365 Power Apps Model-Driven App
  • DataVerse

Overall App Requirements

  • The app will have admin and customer access levels.
  • The application will implement "Standard Business Rules" best practices.
  • The application is anchored around the Entities: Customer, Product, Order, Store.
  • Input validation on all fields.
  • This app is created entirely within the Dynamics365 Model-Driven App Infrastructure. P3 will involve JS, .NET WebAPI, and Dynamics365

Admin Access functionality

  • The admin is added on the back-end by you, but will have a login on the front-end to manipulate the inventories, etc.
  • Manage inventories
    • Admin can edit products and product catalog.
    • Add product
    • Edit price, description, related products, product hierarchy, image, etc.
    • Create a product catalog
    • Each store has an inventory of products. This doesn't mean different products, just different amounts of that product at that store.
  • Access all customer information to add, edit, or delete all fields.
  • Admin can see a list of all customers and filter that list by name, city, etc..
  • Add discounts and special offers like (bulk pricing, bundle pricing, 1st-time shopper discount, etc.)
    • Discounts should be for a limited time and/or percentage.
  • Admin can view past purchases of a store, filtered by date/customer/product name/product type.

Customer Access Functionality

  • Customer can navigate to the web page.
  • Customer can register a new account (with names, address, date of birth, phone number, email, profile image, username, password).
  • Customer can log in using the username and password created at registration.
  • Customer has a 'Home" page with their account details and other options related to shopping.
  • Customer should be able to view a list of store locations and select one.
  • Customer should be able to view available products to purchase at that store.
  • Customer should be able to purchase more than one product at a time.
  • Customer should be able to purchase more than one of a product at a time.
  • Amount of that product in the selected stores inventory will decrement on selection or checkout.
  • Customer should be able to view only their own past purchases: all or filtered by store/date/date range/price/price range.
  • When a customer selects one or more products, the 'place order' button (field) will become visible.
  • Customer can cancel an order at any point without buying.
  • Customer can checkout and is given the total price along with an itemized receipt.
  • Customer cannot edit products, customers, product catalog, etc.

product

  • Must have at least a name, price, and description.
  • As orders are made, the quantity in inventory for that store only decrements.

order

  • Must be able to compute its total cost.
  • Must be able to contain at least 1 product.
  • Order and receipt be itemized by product.
    • Product Line Item includes total for that row. (ex. 3 Nike Jordon Shoes @$30 each = $90)