lokesh341 commited on
Commit
4caeded
·
verified ·
1 Parent(s): 14f0913

Update templates/menu_page.html

Browse files
Files changed (1) hide show
  1. templates/menu_page.html +192 -134
templates/menu_page.html CHANGED
@@ -5,147 +5,205 @@
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
  <title>Biryani Hub Menu</title>
7
  <style>
8
- body {
9
- font-family: Arial, sans-serif;
10
- background-color: #f8f8f8;
11
- margin: 0;
12
- padding: 0;
13
- }
14
- .menu-container {
15
- max-width: 1200px;
16
- margin: 0 auto;
17
- padding: 20px;
18
- background-color: #4169E1;
19
- box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
20
- border-radius: 8px;
21
- margin-top: 50px;
22
- }
23
- h1 {
24
- text-align: center;
25
- font-size: 2.5rem;
26
- color: #87CEFA;
27
- margin-bottom: 30px;
28
- }
29
- .menu-item {
30
- border-bottom: 1px solid #eee;
31
- padding: 15px 0;
32
- display: flex;
33
- justify-content: space-between;
34
- align-items: center;
35
- }
36
- .order-btn {
37
- padding: 10px 20px;
38
- background-color: #4CAF50;
39
- color: white;
40
- border: none;
41
- border-radius: 5px;
42
- cursor: pointer;
43
- }
44
- .order-btn:hover {
45
- background-color: #45a049;
46
- }
47
- #main-course-btn, #appetizer-btn {
48
- padding: 10px 20px;
49
- background-color: orange;
50
- color: white;
51
- border: none;
52
- border-radius: 5px;
53
- cursor: pointer;
54
- font-size: 2.2rem;
55
- margin: 10px 0;
56
- }
57
- #main-course-btn:hover, #appetizer-btn:hover {
58
- background-color: #FF7F00;
59
- }
60
- #cart-summary {
61
- display: none;
62
- }
63
- </style>
64
  </head>
65
  <body>
66
 
67
- <!-- Page 1: Welcome and Category Selection -->
68
- <div id="page1" class="menu-container">
69
- <h1>Welcome to Biryani Hub menu</h1>
70
- <h3 id="category-title">Please select a category:</h3>
71
- <button id="main-course-btn">Main Course</button>
72
- <button id="appetizer-btn">Appetizers</button>
73
- </div>
74
-
75
- <!-- Page 2: Main Course Menu -->
76
- <div id="main-course-page" class="menu-container" style="display: none;">
77
- <h1>Main Course Menu</h1>
78
- <div id="main-course-items"></div>
79
- <button id="back-to-category-btn">Back to Category Selection</button>
80
- </div>
81
-
82
- <!-- Page 3: Appetizers Menu -->
83
- <div id="appetizer-page" class="menu-container" style="display: none;">
84
- <h1>Appetizers Menu</h1>
85
- <div id="appetizer-items"></div>
86
- <button id="back-to-category-btn2">Back to Category Selection</button>
87
- </div>
88
-
89
- <script>
90
- // Sample menu data
91
- const menuData = {
92
- 'Main Course': [
93
- { name: "Chicken Biryani", price: 250 },
94
- { name: "Veg Biryani", price: 200 },
95
- { name: "Mutton Biryani", price: 300 }
96
- ],
97
- 'Appetizers': [
98
- { name: "Paneer Tikka", price: 180 },
99
- { name: "Chicken Wings", price: 220 }
100
- ]
101
- };
102
-
103
- // Selectors for pages and buttons
104
- const categoryButtons = document.getElementById('page1');
105
- const mainCoursePage = document.getElementById('main-course-page');
106
- const appetizerPage = document.getElementById('appetizer-page');
107
- const backToCategoryBtns = document.querySelectorAll('[id^="back-to-category-btn"]');
108
-
109
- // Event listeners for buttons to navigate between pages
110
- document.getElementById("main-course-btn").addEventListener("click", () => {
111
- categoryButtons.style.display = "none";
112
- mainCoursePage.style.display = "block";
113
- displayMenuItems('Main Course');
114
- });
115
 
116
- document.getElementById("appetizer-btn").addEventListener("click", () => {
117
- categoryButtons.style.display = "none";
118
- appetizerPage.style.display = "block";
119
- displayMenuItems('Appetizers');
120
- });
 
 
 
 
 
 
 
 
121
 
