0% found this document useful (0 votes)
2 views17 pages

Javaass

The document outlines a Restaurant Order System project, detailing its features such as adding, viewing, updating, and deleting orders, along with an optional search functionality. It includes the project folder structure, database schema, and setup instructions for MySQL and Eclipse, as well as the Java code for the application. Additionally, it provides frontend HTML templates and CSS for styling, along with steps to run the project and a GitHub link for access to the source code.

Uploaded by

pravin93615
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views17 pages

Javaass

The document outlines a Restaurant Order System project, detailing its features such as adding, viewing, updating, and deleting orders, along with an optional search functionality. It includes the project folder structure, database schema, and setup instructions for MySQL and Eclipse, as well as the Java code for the application. Additionally, it provides frontend HTML templates and CSS for styling, along with steps to run the project and a GitHub link for access to the source code.

Uploaded by

pravin93615
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Restaurant Order System

1. Features to Implement
1. Add Order – Allows users to add a new order (OrderID, CustomerName, TableNumber ,Items,
TotalBill).
2. View Orders – Displays a list of all orders.
3. Update Order – Provides an interface to modify order details.
4. Delete Order – Allows users to remove an order record.
5. Search Order (Optional) – Enables searching by customer name or table number.

2. Project Folder Structure

Folder Contents
src/[Link]/ [Link], [Link]
src/[Link]/ [Link]
src/[Link]/ [Link], [Link],
[Link], [Link]

src/[Link]/ [Link]
WebContent/view/ add_order.jsp, view_orders.jsp, update_order.jsp, [Link]
WebContent/css/ [Link]

3. Database Schema

Column Name Data Type Constraints


orderid INT PRIMARY KEY,
AUTO_INCREMENT
customername VARCHAR(100) NOT NULL
tablenumber INT NOT NULL
items TEXT NOT NULL
totalbill DOUBLE NOT NULL
1. MySQL Database Setup:

Create DB & Table:


CREATE DATABASE restaurant_db;

USE restaurant_db;

CREATE TABLE orders (


orderid INT PRIMARY KEY AUTO_INCREMENT,
customername VARCHAR(100) NOT NULL,
tablenumber INT NOT NULL,
items TEXT NOT NULL,
totalbill DOUBLE NOT NULL
);

2. Eclipse Project Setup (Step-by-Step)

Step 1: Create Project


1. Open Eclipse
2. File → New → Dynamic Web Project
3. Project Name: RestaurantApp
4. Target Runtime: Apache Tomcat
5. Finish

Step 2: Add MySQL Connector


1. Download MySQL Connector/J
2. Right click project → Build Path → Configure Build Path
3. Libraries → Add External JARs
4. Add [Link]
3. Project Structure

src/main/java/com/restaurant/

├── controller/
│ └── [Link]

├── model/
│ └── [Link]

├── repository/
│ └── [Link]

├── service/
│ ├── [Link]
│ └── [Link]

└── [Link]

src/main/resources/
├── templates/
│ ├── [Link]
│ ├── add_order.html
│ ├── view_orders.html
│ ├── update_order.html
│ └── search_order.html (optional)

└── static/
└── css/
└── [Link]

4. JAVA CODE
[Link] (Dependencies):

<dependencies>
<dependency>
<groupId>[Link]</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>[Link]</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

<dependency>
<groupId>[Link]</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
<groupId>[Link]</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>

</dependency>

<dependency>
<groupId>[Link]</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>

[Link]:

[Link]=jdbc:mysql://localhost:3306/restaurant_db
[Link]=root
[Link]=root
[Link]-class-name=[Link]
[Link]-auto=update
[Link]-sql=true
[Link]-platform=[Link].MySQL8Dialect
[Link]=8080
5. Java Code

[Link]
package [Link];

import [Link].*;

