Design a usable journey

Make the form clear in success, empty and error states.

Design the failure path too

Trace the action through the actual write. If the outcome is unknown, do not label it failed and immediately resend it. Explain the current state and next step.

Missing confirmation does not prove an order was never received.

The write outcome is unknown

A timeout can happen after a write commits. Keep the request key and check the earlier result before retrying. Do not change the key to bypass a conflict.

Missing confirmation does not mean the restaurant never received the order.

Practice

Review ticket creation before extending it.

Review lab ticket creation on a narrow screen and with keyboard input. Edit only index.html/style.css for observed issues. Preserve control IDs, contracts and logic. Report tested and untested cases.

Check your work

Errors preserve input and feedback matches the state.

Both languages, keyboard and narrow layout are usable.

References