naresh10 commited on
Commit
11a4805
·
verified ·
1 Parent(s): 3d08099

Add 3 files

Browse files
Files changed (3) hide show
  1. README.md +7 -5
  2. index.html +403 -19
  3. prompts.txt +0 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Myexperiments
3
- emoji: 🏢
4
- colorFrom: indigo
5
- colorTo: yellow
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: myexperiments
3
+ emoji: 🐳
4
+ colorFrom: green
5
+ colorTo: blue
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,403 @@
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
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Meeting Minutes Transcriber</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <style>
10
+ @keyframes pulse {
11
+ 0%, 100% { opacity: 1; }
12
+ 50% { opacity: 0.5; }
13
+ }
14
+ .pulse-animation {
15
+ animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
16
+ }
17
+ .waveform {
18
+ display: flex;
19
+ align-items: center;
20
+ height: 40px;
21
+ width: 100%;
22
+ }
23
+ .waveform-bar {
24
+ background-color: #4f46e5;
25
+ margin: 0 1px;
26
+ width: 3px;
27
+ transition: height 0.2s ease;
28
+ }
29
+ .transcript-container {
30
+ max-height: 300px;
31
+ overflow-y: auto;
32
+ scrollbar-width: thin;
33
+ }
34
+ .transcript-container::-webkit-scrollbar {
35
+ width: 5px;
36
+ }
37
+ .transcript-container::-webkit-scrollbar-thumb {
38
+ background-color: #c7d2fe;
39
+ border-radius: 10px;
40
+ }
41
+ </style>
42
+ </head>
43
+ <body class="bg-gray-100 font-sans">
44
+ <div class="max-w-md mx-auto bg-white rounded-xl shadow-md overflow-hidden md:max-w-2xl min-h-screen">
45
+ <!-- App Header -->
46
+ <header class="bg-indigo-600 text-white p-4">
47
+ <div class="flex items-center justify-between">
48
+ <div class="flex items-center space-x-2">
49
+ <i class="fas fa-microphone text-xl"></i>
50
+ <h1 class="text-xl font-bold">MeetNotes</h1>
51
+ </div>
52
+ <div class="flex space-x-3">
53
+ <button class="p-1 rounded-full hover:bg-indigo-500">
54
+ <i class="fas fa-cog"></i>
55
+ </button>
56
+ <button class="p-1 rounded-full hover:bg-indigo-500">
57
+ <i class="fas fa-question-circle"></i>
58
+ </button>
59
+ </div>
60
+ </div>
61
+ </header>
62
+
63
+ <!-- Main Content -->
64
+ <main class="p-4">
65
+ <!-- Recording Section -->
66
+ <div class="bg-indigo-50 rounded-lg p-4 mb-6">
67
+ <div class="flex justify-between items-center mb-3">
68
+ <h2 class="text-lg font-semibold text-indigo-800">Meeting Recording</h2>
69
+ <span id="recording-time" class="text-sm font-medium text-indigo-600">00:00:00</span>
70
+ </div>
71
+
72
+ <div class="waveform mb-4" id="waveform">
73
+ <!-- Dynamic waveform bars will be inserted here by JS -->
74
+ </div>
75
+
76
+ <div class="flex justify-center space-x-6">
77
+ <button id="record-btn" class="bg-indigo-600 hover:bg-indigo-700 text-white rounded-full p-4 shadow-lg transition-all">
78
+ <i class="fas fa-microphone text-2xl"></i>
79
+ </button>
80
+ <button id="stop-btn" class="bg-red-600 hover:bg-red-700 text-white rounded-full p-4 shadow-lg transition-all opacity-50 cursor-not-allowed">
81
+ <i class="fas fa-stop text-2xl"></i>
82
+ </button>
83
+ <button id="pause-btn" class="bg-yellow-500 hover:bg-yellow-600 text-white rounded-full p-4 shadow-lg transition-all opacity-50 cursor-not-allowed">
84
+ <i class="fas fa-pause text-2xl"></i>
85
+ </button>
86
+ </div>
87
+
88
+ <div class="mt-4 text-center text-sm text-gray-600">
89
+ <p id="recording-status">Ready to record meeting</p>
90
+ </div>
91
+ </div>
92
+
93
+ <!-- Transcription Section -->
94
+ <div class="bg-white border border-gray-200 rounded-lg p-4 mb-6">
95
+ <div class="flex justify-between items-center mb-3">
96
+ <h2 class="text-lg font-semibold text-gray-800">Live Transcription</h2>
97
+ <button id="copy-transcript" class="text-indigo-600 hover:text-indigo-800 text-sm font-medium">
98
+ <i class="fas fa-copy mr-1"></i> Copy
99
+ </button>
100
+ </div>
101
+
102
+ <div class="transcript-container bg-gray-50 p-3 rounded-lg mb-3" id="transcript-container">
103
+ <p id="transcript-text" class="text-gray-700">Transcription will appear here as you speak...</p>
104
+ </div>
105
+
106
+ <div class="flex justify-between text-xs text-gray-500">
107
+ <span id="word-count">0 words</span>
108
+ <span id="speaker-count">1 speaker</span>
109
+ </div>
110
+ </div>
111
+
112
+ <!-- Minutes Generation Section -->
113
+ <div class="bg-white border border-gray-200 rounded-lg p-4">
114
+ <div class="flex justify-between items-center mb-3">
115
+ <h2 class="text-lg font-semibold text-gray-800">Meeting Minutes</h2>
116
+ <button id="generate-minutes" class="bg-indigo-600 hover:bg-indigo-700 text-white px-3 py-1 rounded text-sm font-medium">
117
+ <i class="fas fa-magic mr-1"></i> Generate
118
+ </button>
119
+ </div>
120
+
121
+ <div class="mb-3">
122
+ <label for="meeting-title" class="block text-sm font-medium text-gray-700 mb-1">Meeting Title</label>
123
+ <input type="text" id="meeting-title" class="w-full p-2 border border-gray-300 rounded-md focus:ring-indigo-500 focus:border-indigo-500" placeholder="Weekly Team Sync">
124
+ </div>
125
+
126
+ <div class="mb-3">
127
+ <label for="attendees" class="block text-sm font-medium text-gray-700 mb-1">Attendees</label>
128
+ <input type="text" id="attendees" class="w-full p-2 border border-gray-300 rounded-md focus:ring-indigo-500 focus:border-indigo-500" placeholder="John, Sarah, Mike">
129
+ </div>
130
+
131
+ <div class="bg-gray-50 p-3 rounded-lg min-h-40">
132
+ <div id="minutes-content" class="text-gray-700">
133
+ <p>Key discussion points, decisions, and action items will be summarized here...</p>
134
+ </div>
135
+ </div>
136
+
137
+ <div class="mt-3 flex justify-end space-x-2">
138
+ <button id="save-minutes" class="bg-green-600 hover:bg-green-700 text-white px-3 py-1 rounded text-sm font-medium">
139
+ <i class="fas fa-save mr-1"></i> Save
140
+ </button>
141
+ <button id="share-minutes" class="bg-blue-600 hover:bg-blue-700 text-white px-3 py-1 rounded text-sm font-medium">
142
+ <i class="fas fa-share-alt mr-1"></i> Share
143
+ </button>
144
+ </div>
145
+ </div>
146
+ </main>
147
+
148
+ <!-- Bottom Navigation -->
149
+ <nav class="bg-white border-t border-gray-200 p-2">
150
+ <div class="flex justify-around">
151
+ <button class="p-2 text-indigo-600 rounded-full">
152
+ <i class="fas fa-home text-xl"></i>
153
+ </button>
154
+ <button class="p-2 text-gray-500 hover:text-indigo-600 rounded-full">
155
+ <i class="fas fa-history text-xl"></i>
156
+ </button>
157
+ <button class="p-2 text-gray-500 hover:text-indigo-600 rounded-full">
158
+ <i class="fas fa-folder text-xl"></i>
159
+ </button>
160
+ <button class="p-2 text-gray-500 hover:text-indigo-600 rounded-full">
161
+ <i class="fas fa-user text-xl"></i>
162
+ </button>
163
+ </div>
164
+ </nav>
165
+ </div>
166
+
167
+ <script>
168
+ // DOM Elements
169
+ const recordBtn = document.getElementById('record-btn');
170
+ const stopBtn = document.getElementById('stop-btn');
171
+ const pauseBtn = document.getElementById('pause-btn');
172
+ const recordingStatus = document.getElementById('recording-status');
173
+ const recordingTime = document.getElementById('recording-time');
174
+ const transcriptText = document.getElementById('transcript-text');
175
+ const wordCount = document.getElementById('word-count');
176
+ const speakerCount = document.getElementById('speaker-count');
177
+ const copyTranscript = document.getElementById('copy-transcript');
178
+ const generateMinutes = document.getElementById('generate-minutes');
179
+ const minutesContent = document.getElementById('minutes-content');
180
+ const saveMinutes = document.getElementById('save-minutes');
181
+ const shareMinutes = document.getElementById('share-minutes');
182
+ const waveform = document.getElementById('waveform');
183
+
184
+ // App State
185
+ let isRecording = false;
186
+ let isPaused = false;
187
+ let recordingStartTime;
188
+ let timerInterval;
189
+ let transcript = '';
190
+ let speakers = 1;
191
+
192
+ // Create waveform bars
193
+ for (let i = 0; i < 50; i++) {
194
+ const bar = document.createElement('div');
195
+ bar.className = 'waveform-bar';
196
+ bar.style.height = `${Math.random() * 10 + 5}px`;
197
+ waveform.appendChild(bar);
198
+ }
199
+
200
+ // Update waveform animation
201
+ function updateWaveform() {
202
+ const bars = document.querySelectorAll('.waveform-bar');
203
+ bars.forEach(bar => {
204
+ bar.style.height = `${Math.random() * 20 + 5}px`;
205
+ });
206
+
207
+ if (isRecording && !isPaused) {
208
+ requestAnimationFrame(updateWaveform);
209
+ }
210
+ }
211
+
212
+ // Update recording timer
213
+ function updateTimer() {
214
+ const now = new Date();
215
+ const elapsed = new Date(now - recordingStartTime);
216
+ const hours = elapsed.getUTCHours().toString().padStart(2, '0');
217
+ const minutes = elapsed.getUTCMinutes().toString().padStart(2, '0');
218
+ const seconds = elapsed.getUTCSeconds().toString().padStart(2, '0');
219
+ recordingTime.textContent = `${hours}:${minutes}:${seconds}`;
220
+ }
221
+
222
+ // Start recording
223
+ recordBtn.addEventListener('click', () => {
224
+ if (!isRecording) {
225
+ // Start recording
226
+ isRecording = true;
227
+ recordingStartTime = new Date();
228
+ recordBtn.innerHTML = '<i class="fas fa-microphone text-2xl pulse-animation"></i>';
229
+ recordBtn.classList.add('ring-4', 'ring-indigo-300');
230
+ stopBtn.classList.remove('opacity-50', 'cursor-not-allowed');
231
+ pauseBtn.classList.remove('opacity-50', 'cursor-not-allowed');
232
+ recordingStatus.textContent = 'Recording in progress...';
233
+ recordingStatus.classList.add('text-indigo-600');
234
+
235
+ // Start timer
236
+ timerInterval = setInterval(updateTimer, 1000);
237
+
238
+ // Start waveform animation
239
+ updateWaveform();
240
+
241
+ // Simulate transcription (in a real app, this would come from a speech-to-text API)
242
+ simulateTranscription();
243
+ }
244
+ });
245
+
246
+ // Stop recording
247
+ stopBtn.addEventListener('click', () => {
248
+ if (isRecording) {
249
+ // Stop recording
250
+ isRecording = false;
251
+ clearInterval(timerInterval);
252
+ recordBtn.innerHTML = '<i class="fas fa-microphone text-2xl"></i>';
253
+ recordBtn.classList.remove('ring-4', 'ring-indigo-300', 'pulse-animation');
254
+ stopBtn.classList.add('opacity-50', 'cursor-not-allowed');
255
+ pauseBtn.classList.add('opacity-50', 'cursor-not-allowed');
256
+ recordingStatus.textContent = 'Recording saved';
257
+ recordingStatus.classList.remove('text-indigo-600');
258
+ recordingStatus.classList.add('text-green-600');
259
+
260
+ // Reset waveform
261
+ const bars = document.querySelectorAll('.waveform-bar');
262
+ bars.forEach(bar => {
263
+ bar.style.height = '5px';
264
+ });
265
+ }
266
+ });
267
+
268
+ // Pause/resume recording
269
+ pauseBtn.addEventListener('click', () => {
270
+ if (isRecording) {
271
+ if (isPaused) {
272
+ // Resume recording
273
+ isPaused = false;
274
+ pauseBtn.innerHTML = '<i class="fas fa-pause text-2xl"></i>';
275
+ pauseBtn.classList.remove('bg-gray-500');
276
+ pauseBtn.classList.add('bg-yellow-500');
277
+ recordingStatus.textContent = 'Recording in progress...';
278
+ recordingStatus.classList.add('text-indigo-600');
279
+ recordingStartTime = new Date(new Date() - (new Date() - recordingStartTime));
280
+ timerInterval = setInterval(updateTimer, 1000);
281
+ updateWaveform();
282
+ } else {
283
+ // Pause recording
284
+ isPaused = true;
285
+ clearInterval(timerInterval);
286
+ pauseBtn.innerHTML = '<i class="fas fa-play text-2xl"></i>';
287
+ pauseBtn.classList.remove('bg-yellow-500');
288
+ pauseBtn.classList.add('bg-gray-500');
289
+ recordingStatus.textContent = 'Recording paused';
290
+ recordingStatus.classList.remove('text-indigo-600');
291
+ recordingStatus.classList.add('text-gray-600');
292
+ }
293
+ }
294
+ });
295
+
296
+ // Simulate transcription (in a real app, this would use Web Speech API or a service like Google Speech-to-Text)
297
+ function simulateTranscription() {
298
+ if (!isRecording || isPaused) return;
299
+
300
+ // Sample meeting phrases
301
+ const phrases = [
302
+ "Let's start with the project updates.",
303
+ "The design phase is 80% complete.",
304
+ "We need to address the budget concerns.",
305
+ "The deadline has been moved to next Friday.",
306
+ "Action item: John will follow up with the client.",
307
+ "Sarah mentioned the API integration is delayed.",
308
+ "Decision: We'll proceed with option B.",
309
+ "Mike raised concerns about the timeline.",
310
+ "Next steps: Finalize the requirements document.",
311
+ "The team agreed on the new feature priorities."
312
+ ];
313
+
314
+ // Randomly select a phrase
315
+ const phrase = phrases[Math.floor(Math.random() * phrases.length)];
316
+
317
+ // Sometimes detect a new speaker (randomly)
318
+ if (Math.random() > 0.7) {
319
+ speakers++;
320
+ speakerCount.textContent = `${speakers} speakers`;
321
+ transcript += `\n\nSpeaker ${speakers}: ${phrase}`;
322
+ } else {
323
+ transcript += ` ${phrase}`;
324
+ }
325
+
326
+ // Update UI
327
+ transcriptText.textContent = transcript;
328
+ wordCount.textContent = `${transcript.split(/\s+/).length} words`;
329
+
330
+ // Continue simulating until recording stops
331
+ if (isRecording && !isPaused) {
332
+ setTimeout(simulateTranscription, Math.random() * 3000 + 1000);
333
+ }
334
+ }
335
+
336
+ // Copy transcript to clipboard
337
+ copyTranscript.addEventListener('click', () => {
338
+ navigator.clipboard.writeText(transcript).then(() => {
339
+ const originalText = copyTranscript.innerHTML;
340
+ copyTranscript.innerHTML = '<i class="fas fa-check mr-1"></i> Copied!';
341
+ setTimeout(() => {
342
+ copyTranscript.innerHTML = originalText;
343
+ }, 2000);
344
+ });
345
+ });
346
+
347
+ // Generate meeting minutes
348
+ generateMinutes.addEventListener('click', () => {
349
+ if (!transcript.trim()) {
350
+ minutesContent.innerHTML = '<p class="text-red-500">No transcription available to generate minutes.</p>';
351
+ return;
352
+ }
353
+
354
+ // Simulate AI processing
355
+ minutesContent.innerHTML = '<div class="flex items-center justify-center py-4"><i class="fas fa-spinner fa-spin text-indigo-600 text-2xl mr-2"></i><span>Generating minutes...</span></div>';
356
+
357
+ // Simulate API call delay
358
+ setTimeout(() => {
359
+ // This would be replaced with actual AI processing in a real app
360
+ const summary = `
361
+ <h3 class="font-bold text-lg mb-2">Meeting Summary</h3>
362
+ <ul class="list-disc pl-5 mb-4 space-y-1">
363
+ <li>Project updates were shared with the team</li>
364
+ <li>Design phase is nearing completion</li>
365
+ <li>Budget concerns need to be addressed</li>
366
+ <li>Deadline adjusted to next Friday</li>
367
+ </ul>
368
+
369
+ <h3 class="font-bold text-lg mb-2">Key Decisions</h3>
370
+ <ul class="list-disc pl-5 mb-4 space-y-1">
371
+ <li>Proceeding with option B for the new feature</li>
372
+ <li>Revised timeline approved by the team</li>
373
+ </ul>
374
+
375
+ <h3 class="font-bold text-lg mb-2">Action Items</h3>
376
+ <ol class="list-decimal pl-5 space-y-1">
377
+ <li><strong>John:</strong> Follow up with client about requirements</li>
378
+ <li><strong>Sarah:</strong> Resolve API integration issues</li>
379
+ <li><strong>Mike:</strong> Update project timeline document</li>
380
+ </ol>
381
+ `;
382
+
383
+ minutesContent.innerHTML = summary;
384
+ }, 2000);
385
+ });
386
+
387
+ // Save minutes
388
+ saveMinutes.addEventListener('click', () => {
389
+ const title = document.getElementById('meeting-title').value || 'Untitled Meeting';
390
+ const attendees = document.getElementById('attendees').value || 'Not specified';
391
+
392
+ // In a real app, this would save to a database or local storage
393
+ alert(`Minutes saved for "${title}" with attendees: ${attendees}`);
394
+ });
395
+
396
+ // Share minutes
397
+ shareMinutes.addEventListener('click', () => {
398
+ // In a real app, this would use the Web Share API or other sharing methods
399
+ alert('Sharing functionality would be implemented here');
400
+ });
401
+ </script>
402
+ <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=naresh10/myexperiments" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
403
+ </html>
prompts.txt ADDED
File without changes