@Entity
@Table(name = "orders")
public class Order {

@Id
@GeneratedValue(strategy = [Link])
private int orderId;

private String customerName;


private int tableNumber;

@Column(columnDefinition = "TEXT")
private String items;

private double totalBill;

public int getOrderId() {


return orderId;
}

public void setOrderId(int orderId) {


[Link] = orderId;
}

public String getCustomerName() {


return customerName;
}

public void setCustomerName(String customerName) {


[Link] = customerName;
}
public int getTableNumber() {
return tableNumber;
}

public void setTableNumber(int tableNumber) {


[Link] = tableNumber;
}

public String getItems() {


return items;
}

public void setItems(String items) {


[Link] = items;
}

public double getTotalBill() {


return totalBill;
}

public void setTotalBill(double totalBill) {


[Link] = totalBill;
}

[Link]
package [Link];

import [Link];
import [Link];
import [Link];
import [Link];

@Repository
public interface OrderRepository extends JpaRepository<Order, Integer> {
List<Order> findByCustomerNameContainingIgnoreCase(String customerName);
List<Order> findByTableNumber(int tableNumber);
}

[Link]
package [Link];

import [Link];
import [Link];

public interface OrderService {


Order saveOrder(Order order);
List<Order> getAllOrders();
Order getOrderById(int id);
void deleteOrder(int id);
List<Order> searchByCustomerName(String name);
List<Order> searchByTableNumber(int tableNumber);
}

[Link]

package [Link];

import [Link];

import [Link];

import [Link];

import [Link];

import [Link];

import [Link];

@Service

public class OrderServiceImpl implements OrderService {

@Autowired

private OrderRepository orderRepository;


@Override

public Order saveOrder(Order order) {

return [Link](order);

@Override

public List<Order> getAllOrders() {

return [Link]();

@Override

public Order getOrderById(int id) {

Optional<Order> order = [Link](id);

return [Link](null);

@Override

public void deleteOrder(int id) {

[Link](id);

@Override

public List<Order> searchByCustomerName(String name) {

return [Link](name);

}
@Override

public List<Order> searchByTableNumber(int tableNumber) {

return [Link](tableNumber);

[Link]

package [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link].*;

import [Link];

@Controller
public class OrderController {

@Autowired
private OrderService orderService;

@GetMapping("/")
public String home() {
return "index";
}

@GetMapping("/add-order")
public String showAddOrderForm(Model model) {
[Link]("order", new Order());
return "add_order";
}
@PostMapping("/save-order")
public String saveOrder(@ModelAttribute("order") Order order) {
[Link](order);
return "redirect:/view-orders";
}

@GetMapping("/view-orders")
public String viewOrders(Model model) {
List<Order> orders = [Link]();
[Link]("orders", orders);
return "view_orders";
}

@GetMapping("/delete-order/{id}")
public String deleteOrder(@PathVariable("id") int id) {
[Link](id);
return "redirect:/view-orders";
}

@GetMapping("/edit-order/{id}")
public String showUpdateForm(@PathVariable("id") int id, Model model) {
Order order = [Link](id);
[Link]("order", order);
return "update_order";
}

@PostMapping("/update-order")
public String updateOrder(@ModelAttribute("order") Order order) {
[Link](order);
return "redirect:/view-orders";
}

@GetMapping("/search")
public String searchOrder(
@RequestParam(required = false) String customerName,
@RequestParam(required = false) Integer tableNumber,
Model model) {
List<Order> result;

if (customerName != null && ![Link]()) {


result = [Link](customerName);
} else if (tableNumber != null) {
result = [Link](tableNumber);
} else {
result = [Link]();
}

[Link]("orders", result);
return "view_orders";
}
}

[Link]

package [Link];

import [Link];

import [Link];

@SpringBootApplication

public class RestaurantApplication {

public static void main(String[] args) {

[Link]([Link], args);

}
6. FRONTEND

[Link]
<!DOCTYPE html>
<html xmlns:th="[Link]
<head>
<title>Restaurant Order System</title>
<link rel="stylesheet" th:href="@{/css/[Link]}">
</head>
<body>
<div class="container">
<h1>Restaurant Order System</h1>
<a th:href="@{/add-order}">Add Order</a><br><br>
<a th:href="@{/view-orders}">View Orders</a>
</div>
</body>
</html>

add_order.html
<!DOCTYPE html>
<html xmlns:th="[Link]
<head>
<title>Add Order</title>
<link rel="stylesheet" th:href="@{/css/[Link]}">
</head>
<body>
<div class="container">
<h1>Add Order</h1>
<form th:action="@{/save-order}" th:object="${order}" method="post">
<label>Customer Name:</label>
<input type="text" th:field="*{customerName}" /><br>

<label>Table Number:</label>
<input type="number" th:field="*{tableNumber}" /><br>

<label>Items:</label>
<input type="text" th:field="*{items}" /><br>
<label>Total Bill:</label>
<input type="number" step="0.01" th:field="*{totalBill}" /><br>

<button type="submit">Save</button>
</form>
</div>
</body>
</html>

view_orders.html
<!DOCTYPE html>
<html xmlns:th="[Link]
<head>
<title>View Orders</title>
<link rel="stylesheet" th:href="@{/css/[Link]}">
</head>
<body>
<div class="container">
<h1>Orders</h1>

<form th:action="@{/search}" method="get">


<input type="text" name="customerName" placeholder="Search by customer name">
<input type="number" name="tableNumber" placeholder="Search by table number">
<button type="submit">Search</button>
</form>

<br>

<table border="1">
<tr>
<th>ID</th>
<th>Name</th>
<th>Table</th>
<th>Items</th>
<th>Bill</th>
<th>Action</th>
</tr>
<tr th:each="order : ${orders}">
<td th:text="${[Link]}"></td>
<td th:text="${[Link]}"></td>
<td th:text="${[Link]}"></td>
<td th:text="${[Link]}"></td>
<td th:text="${[Link]}"></td>
<td>
<a th:href="@{'/edit-order/' + ${[Link]}}">Edit</a>
<a th:href="@{'/delete-order/' + ${[Link]}}">Delete</a>
</td>
</tr>
</table>
</div>
</body>
</html>

update_order.html
<!DOCTYPE html>
<html xmlns:th="[Link]
<head>
<title>Update Order</title>
<link rel="stylesheet" th:href="@{/css/[Link]}">
</head>
<body>
<div class="container">
<h1>Update Order</h1>
<form th:action="@{/update-order}" th:object="${order}" method="post">
<input type="hidden" th:field="*{orderId}" />

<label>Customer Name:</label>
<input type="text" th:field="*{customerName}" /><br>

<label>Table Number:</label>
<input type="number" th:field="*{tableNumber}" /><br>

<label>Items:</label>
<input type="text" th:field="*{items}" /><br>

<label>Total Bill:</label>
<input type="number" step="0.01" th:field="*{totalBill}" /><br>

<button type="submit">Update</button>
</form>
</div>
</body>
</html>

[Link]
body {
font-family: Arial, sans-serif;
margin: 20px;
background-color: #f8f8f8;
}

.container {
width: 80%;
margin: auto;
background: white;
padding: 20px;
border-radius: 10px;
}

h1 {
color: #222;
}

input, button {
margin: 5px 0;
padding: 8px;
width: 250px;
}

table {
border-collapse: collapse;
width: 100%;
}
th, td {
padding: 10px;
text-align: center;
}

7. RUN PROJECT
a. Start MySQL
b. Start Tomcat
c. Right click project → Run on Server
d. Open: [Link]

8. Output:
Github link:
[Link]

You might also like