Spaces:
Sleeping
Sleeping
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Biryani Hub Menu</title> | |
<style> | |
body { | |
font-family: Arial, sans-serif; | |
background-color: #f8f8f8; | |
margin: 0; | |
padding: 0; | |
} | |
.menu-container { | |
max-width: 1200px; | |
margin: 0 auto; | |
padding: 20px; | |
background-color: #4169E1; | |
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); | |
border-radius: 8px; | |
margin-top: 50px; | |
} | |
h1 { | |
text-align: center; | |
font-size: 2.5rem; | |
color: #87CEFA; | |
margin-bottom: 30px; | |
} | |
.menu-item { | |
border-bottom: 1px solid #eee; | |
padding: 15px 0; | |
display: flex; | |
justify-content: space-between; | |
align-items: center; | |
} | |
.order-btn { | |
padding: 10px 20px; | |
background-color: #4CAF50; | |
color: white; | |
border: none; | |
border-radius: 5px; | |
cursor: pointer; | |
} | |
.order-btn:hover { | |
background-color: #45a049; | |
} | |
#main-course-btn, #appetizer-btn { | |
padding: 10px 20px; | |
background-color: orange; | |
color: white; | |
border: none; | |
border-radius: 5px; | |
cursor: pointer; | |
font-size: 2.2rem; | |
margin: 10px 0; | |
} | |
#main-course-btn:hover, #appetizer-btn:hover { | |
background-color: #FF7F00; | |
} | |
#cart-summary, #place-order-summary { | |
display: none; | |
} | |
</style> | |
</head> | |
<body> | |
<!-- Page 1: Welcome and Category Selection --> | |
<div id="page1" class="menu-container"> | |
<h1>Welcome to Biryani Hub menu</h1> | |
<h3 id="category-title">Please select a category:</h3> | |
<button id="main-course-btn">Main Course</button> | |
<button id="appetizer-btn">Appetizers</button> | |
<button id="view-cart-btn">View Cart</button> <!-- View Cart button --> | |
</div> | |
<!-- Page 2: Main Course Menu --> | |
<div id="main-course-page" class="menu-container" style="display: none;"> | |
<h1>Main Course Menu</h1> | |
<div id="main-course-items"></div> | |
<button id="back-to-category-btn">Back to Category Selection</button> | |
<button id="view-cart-btn2">View Cart</button> <!-- View Cart button --> | |
</div> | |
<!-- Page 3: Appetizers Menu --> | |
<div id="appetizer-page" class="menu-container" style="display: none;"> | |
<h1>Appetizers Menu</h1> | |
<div id="appetizer-items"></div> | |
<button id="back-to-category-btn2">Back to Category Selection</button> | |
<button id="view-cart-btn3">View Cart</button> <!-- View Cart button --> | |
</div> | |
<!-- Page 4: View Cart --> | |
<div id="view-cart-page" class="menu-container" style="display: none;"> | |
<h1>Your Cart</h1> | |
<div id="cart-details"></div> | |
<button id="place-order-btn">Place Final Order</button> | |
<button id="back-to-menu-btn">Back to Menu</button> | |
</div> | |
<!-- Page 5: Place Order --> | |
<div id="place-order-page" class="menu-container" style="display: none;"> | |
<h1>Place Your Order</h1> | |
<div id="place-order-summary"></div> | |
<button id="confirm-order-btn">Confirm Order</button> | |
<button id="back-to-cart-btn">Back to Cart</button> | |
</div> | |
<script> | |
// Sample menu data | |
const menuData = { | |
'Main Course': [ | |
{ name: "Chicken Biryani", price: 250 }, | |
{ name: "Veg Biryani", price: 200 }, | |
{ name: "Mutton Biryani", price: 300 } | |
], | |
'Appetizers': [ | |
{ name: "Paneer Tikka", price: 180 }, | |
{ name: "Chicken Wings", price: 220 } | |
] | |
}; | |
// Selectors for pages and buttons | |
const categoryButtons = document.getElementById('page1'); | |
const mainCoursePage = document.getElementById('main-course-page'); | |
const appetizerPage = document.getElementById('appetizer-page'); | |
const viewCartPage = document.getElementById('view-cart-page'); | |
const placeOrderPage = document.getElementById('place-order-page'); | |
const backToCategoryBtns = document.querySelectorAll('[id^="back-to-category-btn"]'); | |
const backToMenuBtns = document.querySelectorAll('[id^="back-to-menu-btn"]'); | |
const cartDetails = document.getElementById("cart-details"); | |
const placeOrderSummary = document.getElementById("place-order-summary"); | |
// Global cart variable to store items | |
let cart = []; | |
let menuData = {}; | |
// Function to display menu items based on category | |
function displayMenuItems(category) { | |
const menuContainer = category === 'Main Course' ? document.getElementById('main-course-items') : document.getElementById('appetizer-items'); | |
menuContainer.innerHTML = ''; | |
if (menuData[category]) { | |
menuData[category].forEach(item => { | |
const itemElement = document.createElement('div'); | |
itemElement.classList.add('menu-item'); | |
itemElement.innerHTML = ` | |
<div class="details"> | |
<h3>${item.name}</h3> | |
<p class="price">Price: ₹${item.price}</p> | |
</div> | |
<button class="order-btn" onclick="addToCart('${item.name}', 1)">Order</button> | |
`; | |
menuContainer.appendChild(itemElement); | |
}); | |
} | |
} | |
// Function to add an item to the cart | |
function addToCart(itemName, quantity) { | |
const item = findItem(itemName); | |
cart.push({ name: item.name, price: item.price, quantity: quantity }); | |
} | |
// Function to find item in the menu | |
function findItem(itemName) { | |
const menu = menuData['Main Course']; | |
return menu.find(item => item.name.toLowerCase() === itemName.toLowerCase()); | |
} | |
// Function to display cart details | |
function showCartDetails() { | |
if (cart.length > 0) { | |
let cartHtml = ""; | |
cart.forEach(item => { | |
cartHtml += `<p>${item.quantity} x ${item.name} - ₹${item.price * item.quantity}</p>`; | |
}); | |
cartDetails.innerHTML = cartHtml; | |
viewCartPage.style.display = "block"; | |
speak(`Your cart contains ${cart.length} items.`); | |
} else { | |
speak("Your cart is empty."); | |
} | |
} | |
// Function to place the order | |
function showPlaceOrder() { | |
if (cart.length > 0) { | |
let summaryHtml = ""; | |
cart.forEach(item => { | |
summaryHtml += `<p>${item.quantity} x ${item.name} - ₹${item.price * item.quantity}</p>`; | |
}); | |
placeOrderSummary.innerHTML = summaryHtml; | |
placeOrderPage.style.display = "block"; | |
} else { | |
speak("Your cart is empty. Please add items to the cart first."); | |
} | |
} | |
// Event listeners for page navigation | |
document.getElementById("main-course-btn").addEventListener("click", () => { | |
categoryButtons.style.display = "none"; | |
mainCoursePage.style.display = "block"; | |
displayMenuItems('Main Course'); | |
}); | |
document.getElementById("appetizer-btn").addEventListener("click", () => { | |
categoryButtons.style.display = "none"; | |
appetizerPage.style.display = "block"; | |
displayMenuItems('Appetizers'); | |
}); | |
backToCategoryBtns.forEach(button => { | |
button.addEventListener("click", () => { | |
mainCoursePage.style.display = "none"; | |
appetizerPage.style.display = "none"; | |
categoryButtons.style.display = "block"; | |
}); | |
}); | |
backToMenuBtns.forEach(button => { | |
button.addEventListener("click", () => { | |
viewCartPage.style.display = "none"; | |
placeOrderPage.style.display = "none"; | |
categoryButtons.style.display = "block"; | |
}); | |
}); | |
// Buttons for View Cart and Place Order | |
document.getElementById("view-cart-btn").addEventListener("click", () => { | |
showCartDetails(); | |
mainCoursePage.style.display = "none"; | |
appetizerPage.style.display = "none"; | |
}); | |
document.getElementById("view-cart-btn2").addEventListener("click", () => { | |
showCartDetails(); | |
mainCoursePage.style.display = "none"; | |
appetizerPage.style.display = "none"; | |
}); | |
document.getElementById("place-order-btn").addEventListener("click", () => { | |
showPlaceOrder(); | |
viewCartPage.style.display = "none"; | |
}); | |
document.getElementById("confirm-order-btn").addEventListener("click", () => { | |
speak("Your order has been placed successfully. Thank you for visiting Biryani Hub."); | |
placeOrderPage.style.display = "none"; | |
categoryButtons.style.display = "block"; | |
}); | |
// Voice greeting for menu categories | |
const recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)(); | |
recognition.lang = "en-US"; | |
recognition.interimResults = false; | |
function speak(text) { | |
const msg = new SpeechSynthesisUtterance(text); | |
window.speechSynthesis.speak(msg); | |
} | |
window.onload = function() { | |
menuData = { | |
'Main Course': [ | |
{ name: "Chicken Biryani", price: 250 }, | |
{ name: "Veg Biryani", price: 200 }, | |
{ name: "Mutton Biryani", price: 300 } | |
], | |
'Appetizers': [ | |
{ name: "Paneer Tikka", price: 180 }, | |
{ name: "Chicken Wings", price: 220 } | |
] | |
}; | |
speak("Welcome to Biryani Hub! We have the following categories: Main Course and Appetizers. Please say 'Main Course' or 'Appetizers' to select a category."); | |
recognition.start(); | |
recognition.onresult = (event) => { | |
const categoryCommand = event.results[0][0].transcript.toLowerCase(); | |
if (categoryCommand.includes("main course")) { | |
displayMenuItems('Main Course'); | |
mainCoursePage.style.display = "block"; | |
categoryButtons.style.display = "none"; | |
} else if (categoryCommand.includes("appetizers")) { | |
displayMenuItems('Appetizers'); | |
appetizerPage.style.display = "block"; | |
categoryButtons.style.display = "none"; | |
} else { | |
speak("Sorry, I couldn't understand that. Please say 'Main Course' or 'Appetizers'."); | |
} | |
}; | |
}; | |
</script> | |
</body> | |
</html> | |