The material below is a sample project proposal. My goal in sharing it is to illustrate what a proposal might look like. If you have questions about any aspect of it, please ask. A significant point of the sample is to indicate that while you should do substantial planning, you need not have considered every aspect of the project's workings.
The idea is that each table in the pizza place will have a screen that customers can use to select and submit their order. Servers will have a similar app for customers who prefer the old-fashioned method of ordering. Using the app, customers can:
Five different forms are planned. The nature of each and their interactions are described below. Their images appear below the discussion.
This window should be open when the customers sit down at the table. (The program starts with this window. Servers may have to start the program at each table.) It welcomes them, provides basic information, and links to the primary actions available to the user—Prepare an order and Request a server.
From this window the user can access the "Selections" window (to order pizzas and drinks), send a message to the system requesting a server come to the table, or request that the receipt be printed.
This window will stay open throughout program operation. Other windows may appear in front of it but will close allowing it to reappear
The selections window allows users to repeatedly specify a pizza to add to their order and to add drinks to their order. (Pizzas one at a time; drinks can be ordered in quantity.) The Add To Order buttons allow each part adding of pizzas and drinks to the order. As items are ordered, they appear in the list box that is in the group box Order. The order may be updated by selecting an item to be deleted from the order. When done the user will click on the Submit Order button.
If the user selects Custom as the toppings for a pizza, the selections window make use of the "custom toppings" window for customers who want to choose non-standard pizzas. That form will provide data back to the selections window indicating the toppings selected.
Drinks will all be a single size—the intent is to allow refills of non-alcoholic drinks. (I need to add bottled water & tap water to the list.) Most drinks will have combo box to indicate quantity. Draft beers will have combo boxes used to indicate kind of draft and assume the quantity is one (thus multiple draft beer controls).
Eventually the user will (the order is submitted) the window closes and the Order Status window will appear. control returns to the order app window which immediately displays the order summary window.
I need to do something to show the prices. Either include them in the selections (and toppings windows) or have a new form that includes all the prices.
If the user selects the Custom toppings a new window appears. The Toppings window will allow the user to choose meats, cheeses, and other toppings. Checkboxes will be used to allow multiple selections. An message box will probably be used to allow the user to see/review the topics before submitting them. If okay is not clicked nothing will be submitted and the user can change their choices.
The Order Status window will indicate that the order has been received and an approximate delay till ready reported. The delay will be based on the number of pizzas ordered.
I may want to include the order here as a double-check.
The Receipt window will show and print the final receipt which will include prices and tax, and include space for a gratuity and total. I still need to decide where to go next. Right now, I think I should add Print and Done/Exit buttons.
This program uses two input files and one output file. The input files will contain names/descriptors for pizzas & toppings and their prices (for small size--others sizes based on price of small). The output file will be a receipt for the bill (discussed above, shown below). Possible content for the input files are shown below.
Bacon Cheeseburger $8.00 BBQ Chicken $7.50 Loaded Cheese $7.00 Meat Lovers $9.50 Pepe Special $9.00 Pepperoni $7.00 Hawaiian $7.50 Veggie Delight $8.00 Mediterranean $7.50 Fire Starter $7.50 Nachorally $8.00
Bacon bits $0.60 BBQ chicken $0.50 Canadian bacon $0.65 Ground beef $0.50 Ham $0.60 Italian sausage $0.60 Pepperoni $0.75 Turkey sausage $0.50 Sardines $0.50 Sausage $0.60 Cheddar $0.60 Mozzarella $0.60 Parmesan $1.00 Dried tomatoes $0.50 Green peppers $0.30 Jalapeno $0.50 Mushrooms $0.40 Olives $0.40 Onions $0.30