Project 0 Requirements - 12062021-dynamics365-uta/12062021-batch-repo GitHub Wiki
P0 - Store Application
You are in charge of building a console-based Store Application.
Presentation
- you will be presenting on December 27, 2021
- you are expected to present at least the MVP requirements
Technology Stack
- C# (console app)
- Coverlet
- xUnit
- ADO.NET
Minimum Viable Product (MVP)
- a customer should be able to view a list of store locations and select one (2pts)
- a customer should be able to view available products to purchase at that store (2pts)
- a customer should be able to purchase at least 1 product (2pts)
- a customer should be able to view their past purchases (2pts)
- a customer should be able to view past purchases of a store (2pts)
- a solution containing 4 projects (Client(FE), Domain(Business Layer), Storage(Repository Layer), Testing) should be implemented (10pts)
- test coverage of at least 30% should be implemented (10pts)
- data storage using a DB with ADO.NET should be implemented (10pts)
- runtime monitoring with logging should be implemented (10pts)
Requirements
The application is anchored around the objects: Customer, Product, Order, Store.
customer
- must be able to view past purchases
- must be able to view available store locations
- must be able to purchase 1 or more products
- must be able to view current cart
- must be able to checkout
- must be able to cancel a purchase
product
- must have a name, price, and description
order
- must be able to compute its total cost
- must be able to contain at least 1 product
- must be able to limit its content to no more than 50 items
- must be able to limit its total cost to no more than $500
store
- must be able to view past sales
- must be able to view sales by store location
- [stretch goal] must be able to manage product inventory (add, edit, delete any product)
Architecture
- StoreApplication (solution - sln template)
- Client (executable - console template)
- Domain (library - classlib template)
- Storage (library - classlib template)
- Testing (unit testing - xunit template)