Question: Assignment 3 This assignment is an individual work. You are not allowed to work on this with anyone, nor should you accept or offer

Assignment 3 This assignment is an individual work. You are not allowedto work on this with anyone, nor should you accept or offerhelp. Folks who offer help and hints generally produce very similar code

Assignment 3 This assignment is an individual work. You are not allowed to work on this with anyone, nor should you accept or offer help. Folks who offer help and hints generally produce very similar code to the folks receiving help and hints! Offenders will be prosecuted! Also note: these instructions are purposefully vague. There are an infinite number of ways to solve this problem! Choose ways that work! With that out of the way, put in the time, solve the problems, and get through it! It's worth it, and it's fun! Summary You are asked by your boss to develop an application which allows the restaurant to generate a bill for a customer, by a waiter of a table served to. The owner of the restaurant should be able to view at the end of the day how many bills got generated and how many customers got served by which waiter. Requirements Part 1 Begin with database tables (schema.sql), you are going to require creating tables like, Waiter table (First name, last name, ID, tableNo), Billing table (Bill id, tableNo, waiterName, total), Table(tableID, tableNo). Use your database knowledge to design you tables properly, add more properties as needed, and create relationships to access data easily. Beside these table you are also going to need tables to store USERS of the system with their ROLES, you can refer to your lectures for this as well. Part 2 Create Controller which can dispatch to a form where the menu is going to be displayed after properly login by a waiter to the system. Choose the items for the menu and their prices by yourselves (Minimum 10 items are required to be displayed on the form). Be reasonable with the prices, create some sections on the forms with different categories of the items to be displayed like Beverages, Main Course, Appetizers etc. You can use check boxes to select the items from the form for the order. You need method which can handle HTTP Get request "/", as well as POST requests with the form data. In your "/" mapped method, ask user to login as a Waiter or as Owner of the restaurant. "/login" will map towards form for taking details of username and password (your passwords stored in the database should be properly salted. Once login authentication is done, proper mapped form should be displayed. For a waiter it should be a menu and once the items are selected and Confirm Order button is pressed then the bill of the customer should be displayed (or GET method mapped to something like "/finalbill") with proper tax calculation and sub-total and total. For Owner a form should display with table no buttons like Table 1, Table 2, Table 3, etc. once the owner click on particular table button then proper GET method mapped to "/allbills" for that particular table should be displayed with all the waiters who server for that table and their bill totals with grand total for that particular table. Part 3 Create Thymeleaf page or pages which display dynamic Menu for the restaurant that is offered. Nicely formatted and styled with categories/ sections. Points for style here. Things to consider 1. Think about the POJO properties you need in this application, along with how POJO might possibly be related to each other. 2. All the information of bills and should be stored in the database and can be retrievable when needed. 3. You must use JDBC Template technology with SQL for database queries. 4. You must use H2 database for storage. 5. Your menu displayed page, bill pages must use Thymeleaf, and must look great. 6. You must use proper salted passwords for the waiters and owner. Submission Details Name your project A3 . Please use regular ZIP to combine and compress your project'd directory from inside your workspace folder. Use a regular .zip and follow this naming convention-you have officially been told! Failure to follow these two simple rules will result in massive grade reductions. Include different screen shots of your running application with each form with entering data. Include screen shots of your database tables with and without data. Don't forget to include your schema in the project. Submit your assignment to the SLATE Assignments folder for our course. You should attach/upload the zip of your Eclipse workspace project folder. Remember what you have learned and put it into practice! Best of luck Grading Controller Layer - appropriate calls etc. Model Layer - POJO, database access, JDBC Template queries etc. View Layer - Thymeleaf, Form binding et. All best practices and instructions followed and styles. 5 5 5 5 /20

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!