ARIST069 commited on
Commit
98d935d
·
verified ·
1 Parent(s): 89a9bb1

Cool, the navigation bar is working file but the pages on the navigation bar are blank and it's giving me an "Error 404: This page could not be found", so create those now. Create a page for Appointments, Call Logs, Leads, Analytics, Settings and Logout - Initial Deployment

Browse files
Files changed (2) hide show
  1. README.md +6 -4
  2. index.html +818 -18
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Test 3
3
- emoji: 🌖
4
  colorFrom: purple
5
- colorTo: blue
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: test-3
3
+ emoji: 🐳
4
  colorFrom: purple
5
+ colorTo: green
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,819 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  </html>
 
1
+
2
+ <!DOCTYPE html>
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>Gym Outsourcing - Appointments</title>
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
10
+ <style>
11
+ .sidebar {
12
+ transition: all 0.3s ease;
13
+ }
14
+ .sidebar.collapsed {
15
+ width: 70px;
16
+ }
17
+ .sidebar.collapsed .nav-text {
18
+ display: none;
19
+ }
20
+ .sidebar.collapsed .logo-text {
21
+ display: none;
22
+ }
23
+ .main-content {
24
+ transition: all 0.3s ease;
25
+ }
26
+ .sidebar.collapsed + .main-content {
27
+ margin-left: 70px;
28
+ }
29
+ </style>
30
+ </head>
31
+ <body class="bg-gray-100 font-sans">
32
+ <div class="flex h-screen overflow-hidden">
33
+ <!-- Sidebar (same as dashboard) -->
34
+ <div class="sidebar bg-dark text-white w-64 flex flex-col">
35
+ <div class="p-4 flex items-center space-x-2 border-b border-gray-700 cursor-pointer" onclick="toggleSidebar()">
36
+ <div class="bg-primary p-2 rounded-lg">
37
+ <i class="fas fa-dumbbell text-white text-xl"></i>
38
+ </div>
39
+ <span class="logo-text text-xl font-bold">Gym Outsourcing</span>
40
+ </div>
41
+ <div class="p-4 border-b border-gray-700">
42
+ <div class="flex items-center space-x-3">
43
+ <div class="w-10 h-10 rounded-full bg-primary flex items-center justify-center">
44
+ <span class="text-white font-bold">GO</span>
45
+ </div>
46
+ <div class="nav-text">
47
+ <p class="font-medium">Admin Dashboard</p>
48
+ <p class="text-gray-400 text-sm">Super Admin</p>
49
+ </div>
50
+ </div>
51
+ </div>
52
+ <nav class="flex-1 overflow-y-auto">
53
+ <ul class="space-y-1 p-2">
54
+ <li>
55
+ <a href="dashboard.html" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-700 text-gray-300 hover:text-white">
56
+ <i class="fas fa-home"></i>
57
+ <span class="nav-text">Dashboard</span>
58
+ </a>
59
+ </li>
60
+ <li>
61
+ <a href="appointments.html" class="flex items-center space-x-3 p-3 rounded-lg bg-primary text-white">
62
+ <i class="fas fa-calendar-alt"></i>
63
+ <span class="nav-text">Appointments</span>
64
+ </a>
65
+ </li>
66
+ <li>
67
+ <a href="call-logs.html" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-700 text-gray-300 hover:text-white">
68
+ <i class="fas fa-phone"></i>
69
+ <span class="nav-text">Call Logs</span>
70
+ </a>
71
+ </li>
72
+ <li>
73
+ <a href="leads.html" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-700 text-gray-300 hover:text-white">
74
+ <i class="fas fa-users"></i>
75
+ <span class="nav-text">Leads</span>
76
+ </a>
77
+ </li>
78
+ <li>
79
+ <a href="analytics.html" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-700 text-gray-300 hover:text-white">
80
+ <i class="fas fa-chart-line"></i>
81
+ <span class="nav-text">Analytics</span>
82
+ </a>
83
+ </li>
84
+ <li>
85
+ <a href="settings.html" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-700 text-gray-300 hover:text-white">
86
+ <i class="fas fa-cog"></i>
87
+ <span class="nav-text">Settings</span>
88
+ </a>
89
+ </li>
90
+ </ul>
91
+ </nav>
92
+ <div class="p-4 border-t border-gray-700">
93
+ <a href="logout.html" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-700 text-gray-300 hover:text-white w-full">
94
+ <i class="fas fa-sign-out-alt"></i>
95
+ <span class="nav-text">Logout</span>
96
+ </a>
97
+ </div>
98
+ </div>
99
+
100
+ <!-- Main Content -->
101
+ <div class="main-content flex-1 overflow-y-auto ml-64">
102
+ <!-- Header -->
103
+ <header class="bg-white shadow-sm p-4 flex justify-between items-center">
104
+ <h1 class="text-2xl font-bold text-dark">Appointments</h1>
105
+ <div class="flex items-center space-x-4">
106
+ <button class="bg-primary text-white px-4 py-2 rounded-lg hover:bg-blue-600 transition-colors">
107
+ <i class="fas fa-plus mr-2"></i> New Appointment
108
+ </button>
109
+ <div class="relative">
110
+ <i class="fas fa-bell text-gray-500 text-xl"></i>
111
+ <span class="absolute top-0 right-0 w-2 h-2 bg-red-500 rounded-full"></span>
112
+ </div>
113
+ <div class="flex items-center space-x-2">
114
+ <div class="w-8 h-8 rounded-full bg-primary flex items-center justify-center">
115
+ <span class="text-white text-sm">GO</span>
116
+ </div>
117
+ <span class="font-medium">Admin</span>
118
+ </div>
119
+ </div>
120
+ </header>
121
+
122
+ <!-- Appointments Content -->
123
+ <main class="p-6">
124
+ <div class="bg-white rounded-lg shadow overflow-hidden mb-6">
125
+ <div class="p-4 border-b border-gray-200 flex justify-between items-center">
126
+ <h2 class="text-lg font-semibold">Upcoming Appointments</h2>
127
+ <div class="flex space-x-2">
128
+ <input type="text" placeholder="Search appointments..." class="border border-gray-300 rounded-lg px-3 py-1 text-sm">
129
+ <select class="border border-gray-300 rounded-lg px-3 py-1 text-sm">
130
+ <option>All Status</option>
131
+ <option>Confirmed</option>
132
+ <option>Pending</option>
133
+ <option>Cancelled</option>
134
+ </select>
135
+ </div>
136
+ </div>
137
+ <div class="overflow-x-auto">
138
+ <table class="min-w-full divide-y divide-gray-200">
139
+ <thead class="bg-gray-50">
140
+ <tr>
141
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Client</th>
142
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Service</th>
143
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Date & Time</th>
144
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Status</th>
145
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Actions</th>
146
+ </tr>
147
+ </thead>
148
+ <tbody class="bg-white divide-y divide-gray-200">
149
+ <tr class="hover:bg-gray-50">
150
+ <td class="px-6 py-4 whitespace-nowrap">
151
+ <div class="flex items-center">
152
+ <div class="flex-shrink-0 h-10 w-10 rounded-full bg-blue-100 flex items-center justify-center">
153
+ <i class="fas fa-user text-primary"></i>
154
+ </div>
155
+ <div class="ml-4">
156
+ <div class="text-sm font-medium text-gray-900">John Smith</div>
157
+ <div class="text-sm text-gray-500">+1 (555) 123-4567</div>
158
+ </div>
159
+ </div>
160
+ </td>
161
+ <td class="px-6 py-4 whitespace-nowrap">
162
+ <div class="text-sm text-gray-900">Personal Training</div>
163
+ </td>
164
+ <td class="px-6 py-4 whitespace-nowrap">
165
+ <div class="text-sm text-gray-900">Tomorrow, 3:00 PM</div>
166
+ </td>
167
+ <td class="px-6 py-4 whitespace-nowrap">
168
+ <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">Confirmed</span>
169
+ </td>
170
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
171
+ <button class="text-primary hover:text-blue-600 mr-3"><i class="fas fa-edit"></i></button>
172
+ <button class="text-red-500 hover:text-red-700"><i class="fas fa-trash-alt"></i></button>
173
+ </td>
174
+ </tr>
175
+ <!-- More appointment rows would go here -->
176
+ </tbody>
177
+ </table>
178
+ </div>
179
+ <div class="p-4 border-t border-gray-200 flex items-center justify-between">
180
+ <div class="text-sm text-gray-500">Showing <span class="font-medium">1</span> to <span class="font-medium">5</span> of <span class="font-medium">12</span> appointments</div>
181
+ <div class="flex space-x-2">
182
+ <button class="px-3 py-1 border border-gray-300 rounded-md text-sm font-medium text-gray-700 bg-white hover:bg-gray-50">Previous</button>
183
+ <button class="px-3 py-1 border border-gray-300 rounded-md text-sm font-medium text-gray-700 bg-white hover:bg-gray-50">Next</button>
184
+ </div>
185
+ </div>
186
+ </div>
187
+ </main>
188
+ </div>
189
+ </div>
190
+
191
+ <script>
192
+ function toggleSidebar() {
193
+ const sidebar = document.querySelector('.sidebar');
194
+ sidebar.classList.toggle('collapsed');
195
+ }
196
+ </script>
197
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=ARIST069/test-3" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
198
+ </html>
199
+
200
+ <!DOCTYPE html>
201
+ <html lang="en">
202
+ <head>
203
+ <meta charset="UTF-8">
204
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
205
+ <title>Gym Outsourcing - AI Receptionist Dashboard</title>
206
+ <script src="https://cdn.tailwindcss.com"></script>
207
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
208
+ <script>
209
+ tailwind.config = {
210
+ theme: {
211
+ extend: {
212
+ colors: {
213
+ primary: '#3b82f6',
214
+ secondary: '#10b981',
215
+ dark: '#1f2937',
216
+ light: '#f9fafb',
217
+ accent: '#f59e0b',
218
+ }
219
+ }
220
+ }
221
+ }
222
+ </script>
223
+ <style>
224
+ .sidebar {
225
+ transition: all 0.3s ease;
226
+ }
227
+ .sidebar.collapsed {
228
+ width: 70px;
229
+ }
230
+ .sidebar.collapsed .nav-text {
231
+ display: none;
232
+ }
233
+ .sidebar.collapsed .logo-text {
234
+ display: none;
235
+ }
236
+ .main-content {
237
+ transition: all 0.3s ease;
238
+ }
239
+ .sidebar.collapsed + .main-content {
240
+ margin-left: 70px;
241
+ }
242
+ .call-card:hover {
243
+ transform: translateY(-2px);
244
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
245
+ }
246
+ .waveform {
247
+ background: linear-gradient(90deg, #3b82f6 0%, #10b981 100%);
248
+ height: 40px;
249
+ position: relative;
250
+ overflow: hidden;
251
+ }
252
+ .waveform::before {
253
+ content: '';
254
+ position: absolute;
255
+ top: 0;
256
+ left: 0;
257
+ right: 0;
258
+ bottom: 0;
259
+ background: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 20 Q 25 10, 50 20 T 100 20 T 150 20 T 200 20' stroke='%23ffffff' fill='none' stroke-width='2' opacity='0.3'/%3E%3Cpath d='M0 25 Q 25 15, 50 25 T 100 25 T 150 25 T 200 25' stroke='%23ffffff' fill='none' stroke-width='2' opacity='0.2'/%3E%3C/svg%3E");
260
+ background-size: 200px 40px;
261
+ animation: wave 1.5s linear infinite;
262
+ }
263
+ @keyframes wave {
264
+ 0% { background-position-x: 0; }
265
+ 100% { background-position-x: 200px; }
266
+ }
267
+ .progress-ring__circle {
268
+ transition: stroke-dashoffset 0.35s;
269
+ transform: rotate(-90deg);
270
+ transform-origin: 50% 50%;
271
+ }
272
+ </style>
273
+ </head>
274
+ <body class="bg-gray-100 font-sans">
275
+ <div class="flex h-screen overflow-hidden">
276
+ <!-- Sidebar -->
277
+ <div class="sidebar bg-dark text-white w-64 flex flex-col">
278
+ <div class="p-4 flex items-center space-x-2 border-b border-gray-700 cursor-pointer" onclick="toggleSidebar()">
279
+ <div class="bg-primary p-2 rounded-lg">
280
+ <i class="fas fa-dumbbell text-white text-xl"></i>
281
+ </div>
282
+ <span class="logo-text text-xl font-bold">Gym Outsourcing</span>
283
+ </div>
284
+ <div class="p-4 border-b border-gray-700">
285
+ <div class="flex items-center space-x-3">
286
+ <div class="w-10 h-10 rounded-full bg-primary flex items-center justify-center">
287
+ <span class="text-white font-bold">GO</span>
288
+ </div>
289
+ <div class="nav-text">
290
+ <p class="font-medium">Admin Dashboard</p>
291
+ <p class="text-gray-400 text-sm">Super Admin</p>
292
+ </div>
293
+ </div>
294
+ </div>
295
+ <nav class="flex-1 overflow-y-auto">
296
+ <ul class="space-y-1 p-2">
297
+ <li>
298
+ <a href="dashboard.html" class="flex items-center space-x-3 p-3 rounded-lg bg-primary text-white">
299
+ <i class="fas fa-home"></i>
300
+ <span class="nav-text">Dashboard</span>
301
+ </a>
302
+ </li>
303
+ <li>
304
+ <a href="appointments.html" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-700 text-gray-300 hover:text-white">
305
+ <i class="fas fa-calendar-alt"></i>
306
+ <span class="nav-text">Appointments</span>
307
+ </a>
308
+ </li>
309
+ <li>
310
+ <a href="call-logs.html" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-700 text-gray-300 hover:text-white">
311
+ <i class="fas fa-phone"></i>
312
+ <span class="nav-text">Call Logs</span>
313
+ <span class="ml-auto bg-red-500 text-white text-xs px-2 py-1 rounded-full">12</span>
314
+ </a>
315
+ </li>
316
+ <li>
317
+ <a href="leads.html" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-700 text-gray-300 hover:text-white">
318
+ <i class="fas fa-users"></i>
319
+ <span class="nav-text">Leads</span>
320
+ </a>
321
+ </li>
322
+ <li>
323
+ <a href="analytics.html" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-700 text-gray-300 hover:text-white">
324
+ <i class="fas fa-chart-line"></i>
325
+ <span class="nav-text">Analytics</span>
326
+ </a>
327
+ </li>
328
+ <li>
329
+ <a href="settings.html" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-700 text-gray-300 hover:text-white">
330
+ <i class="fas fa-cog"></i>
331
+ <span class="nav-text">Settings</span>
332
+ </a>
333
+ </li>
334
+ </ul>
335
+ </nav>
336
+ <div class="p-4 border-t border-gray-700">
337
+ <button class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-700 text-gray-300 hover:text-white w-full">
338
+ <i class="fas fa-sign-out-alt"></i>
339
+ <span class="nav-text">Logout</span>
340
+ </button>
341
+ </div>
342
+ </div>
343
+
344
+ <!-- Main Content -->
345
+ <div class="main-content flex-1 overflow-y-auto ml-64">
346
+ <!-- Header -->
347
+ <header class="bg-white shadow-sm p-4 flex justify-between items-center">
348
+ <h1 class="text-2xl font-bold text-dark">AI Voice Receptionist Dashboard</h1>
349
+ <div class="flex items-center space-x-4">
350
+ <button onclick="document.getElementById('apiSettingsModal').classList.remove('hidden')"
351
+ class="flex items-center space-x-2 text-gray-600 hover:text-primary">
352
+ <i class="fas fa-plug"></i>
353
+ <span class="hidden md:inline">API Connections</span>
354
+ </button>
355
+ <div class="relative">
356
+ <i class="fas fa-bell text-gray-500 text-xl"></i>
357
+ <span class="absolute top-0 right-0 w-2 h-2 bg-red-500 rounded-full"></span>
358
+ </div>
359
+ <div class="flex items-center space-x-2">
360
+ <div class="w-8 h-8 rounded-full bg-primary flex items-center justify-center">
361
+ <span class="text-white text-sm">GO</span>
362
+ </div>
363
+ <span class="font-medium">Admin</span>
364
+ </div>
365
+ </div>
366
+ </header>
367
+
368
+ <!-- Dashboard Content -->
369
+ <main class="p-6">
370
+ <!-- Stats Cards -->
371
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-6">
372
+ <div class="bg-white rounded-lg shadow p-6">
373
+ <div class="flex items-center justify-between">
374
+ <div>
375
+ <p class="text-gray-500">Total Calls</p>
376
+ <h3 class="text-2xl font-bold">248</h3>
377
+ <p class="text-green-500 text-sm flex items-center">
378
+ <i class="fas fa-arrow-up mr-1"></i> 12% from last week
379
+ </p>
380
+ </div>
381
+ <div class="bg-blue-100 p-3 rounded-full">
382
+ <i class="fas fa-phone text-primary text-xl"></i>
383
+ </div>
384
+ </div>
385
+ </div>
386
+ <div class="bg-white rounded-lg shadow p-6">
387
+ <div class="flex items-center justify-between">
388
+ <div>
389
+ <p class="text-gray-500">Appointments Booked</p>
390
+ <h3 class="text-2xl font-bold">156</h3>
391
+ <p class="text-green-500 text-sm flex items-center">
392
+ <i class="fas fa-arrow-up mr-1"></i> 8% from last week
393
+ </p>
394
+ </div>
395
+ <div class="bg-green-100 p-3 rounded-full">
396
+ <i class="fas fa-calendar-check text-secondary text-xl"></i>
397
+ </div>
398
+ </div>
399
+ </div>
400
+ <div class="bg-white rounded-lg shadow p-6">
401
+ <div class="flex items-center justify-between">
402
+ <div>
403
+ <p class="text-gray-500">Call Pickup Rate</p>
404
+ <h3 class="text-2xl font-bold">63%</h3>
405
+ <p class="text-red-500 text-sm flex items-center">
406
+ <i class="fas fa-arrow-down mr-1"></i> 3% from last week
407
+ </p>
408
+ </div>
409
+ <div class="bg-yellow-100 p-3 rounded-full">
410
+ <i class="fas fa-percentage text-accent text-xl"></i>
411
+ </div>
412
+ </div>
413
+ </div>
414
+ <div class="bg-white rounded-lg shadow p-6">
415
+ <div class="flex items-center justify-between">
416
+ <div>
417
+ <p class="text-gray-500">Avg. Call Duration</p>
418
+ <h3 class="text-2xl font-bold">2:45</h3>
419
+ <p class="text-green-500 text-sm flex items-center">
420
+ <i class="fas fa-arrow-up mr-1"></i> 15% from last week
421
+ </p>
422
+ </div>
423
+ <div class="bg-purple-100 p-3 rounded-full">
424
+ <i class="fas fa-clock text-purple-500 text-xl"></i>
425
+ </div>
426
+ </div>
427
+ </div>
428
+ </div>
429
+
430
+ <!-- Recent Calls and Appointments -->
431
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-6 mb-6">
432
+ <!-- Recent Calls -->
433
+ <div class="bg-white rounded-lg shadow overflow-hidden">
434
+ <div class="p-4 border-b border-gray-200 flex justify-between items-center">
435
+ <h2 class="text-lg font-semibold">Recent Calls</h2>
436
+ <button class="text-primary text-sm font-medium">View All</button>
437
+ </div>
438
+ <div class="divide-y divide-gray-200">
439
+ <!-- Call Item -->
440
+ <div class="p-4 hover:bg-gray-50 transition-colors duration-150 call-card">
441
+ <div class="flex items-start space-x-3">
442
+ <div class="flex-shrink-0">
443
+ <div class="w-10 h-10 rounded-full bg-green-100 flex items-center justify-center">
444
+ <i class="fas fa-phone text-green-500"></i>
445
+ </div>
446
+ </div>
447
+ <div class="flex-1 min-w-0">
448
+ <p class="text-sm font-medium text-gray-900 truncate">John Smith</p>
449
+ <p class="text-sm text-gray-500">+1 (555) 123-4567</p>
450
+ <div class="flex items-center mt-1 text-xs text-gray-500">
451
+ <span class="mr-3">Today, 10:30 AM</span>
452
+ <span class="flex items-center">
453
+ <i class="fas fa-clock mr-1"></i> 2:45
454
+ </span>
455
+ </div>
456
+ </div>
457
+ <div class="flex items-center">
458
+ <span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded-full">Completed</span>
459
+ </div>
460
+ </div>
461
+ <div class="mt-3 flex justify-between items-center">
462
+ <div class="text-xs">
463
+ <span class="text-gray-500">Appointment:</span>
464
+ <span class="font-medium ml-1">Booked for Tomorrow, 3 PM</span>
465
+ </div>
466
+ <button class="text-primary text-xs font-medium flex items-center">
467
+ <i class="fas fa-play mr-1"></i> Play Recording
468
+ </button>
469
+ </div>
470
+ </div>
471
+ <!-- Call Item -->
472
+ <div class="p-4 hover:bg-gray-50 transition-colors duration-150 call-card">
473
+ <div class="flex items-start space-x-3">
474
+ <div class="flex-shrink-0">
475
+ <div class="w-10 h-10 rounded-full bg-red-100 flex items-center justify-center">
476
+ <i class="fas fa-phone-slash text-red-500"></i>
477
+ </div>
478
+ </div>
479
+ <div class="flex-1 min-w-0">
480
+ <p class="text-sm font-medium text-gray-900 truncate">Sarah Johnson</p>
481
+ <p class="text-sm text-gray-500">+1 (555) 987-6543</p>
482
+ <div class="flex items-center mt-1 text-xs text-gray-500">
483
+ <span class="mr-3">Today, 9:15 AM</span>
484
+ <span class="flex items-center">
485
+ <i class="fas fa-clock mr-1"></i> 0:12
486
+ </span>
487
+ </div>
488
+ </div>
489
+ <div class="flex items-center">
490
+ <span class="bg-red-100 text-red-800 text-xs px-2 py-1 rounded-full">Missed</span>
491
+ </div>
492
+ </div>
493
+ <div class="mt-3 flex justify-between items-center">
494
+ <div class="text-xs">
495
+ <span class="text-gray-500">Appointment:</span>
496
+ <span class="font-medium ml-1">Not booked</span>
497
+ </div>
498
+ <button class="text-primary text-xs font-medium flex items-center">
499
+ <i class="fas fa-play mr-1"></i> Play Voicemail
500
+ </button>
501
+ </div>
502
+ </div>
503
+ <!-- Call Item -->
504
+ <div class="p-4 hover:bg-gray-50 transition-colors duration-150 call-card">
505
+ <div class="flex items-start space-x-3">
506
+ <div class="flex-shrink-0">
507
+ <div class="w-10 h-10 rounded-full bg-green-100 flex items-center justify-center">
508
+ <i class="fas fa-phone text-green-500"></i>
509
+ </div>
510
+ </div>
511
+ <div class="flex-1 min-w-0">
512
+ <p class="text-sm font-medium text-gray-900 truncate">Michael Brown</p>
513
+ <p class="text-sm text-gray-500">+1 (555) 456-7890</p>
514
+ <div class="flex items-center mt-1 text-xs text-gray-500">
515
+ <span class="mr-3">Yesterday, 4:45 PM</span>
516
+ <span class="flex items-center">
517
+ <i class="fas fa-clock mr-1"></i> 4:22
518
+ </span>
519
+ </div>
520
+ </div>
521
+ <div class="flex items-center">
522
+ <span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded-full">Completed</span>
523
+ </div>
524
+ </div>
525
+ <div class="mt-3 flex justify-between items-center">
526
+ <div class="text-xs">
527
+ <span class="text-gray-500">Appointment:</span>
528
+ <span class="font-medium ml-1">Booked for Friday, 10 AM</span>
529
+ </div>
530
+ <button class="text-primary text-xs font-medium flex items-center">
531
+ <i class="fas fa-play mr-1"></i> Play Recording
532
+ </button>
533
+ </div>
534
+ </div>
535
+ </div>
536
+ </div>
537
+
538
+ <!-- Upcoming Appointments -->
539
+ <div class="bg-white rounded-lg shadow overflow-hidden">
540
+ <div class="p-4 border-b border-gray-200 flex justify-between items-center">
541
+ <h2 class="text-lg font-semibold">Upcoming Appointments</h2>
542
+ <button class="text-primary text-sm font-medium">View All</button>
543
+ </div>
544
+ <div class="divide-y divide-gray-200">
545
+ <!-- Appointment Item -->
546
+ <div class="p-4 hover:bg-gray-50 transition-colors duration-150">
547
+ <div class="flex items-start space-x-3">
548
+ <div class="flex-shrink-0">
549
+ <div class="w-10 h-10 rounded-full bg-blue-100 flex items-center justify-center">
550
+ <i class="fas fa-user text-primary"></i>
551
+ </div>
552
+ </div>
553
+ <div class="flex-1 min-w-0">
554
+ <p class="text-sm font-medium text-gray-900 truncate">John Smith</p>
555
+ <p class="text-sm text-gray-500">New member consultation</p>
556
+ <div class="flex items-center mt-1 text-xs text-gray-500">
557
+ <span class="mr-3">Tomorrow, 3:00 PM</span>
558
+ <span class="flex items-center">
559
+ <i class="fas fa-phone mr-1"></i> Called today, 10:30 AM
560
+ </span>
561
+ </div>
562
+ </div>
563
+ <div class="flex items-center">
564
+ <button class="text-xs bg-primary text-white px-3 py-1 rounded-full hover:bg-blue-600 transition-colors">
565
+ Confirm
566
+ </button>
567
+ </div>
568
+ </div>
569
+ </div>
570
+ <!-- Appointment Item -->
571
+ <div class="p-4 hover:bg-gray-50 transition-colors duration-150">
572
+ <div class="flex items-start space-x-3">
573
+ <div class="flex-shrink-0">
574
+ <div class="w-10 h-10 rounded-full bg-blue-100 flex items-center justify-center">
575
+ <i class="fas fa-user text-primary"></i>
576
+ </div>
577
+ </div>
578
+ <div class="flex-1 min-w-0">
579
+ <p class="text-sm font-medium text-gray-900 truncate">Michael Brown</p>
580
+ <p class="text-sm text-gray-500">Personal training session</p>
581
+ <div class="flex items-center mt-1 text-xs text-gray-500">
582
+ <span class="mr-3">Friday, 10:00 AM</span>
583
+ <span class="flex items-center">
584
+ <i class="fas fa-phone mr-1"></i> Called yesterday, 4:45 PM
585
+ </span>
586
+ </div>
587
+ </div>
588
+ <div class="flex items-center">
589
+ <button class="text-xs bg-green-100 text-green-800 px-3 py-1 rounded-full">
590
+ Confirmed
591
+ </button>
592
+ </div>
593
+ </div>
594
+ </div>
595
+ <!-- Appointment Item -->
596
+ <div class="p-4 hover:bg-gray-50 transition-colors duration-150">
597
+ <div class="flex items-start space-x-3">
598
+ <div class="flex-shrink-0">
599
+ <div class="w-10 h-10 rounded-full bg-blue-100 flex items-center justify-center">
600
+ <i class="fas fa-user text-primary"></i>
601
+ </div>
602
+ </div>
603
+ <div class="flex-1 min-w-0">
604
+ <p class="text-sm font-medium text-gray-900 truncate">Emily Wilson</p>
605
+ <p class="text-sm text-gray-500">Nutrition consultation</p>
606
+ <div class="flex items-center mt-1 text-xs text-gray-500">
607
+ <span class="mr-3">Saturday, 11:30 AM</span>
608
+ <span class="flex items-center">
609
+ <i class="fas fa-phone mr-1"></i> Called yesterday, 2:15 PM
610
+ </span>
611
+ </div>
612
+ </div>
613
+ <div class="flex items-center">
614
+ <button class="text-xs bg-primary text-white px-3 py-1 rounded-full hover:bg-blue-600 transition-colors">
615
+ Confirm
616
+ </button>
617
+ </div>
618
+ </div>
619
+ </div>
620
+ </div>
621
+ </div>
622
+ </div>
623
+
624
+ <!-- Call Analytics and Transcript -->
625
+ <div class="grid grid-cols-1 lg:grid-cols-3 gap-6 mb-6">
626
+ <!-- Call Analytics -->
627
+ <div class="bg-white rounded-lg shadow p-6 lg:col-span-2">
628
+ <div class="flex justify-between items-center mb-4">
629
+ <h2 class="text-lg font-semibold">Call Analytics</h2>
630
+ <div class="flex space-x-2">
631
+ <button class="text-xs bg-primary text-white px-3 py-1 rounded-full">Today</button>
632
+ <button class="text-xs bg-gray-100 text-gray-700 px-3 py-1 rounded-full">Week</button>
633
+ <button class="text-xs bg-gray-100 text-gray-700 px-3 py-1 rounded-full">Month</button>
634
+ </div>
635
+ </div>
636
+ <div class="h-64">
637
+ <!-- Chart Placeholder -->
638
+ <div class="w-full h-full bg-gray-100 rounded-lg flex items-center justify-center">
639
+ <div class="text-center">
640
+ <i class="fas fa-chart-bar text-3xl text-gray-400 mb-2"></i>
641
+ <p class="text-gray-500">Call analytics chart</p>
642
+ </div>
643
+ </div>
644
+ </div>
645
+ </div>
646
+
647
+ <!-- Call Transcript -->
648
+ <div class="bg-white rounded-lg shadow overflow-hidden">
649
+ <div class="p-4 border-b border-gray-200">
650
+ <h2 class="text-lg font-semibold">Latest Call Transcript</h2>
651
+ </div>
652
+ <div class="p-4">
653
+ <div class="mb-4">
654
+ <div class="flex justify-between items-center mb-2">
655
+ <div class="flex items-center">
656
+ <div class="w-8 h-8 rounded-full bg-primary flex items-center justify-center">
657
+ <i class="fas fa-robot text-white text-sm"></i>
658
+ </div>
659
+ <span class="ml-2 font-medium">AI Assistant</span>
660
+ </div>
661
+ <span class="text-xs text-gray-500">10:30 AM</span>
662
+ </div>
663
+ <div class="ml-10 bg-blue-50 p-3 rounded-lg">
664
+ <p class="text-sm">Hello, this is Gym Outsourcing calling to schedule your free consultation. Are you available to talk right now?</p>
665
+ </div>
666
+ </div>
667
+ <div class="mb-4">
668
+ <div class="flex justify-between items-center mb-2">
669
+ <div class="flex items-center">
670
+ <div class="w-8 h-8 rounded-full bg-green-500 flex items-center justify-center">
671
+ <i class="fas fa-user text-white text-sm"></i>
672
+ </div>
673
+ <span class="ml-2 font-medium">John Smith</span>
674
+ </div>
675
+ <span class="text-xs text-gray-500">10:31 AM</span>
676
+ </div>
677
+ <div class="ml-10 bg-green-50 p-3 rounded-lg">
678
+ <p class="text-sm">Yes, I can talk now. I filled out your website form earlier.</p>
679
+ </div>
680
+ </div>
681
+ <div>
682
+ <div class="flex justify-between items-center mb-2">
683
+ <div class="flex items-center">
684
+ <div class="w-8 h-8 rounded-full bg-primary flex items-center justify-center">
685
+ <i class="fas fa-robot text-white text-sm"></i>
686
+ </div>
687
+ <span class="ml-2 font-medium">AI Assistant</span>
688
+ </div>
689
+ <span class="text-xs text-gray-500">10:32 AM</span>
690
+ </div>
691
+ <div class="ml-10 bg-blue-50 p-3 rounded-lg">
692
+ <p class="text-sm">Great! We have openings tomorrow at 3 PM or Friday at 10 AM. Which works better for you?</p>
693
+ </div>
694
+ </div>
695
+ <div class="mt-4 text-center">
696
+ <button class="text-primary text-sm font-medium flex items-center justify-center w-full">
697
+ <i class="fas fa-arrow-down mr-2"></i> Load More
698
+ </button>
699
+ </div>
700
+ </div>
701
+ </div>
702
+ </div>
703
+
704
+ <!-- Call Recording Player -->
705
+ <div class="bg-white rounded-lg shadow overflow-hidden mb-6">
706
+ <div class="p-4 border-b border-gray-200">
707
+ <h2 class="text-lg font-semibold">Call Recording</h2>
708
+ </div>
709
+ <div class="p-6">
710
+ <div class="waveform rounded-lg mb-4"></div>
711
+ <div class="flex items-center justify-between">
712
+ <span class="text-sm text-gray-500">0:00</span>
713
+ <div class="flex items-center space-x-4">
714
+ <button class="text-gray-700 hover:text-primary">
715
+ <i class="fas fa-backward"></i>
716
+ </button>
717
+ <button class="w-10 h-10 rounded-full bg-primary text-white flex items-center justify-center hover:bg-blue-600">
718
+ <i class="fas fa-play"></i>
719
+ </button>
720
+ <button class="text-gray-700 hover:text-primary">
721
+ <i class="fas fa-forward"></i>
722
+ </button>
723
+ </div>
724
+ <span class="text-sm text-gray-500">2:45</span>
725
+ </div>
726
+ <div class="mt-4 flex items-center justify-between">
727
+ <button class="text-sm text-gray-700 hover:text-primary flex items-center">
728
+ <i class="fas fa-download mr-2"></i> Download
729
+ </button>
730
+ <div class="flex items-center space-x-2">
731
+ <button class="text-sm text-gray-700 hover:text-primary flex items-center">
732
+ <i class="fas fa-share-alt mr-2"></i> Share
733
+ </button>
734
+ <button class="text-sm text-gray-700 hover:text-primary flex items-center">
735
+ <i class="fas fa-trash-alt mr-2"></i> Delete
736
+ </button>
737
+ </div>
738
+ </div>
739
+ </div>
740
+ </div>
741
+ </main>
742
+ </div>
743
+ </div>
744
+
745
+ <script>
746
+ // Toggle sidebar function
747
+ function toggleSidebar() {
748
+ const sidebar = document.querySelector('.sidebar');
749
+ sidebar.classList.toggle('collapsed');
750
+ }
751
+
752
+ // Save API keys function
753
+ function saveApiKeys() {
754
+ const vapiKey = document.getElementById('vapiKey').value;
755
+ const airtableKey = document.getElementById('airtableKey').value;
756
+ const googleKey = document.getElementById('googleKey').value;
757
+
758
+ // Here you would typically send these to your backend
759
+ localStorage.setItem('vapiKey', vapiKey);
760
+ localStorage.setItem('airtableKey', airtableKey);
761
+ localStorage.setItem('googleKey', googleKey);
762
+
763
+ alert('API keys saved successfully!');
764
+ document.getElementById('apiSettingsModal').classList.add('hidden');
765
+ }
766
+
767
+ // Sample data for the dashboard
768
+ document.addEventListener('DOMContentLoaded', function() {
769
+ // Load saved API keys if they exist
770
+ if (localStorage.getItem('vapiKey')) {
771
+ document.getElementById('vapiKey').value = localStorage.getItem('vapiKey');
772
+ }
773
+ if (localStorage.getItem('airtableKey')) {
774
+ document.getElementById('airtableKey').value = localStorage.getItem('airtableKey');
775
+ }
776
+ if (localStorage.getItem('googleKey')) {
777
+ document.getElementById('googleKey').value = localStorage.getItem('googleKey');
778
+ }
779
+ // Toggle sidebar
780
+ const toggleSidebar = document.createElement('button');
781
+ toggleSidebar.innerHTML = '<i class="fas fa-bars"></i>';
782
+ toggleSidebar.className = 'fixed top-4 left-4 z-50 bg-white p-2 rounded-full shadow-md text-gray-700 hover:text-primary md:hidden';
783
+ document.body.appendChild(toggleSidebar);
784
+
785
+ const sidebar = document.querySelector('.sidebar');
786
+ const mainContent = document.querySelector('.main-content');
787
+
788
+ toggleSidebar.addEventListener('click', function() {
789
+ sidebar.classList.toggle('collapsed');
790
+ });
791
+
792
+ // Simulate loading data
793
+ setTimeout(() => {
794
+ // This would be replaced with actual API calls to Vapi and Airtable
795
+ console.log('Loading data from Vapi and Airtable...');
796
+ }, 1000);
797
+
798
+ // Sample function to play call recording
799
+ const playButtons = document.querySelectorAll('[class*="fa-play"]');
800
+ playButtons.forEach(button => {
801
+ button.addEventListener('click', function(e) {
802
+ e.stopPropagation();
803
+ alert('Playing call recording...');
804
+ });
805
+ });
806
+
807
+ // Sample function to confirm appointments
808
+ const confirmButtons = document.querySelectorAll('button:contains("Confirm")');
809
+ confirmButtons.forEach(button => {
810
+ button.addEventListener('click', function() {
811
+ this.textContent = 'Confirmed';
812
+ this.classList.remove('bg-primary', 'hover:bg-blue-600');
813
+ this.classList.add('bg-green-100', 'text-green-800');
814
+ });
815
+ });
816
+ });
817
+ </script>
818
+ </body>
819
  </html>