Architecture Kata “Pizza Online”
Develop a software system to enable customers of a pizza delivery to order online.
The customer will open the web page showing the pizza delivery’s menu. There he can enter an order quantity for each pizza (default: 0). At the end he enters his name, address, telephone number and email address.
When he submits the pizza order he’ll be presented with a summary including an order number to confirm. If the summary is confirmed the order will be sent to the pizza delivery and the customer will receive a receipt email.
In case the customer is not satisfied by the summary he can go back to the menu. Whatever he had entered before of course will still be in place. His personal data will be stored for future orders with the same phone number or email address.
On the pizza delivery’s side orders will be printed automatically [1] upon receipt and archived as a Json- or XML-file.
Data
The menu is made available to the software system as a CSV-file named menu.txt and accompanied by picture image files:
Id | Description | PriceSmall | PriceMedium | PriceLarge | Image |
1 | Pizza Tonno | 5,60 | 6,50 | 7,80 | Tonno.jpg |
2 | Pizza Diabolo | 5,40 | 6,20 | 7,40 | Diabolo.jpg |
… |
Each pizza can be ordered in three different sizes. Pictures reside in the same directory as the menu file.
Endnotes
[1]Printing the order makes it easy to integrate the new online order system into the existing pizza production process. So far orders had been received via phone and were written down on paper to be handed to the pizza bakers.