This is the first part of the series. The links for the remaining posts are application execution, screens, initial data, basic testing, detailed testing.
Overview
This is a web application which can be used for practicing with any web browser automation testing tool. This application models the life cycle of a customer order, from selecting dishes to billing. The main screens are the following –
- Home – Creating, modifying and searching orders by choosing dishes.
- Kitchen – Summary of created and under preparation orders.
- Server – Summary of ready and served orders.
The customer creates an order by selecting dishes and quantities from the ‘Home‘ screen. The order is now available in the ‘Kitchen‘ screen in a ‘Created” status. The order is moved to ‘Preparing‘ status when it is being cooked. On completion it is moved to ‘Ready‘ state and is available on the ‘Server‘ screen. When the order is sent to the table it is moved to ‘Served‘ status. When the customer is charged for the order, it is moved to the ‘Billed” status. The customer is allowed to ‘Cancel‘ the order in the ‘Created‘ and ‘Preparing‘ states. This is pretty much the workings of an order in a restaurant.
Source
The source code of the application can be found here.
Technology
This is a Spring Boot application and the executable jar can be found here. The application uses WebSockets for dual sided communication between browser and server. The pages are created using Thymeleaf templates and application is running on an embedded Tomcat server and uses H2 as the embedded database.