Architecture Kata “Collective Order”
Develop a web based software system to allow people who are interested in the same product to discover each other and jointly order the product to gain a price advantage from ordering a larger quantity.
The software system will manage requests or offers, e.g. “Organic Cranberries, 500g”. Such requests have a deadline (e.g. 1/15/2016) and a quantity threshold (e.g. 50 packages). If the threshold is reached before the deadline, the product will be ordered automatically. If the deadline is reached without the quantity threshold being crossed, an order depends on the total quantity the supporters want to order.
The minimum order quantity secures a certain price for all supporters of a request.
All supporters register with a request by adding the quantity they want to order. They will see how much time until the deadline and the delta between the current total quantity and the threshold.
As long as the request is active supporters can enter and leave it.
Once an order is generated all supporters will be informed by email. Likewise if the request got cancelled.
In case of an order the vendor is provided with a CSV list of all supporter data. He then will deliver directly and invoice them.
Supporters need to first register with the system. Any user can create new requests or support requests.