A user should be able to enter, edit, and remove menu items. The menu items have a name, a description, a category (such as appetizer, main course, side, dessert), and a price. (Unless you do the optional story, we’re not concerned with user logins or security)
A user should be able to view the menu, with items grouped by category, and see the names, descriptions, and prices.
The menu view should allow users to select items off the menu. On submitting the form, they should be able to see the total price of their potential order. A user should be able to adjust the quantity of items in their order.
Restrict the ability to enter, edit, and remove menu items to a logged-in administrator.
When the user sees their total order, they can add an optional tip of 10%, 15%, or 20%, and resubmit the order to see the total with tip.
The administrator can identify an item as being a “daily special”, only available on a given day of the week. Daily specials are all displayed on the user menu, but only the specials for the current day can be ordered by the user.
The administrator can optionally upload an image to go along with an item, if so, the image is displayed in the menu
The user can enter a minimum and maximum amount of money, click “I feel lucky” and get a random order between the minimum and maximum amounts.
The administrator can create different menus for lunch and dinner that have different, but potentially overlapping, sets of items. The user can select which menu to view.