122
- backToCategoryBtns.forEach(button => {
123
- button.addEventListener("click", () => {
124
- mainCoursePage.style.display = "none";
125
- appetizerPage.style.display = "none";
126
- categoryButtons.style.display = "block";
127
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
 
130
- // Function to populate menu items based on category
131
- function displayMenuItems(category) {
132
- const menuContainer = category === 'Main Course' ? document.getElementById('main-course-items') : document.getElementById('appetizer-items');
133
- menuContainer.innerHTML = '';
134
- if (menuData[category]) {
135
- menuData[category].forEach(item => {
136
- const itemElement = document.createElement('div');
137
- itemElement.classList.add('menu-item');
138
- itemElement.innerHTML = `
139
- <div class="details">
140
- <h3>${item.name}</h3>
141
- <p class="price">Price: ₹${item.price}</p>
142
- </div>
143
- <button class="order-btn">Order</button>
144
- `;
145
- menuContainer.appendChild(itemElement);
146
- });
147
- }
148
  }
149
- </script>
 
 
 
150
  </body>
151
  </html>
 
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
  <title>Biryani Hub Menu</title>
7
  <style>
8
+ body {
9
+ font-family: Arial, sans-serif;
10
+ background-color: #f8f8f8;
11
+ margin: 0;
12
+ padding: 0;
13
+ }
14
+ .menu-container {
15
+ max-width: 1200px;
16
+ margin: 0 auto;
17
+ padding: 20px;
18
+ background-color: #4169E1;
19
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
20
+ border-radius: 8px;
21
+ margin-top: 50px;
22
+ }
23
+ h1 {
24
+ text-align: center;
25
+ font-size: 2.5rem;
26
+ color: #87CEFA;
27
+ margin-bottom: 30px;
28
+ }
29
+ .menu-item {
30
+ border-bottom: 1px solid #eee;
31
+ padding: 15px 0;
32
+ display: flex;
33
+ justify-content: space-between;
34
+ align-items: center;
35
+ }
36
+ .order-btn {
37
+ padding: 10px 20px;
38
+ background-color: #4CAF50;
39
+ color: white;
40
+ border: none;
41
+ border-radius: 5px;
42
+ cursor: pointer;
43
+ }
44
+ .order-btn:hover {
45
+ background-color: #45a049;
46
+ }
47
+ #main-course-btn, #appetizer-btn {
48
+ padding: 10px 20px;
49
+ background-color: orange;
50
+ color: white;
51
+ border: none;
52
+ border-radius: 5px;
53
+ cursor: pointer;
54
+ font-size: 2.2rem;
55
+ margin: 10px 0;
56
+ }
57
+ #main-course-btn:hover, #appetizer-btn:hover {
58
+ background-color: #FF7F00;
59
+ }
60
+ #cart-summary {
61
+ display: none;
62
+ }
63
+ </style>
64
  </head>
65
  <body>
66
 
67
+ <!-- Page 1: Welcome and Category Selection -->
68
+ <div id="page1" class="menu-container">
69
+ <h1>Welcome to Biryani Hub menu</h1>
70
+ <h3 id="category-title">Please select a category:</h3>
71
+ <button id="main-course-btn">Main Course</button>
72
+ <button id="appetizer-btn">Appetizers</button>
73
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
 
75
+ <!-- Page 2: Main Course Menu -->
76
+ <div id="main-course-page" class="menu-container" style="display: none;">
77
+ <h1>Main Course Menu</h1>
78
+ <div id="main-course-items"></div>
79
+ <button id="back-to-category-btn">Back to Category Selection</button>
80
+ </div>
81
+
82
+ <!-- Page 3: Appetizers Menu -->
83
+ <div id="appetizer-page" class="menu-container" style="display: none;">
84
+ <h1>Appetizers Menu</h1>
85
+ <div id="appetizer-items"></div>
86
+ <button id="back-to-category-btn2">Back to Category Selection</button>
87
+ </div>
88
 
89
+ <script>
90
+ // Sample menu data
91
+ const menuData = {
92
+ 'Main Course': [
93
+ { name: "Chicken Biryani", price: 250 },
94
+ { name: "Veg Biryani", price: 200 },
95
+ { name: "Mutton Biryani", price: 300 }
96
+ ],
97
+ 'Appetizers': [
98
+ { name: "Paneer Tikka", price: 180 },
99
+ { name: "Chicken Wings", price: 220 }
100
+ ]
101
+ };
102
+
103
+ // Selectors for pages and buttons
104
+ const categoryButtons = document.getElementById('page1');
105
+ const mainCoursePage = document.getElementById('main-course-page');
106
+ const appetizerPage = document.getElementById('appetizer-page');
107
+ const backToCategoryBtns = document.querySelectorAll('[id^="back-to-category-btn"]');
108
+
109
+ // Event listeners for buttons to navigate between pages
110
+ document.getElementById("main-course-btn").addEventListener("click", () => {
111
+ categoryButtons.style.display = "none";
112
+ mainCoursePage.style.display = "block";
113
+ displayMenuItems('Main Course');
114
+ });
115
+
116
+ document.getElementById("appetizer-btn").addEventListener("click", () => {
117
+ categoryButtons.style.display = "none";
118
+ appetizerPage.style.display = "block";
119
+ displayMenuItems('Appetizers');
120
+ });
121
+
122
+ backToCategoryBtns.forEach(button => {
123
+ button.addEventListener("click", () => {
124
+ mainCoursePage.style.display = "none";
125
+ appetizerPage.style.display = "none";
126
+ categoryButtons.style.display = "block";
127
+ });
128
+ });
129
+
130
+ // Function to populate menu items based on category
131
+ function displayMenuItems(category) {
132
+ const menuContainer = category === 'Main Course' ? document.getElementById('main-course-items') : document.getElementById('appetizer-items');
133
+ menuContainer.innerHTML = '';
134
+ if (menuData[category]) {
135
+ menuData[category].forEach(item => {
136
+ const itemElement = document.createElement('div');
137
+ itemElement.classList.add('menu-item');
138
+ itemElement.innerHTML = `
139
+ <div class="details">
140
+ <h3>${item.name}</h3>
141
+ <p class="price">Price: ₹${item.price}</p>
142
+ </div>
143
+ <button class="order-btn" onclick="addToCart('${item.name}', 1)">Order</button>
144
+ `;
145
+ menuContainer.appendChild(itemElement);
146
  });
147
+ }
148
+ }
149
+
150
+ // Function to add an item to the cart
151
+ let cart = [];
152
+ function addToCart(itemName, quantity) {
153
+ const item = findItem(itemName);
154
+ cart.push({ name: item.name, price: item.price, quantity: quantity });
155
+ }
156
+
157
+ // Function to find item in the menu
158
+ function findItem(itemName) {
159
+ const menu = menuData['Main Course']; // Default category to check first
160
+ return menu.find(item => item.name.toLowerCase() === itemName.toLowerCase());
161
+ }
162
+
163
+ // Voice greeting for menu categories
164
+ const recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)();
165
+ recognition.lang = "en-US";
166
+ recognition.interimResults = false;
167
+ function speak(text) {
168
+ const msg = new SpeechSynthesisUtterance(text);
169
+ window.speechSynthesis.speak(msg);
170
+ }
171
+
172
+ window.onload = function() {
173
+ // Sample menu data for Main Course and Appetizers
174
+ menuData = {
175
+ 'Main Course': [
176
+ { name: "Chicken Biryani", price: 250 },
177
+ { name: "Veg Biryani", price: 200 },
178
+ { name: "Mutton Biryani", price: 300 }
179
+ ],
180
+ 'Appetizers': [
181
+ { name: "Paneer Tikka", price: 180 },
182
+ { name: "Chicken Wings", price: 220 }
183
+ ]
184
+ };
185
 
186
+ // Automatically greet the user and prompt for category selection
187
+ speak("Welcome to Biryani Hub! We have the following categories: Main Course and Appetizers. Please say 'Main Course' or 'Appetizers' to select a category.");
188
+
189
+ // Automatically trigger voice recognition for category selection
190
+ recognition.start();
191
+ recognition.onresult = (event) => {
192
+ const categoryCommand = event.results[0][0].transcript.toLowerCase();
193
+ if (categoryCommand.includes("main course")) {
194
+ displayMenuItems('Main Course');
195
+ mainCoursePage.style.display = "block";
196
+ categoryButtons.style.display = "none";
197
+ } else if (categoryCommand.includes("appetizers")) {
198
+ displayMenuItems('Appetizers');
199
+ appetizerPage.style.display = "block";
200
+ categoryButtons.style.display = "none";
201
+ } else {
202
+ speak("Sorry, I couldn't understand that. Please say 'Main Course' or 'Appetizers'.");
 
203
  }
204
+ };
205
+ };
206
+ </script>
207
+
208
  </body>
209
  </html>