Spaces:
Sleeping
Sleeping
File size: 5,253 Bytes
09e2b98 635ad5b d3bbdc1 21e0e48 d3bbdc1 21e0e48 d3bbdc1 36abe92 55c1abf a43603b 36abe92 21e0e48 5a12a62 36abe92 a43603b 49bd692 d5bb658 a43603b 49bd692 21e0e48 a43603b 49bd692 ad7521b a43603b 36abe92 ad7521b 5a12a62 36abe92 a43603b 49bd692 a43603b 49bd692 ba6bae6 a43603b 49bd692 a43603b 55c1abf 49bd692 55c1abf 49bd692 55c1abf 49bd692 8b696c7 49bd692 8b696c7 49bd692 8b696c7 49bd692 8b696c7 55c1abf 8b696c7 49bd692 8b696c7 55c1abf 49bd692 8b696c7 49bd692 55c1abf 49bd692 8b696c7 55c1abf 8b696c7 49bd692 a43603b 635ad5b 5a12a62 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Welcome to Biryani Hub</title>
<style>
body {
font-family: Arial, sans-serif;
background: linear-gradient(135deg, #f4c542, #ff8f6a);
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
}
.container {
background-color: #fff;
padding: 40px 50px;
border-radius: 10px;
text-align: center;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}
h1 {
font-size: 32px;
color: #ff6a00;
}
p {
font-size: 20px;
color: #333;
}
.category-buttons {
margin-top: 30px;
}
.category-buttons button {
padding: 15px 30px;
background-color: #ff6a00;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
font-size: 18px;
}
.category-buttons button:hover {
background-color: #e65c00;
}
</style>
</head>
<body>
<div class="container" id="welcomePage">
<h1>Welcome to Biryani Hub 🍽</h1>
<h2 class="info" id="infoMessage">Welcome! Are you a new customer or an existing one?</h2>
<p class="status" id="status">🔊 Please say 'new' to register or 'existing' to login.</p>
</div>
<!-- Registration Form -->
<div class="container" id="registrationForm" style="display: none;">
<h2>Register</h2>
<label for="name">Your Name</label>
<input type="text" id="name" placeholder="Listening for name..." readonly>
<label for="email">Your Email</label>
<input type="text" id="email" placeholder="Listening for email..." readonly>
<label for="mobile">Your Mobile Number</label>
<input type="text" id="mobile" placeholder="Listening for mobile number..." readonly>
<p class="status" id="registrationStatus">Listening... 🗣</p>
</div>
<!-- Login Form -->
<div class="container" id="loginForm" style="display: none;">
<h2>Login</h2>
<label for="loginEmail">Your Email</label>
<input type="text" id="loginEmail" placeholder="Listening for email..." readonly>
<label for="loginMobile">Your Mobile Number</label>
<input type="text" id="loginMobile" placeholder="Listening for mobile number..." readonly>
<p class="status" id="loginStatus">Listening... 🗣</p>
</div>
<script>
function checkEmailExists(email) {
fetch(`/check_email?email=${encodeURIComponent(email)}`)
.then(response => response.json())
.then(data => {
if (data.exists) {
speak("Welcome back! You are logged in.");
document.getElementById('loginForm').style.display = 'block';
document.getElementById('registrationForm').style.display = 'none';
} else {
speak("You are a new customer. Please proceed with registration.");
document.getElementById('registrationForm').style.display = 'block';
document.getElementById('loginForm').style.display = 'none';
}
})
.catch(() => {
speak("Error checking email. Please try again.");
});
}
function captureEmail() {
speak("Please say your email address.", function () {
recognition.start();
recognition.onresult = function (event) {
let emailCaptured = event.results[0][0].transcript.trim();
recognition.stop();
if (!isValidEmail(emailCaptured)) {
speak("The email address is invalid. Please provide a valid email like [email protected].", captureEmail);
} else {
checkEmailExists(emailCaptured);
}
};
});
}
function isValidPhone(phone) {
return /^\d{12}$/.test(phone);
}
function captureMobile() {
speak("Please say your 12-digit mobile number.", function () {
recognition.start();
recognition.onresult = function (event) {
let mobileCaptured = event.results[0][0].transcript.trim().replace(/\s+/g, '');
recognition.stop();
if (!isValidPhone(mobileCaptured)) {
speak("The mobile number is invalid. Please provide exactly 12 digits.", captureMobile);
} else {
speak("You said " + mobileCaptured + ". Is it correct?", function () {
confirmMobile(mobileCaptured);
});
}
};
});
}
</script>
</body>
</html>
|