Thabang576 commited on
Commit
cdcbef1
·
verified ·
1 Parent(s): 2bae97e

Add 3 files

Browse files
Files changed (3) hide show
  1. README.md +6 -4
  2. index.html +688 -19
  3. prompts.txt +0 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Buddy
3
- emoji: 👁
4
- colorFrom: red
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: buddy
3
+ emoji: 🐳
4
+ colorFrom: blue
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,688 @@
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>StudyBuddy - Exam Preparation App</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
+ @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');
11
+
12
+ body {
13
+ font-family: 'Poppins', sans-serif;
14
+ background-color: #f8fafc;
15
+ }
16
+
17
+ .gradient-bg {
18
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
19
+ }
20
+
21
+ .card-hover:hover {
22
+ transform: translateY(-5px);
23
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
24
+ }
25
+
26
+ .flashcard {
27
+ perspective: 1000px;
28
+ height: 300px;
29
+ }
30
+
31
+ .flashcard-inner {
32
+ position: relative;
33
+ width: 100%;
34
+ height: 100%;
35
+ transition: transform 0.6s;
36
+ transform-style: preserve-3d;
37
+ }
38
+
39
+ .flashcard.flipped .flashcard-inner {
40
+ transform: rotateY(180deg);
41
+ }
42
+
43
+ .flashcard-front, .flashcard-back {
44
+ position: absolute;
45
+ width: 100%;
46
+ height: 100%;
47
+ backface-visibility: hidden;
48
+ border-radius: 0.5rem;
49
+ padding: 1.5rem;
50
+ display: flex;
51
+ flex-direction: column;
52
+ justify-content: center;
53
+ align-items: center;
54
+ }
55
+
56
+ .flashcard-back {
57
+ transform: rotateY(180deg);
58
+ }
59
+
60
+ .progress-ring__circle {
61
+ transition: stroke-dashoffset 0.35s;
62
+ transform: rotate(-90deg);
63
+ transform-origin: 50% 50%;
64
+ }
65
+
66
+ .timer-display {
67
+ font-family: 'Courier New', monospace;
68
+ }
69
+
70
+ .sidebar {
71
+ transition: all 0.3s ease;
72
+ }
73
+
74
+ @media (max-width: 768px) {
75
+ .sidebar {
76
+ position: fixed;
77
+ left: -100%;
78
+ top: 0;
79
+ z-index: 50;
80
+ height: 100vh;
81
+ }
82
+
83
+ .sidebar.active {
84
+ left: 0;
85
+ }
86
+
87
+ .overlay {
88
+ position: fixed;
89
+ top: 0;
90
+ left: 0;
91
+ right: 0;
92
+ bottom: 0;
93
+ background-color: rgba(0, 0, 0, 0.5);
94
+ z-index: 40;
95
+ display: none;
96
+ }
97
+
98
+ .overlay.active {
99
+ display: block;
100
+ }
101
+ }
102
+ </style>
103
+ </head>
104
+ <body class="min-h-screen">
105
+ <!-- Mobile Menu Button -->
106
+ <button id="mobile-menu-button" class="md:hidden fixed top-4 left-4 z-50 bg-white p-2 rounded-full shadow-lg">
107
+ <i class="fas fa-bars text-indigo-600"></i>
108
+ </button>
109
+
110
+ <!-- Overlay for mobile menu -->
111
+ <div id="overlay" class="overlay"></div>
112
+
113
+ <!-- Sidebar -->
114
+ <div id="sidebar" class="sidebar w-64 bg-white shadow-lg fixed h-full">
115
+ <div class="p-4 flex items-center justify-between border-b">
116
+ <div class="flex items-center">
117
+ <i class="fas fa-graduation-cap text-indigo-600 text-2xl mr-2"></i>
118
+ <span class="text-xl font-bold text-indigo-600">StudyBuddy</span>
119
+ </div>
120
+ <button id="close-sidebar" class="md:hidden text-gray-500 hover:text-gray-700">
121
+ <i class="fas fa-times"></i>
122
+ </button>
123
+ </div>
124
+ <nav class="p-4">
125
+ <ul>
126
+ <li class="mb-2">
127
+ <a href="#" class="flex items-center p-2 rounded-lg bg-indigo-50 text-indigo-600">
128
+ <i class="fas fa-home mr-3"></i>
129
+ <span>Dashboard</span>
130
+ </a>
131
+ </li>
132
+ <li class="mb-2">
133
+ <a href="#flashcards" class="flex items-center p-2 rounded-lg hover:bg-indigo-50 hover:text-indigo-600 text-gray-700">
134
+ <i class="fas fa-layer-group mr-3"></i>
135
+ <span>Flashcards</span>
136
+ </a>
137
+ </li>
138
+ <li class="mb-2">
139
+ <a href="#pomodoro" class="flex items-center p-2 rounded-lg hover:bg-indigo-50 hover:text-indigo-600 text-gray-700">
140
+ <i class="fas fa-clock mr-3"></i>
141
+ <span>Study Timer</span>
142
+ </a>
143
+ </li>
144
+ <li class="mb-2">
145
+ <a href="#progress" class="flex items-center p-2 rounded-lg hover:bg-indigo-50 hover:text-indigo-600 text-gray-700">
146
+ <i class="fas fa-chart-line mr-3"></i>
147
+ <span>Progress</span>
148
+ </a>
149
+ </li>
150
+ <li class="mb-2">
151
+ <a href="#resources" class="flex items-center p-2 rounded-lg hover:bg-indigo-50 hover:text-indigo-600 text-gray-700">
152
+ <i class="fas fa-book mr-3"></i>
153
+ <span>Resources</span>
154
+ </a>
155
+ </li>
156
+ <li class="mb-2">
157
+ <a href="#settings" class="flex items-center p-2 rounded-lg hover:bg-indigo-50 hover:text-indigo-600 text-gray-700">
158
+ <i class="fas fa-cog mr-3"></i>
159
+ <span>Settings</span>
160
+ </a>
161
+ </li>
162
+ </ul>
163
+ </nav>
164
+ <div class="absolute bottom-0 w-full p-4 border-t">
165
+ <div class="flex items-center">
166
+ <div class="w-10 h-10 rounded-full bg-indigo-100 flex items-center justify-center mr-3">
167
+ <i class="fas fa-user text-indigo-600"></i>
168
+ </div>
169
+ <div>
170
+ <p class="font-medium">Student User</p>
171
+ <p class="text-xs text-gray-500">Premium Member</p>
172
+ </div>
173
+ </div>
174
+ </div>
175
+ </div>
176
+
177
+ <!-- Main Content -->
178
+ <div class="md:ml-64">
179
+ <!-- Header -->
180
+ <header class="gradient-bg text-white p-4 shadow-md">
181
+ <div class="container mx-auto flex justify-between items-center">
182
+ <h1 class="text-2xl font-bold">Exam Preparation Dashboard</h1>
183
+ <div class="flex items-center space-x-4">
184
+ <div class="relative">
185
+ <i class="fas fa-bell text-xl"></i>
186
+ <span class="absolute -top-1 -right-1 w-4 h-4 bg-red-500 rounded-full text-xs flex items-center justify-center">3</span>
187
+ </div>
188
+ <div class="w-8 h-8 rounded-full bg-white flex items-center justify-center">
189
+ <i class="fas fa-user text-indigo-600"></i>
190
+ </div>
191
+ </div>
192
+ </div>
193
+ </header>
194
+
195
+ <!-- Dashboard Content -->
196
+ <main class="container mx-auto p-4">
197
+ <!-- Welcome Banner -->
198
+ <div class="bg-white rounded-xl shadow-md p-6 mb-6 relative overflow-hidden">
199
+ <div class="absolute -right-10 -top-10 w-32 h-32 bg-indigo-100 rounded-full"></div>
200
+ <div class="relative z-10">
201
+ <h2 class="text-2xl font-bold text-gray-800 mb-2">Welcome back, Student!</h2>
202
+ <p class="text-gray-600 mb-4">Your next exam is in <span class="font-bold text-indigo-600">14 days</span>. Let's make the most of your study time.</p>
203
+ <div class="w-full bg-gray-200 rounded-full h-2.5">
204
+ <div class="bg-indigo-600 h-2.5 rounded-full" style="width: 45%"></div>
205
+ </div>
206
+ <p class="text-sm text-gray-500 mt-2">45% of your study plan completed</p>
207
+ </div>
208
+ </div>
209
+
210
+ <!-- Quick Stats -->
211
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-4 mb-6">
212
+ <div class="bg-white rounded-xl shadow-md p-6 flex items-center card-hover transition-all duration-300">
213
+ <div class="w-12 h-12 rounded-full bg-green-100 flex items-center justify-center mr-4">
214
+ <i class="fas fa-check text-green-600 text-xl"></i>
215
+ </div>
216
+ <div>
217
+ <p class="text-gray-500">Completed Topics</p>
218
+ <p class="text-2xl font-bold">18/32</p>
219
+ </div>
220
+ </div>
221
+ <div class="bg-white rounded-xl shadow-md p-6 flex items-center card-hover transition-all duration-300">
222
+ <div class="w-12 h-12 rounded-full bg-blue-100 flex items-center justify-center mr-4">
223
+ <i class="fas fa-clock text-blue-600 text-xl"></i>
224
+ </div>
225
+ <div>
226
+ <p class="text-gray-500">Study Hours</p>
227
+ <p class="text-2xl font-bold">24.5h</p>
228
+ </div>
229
+ </div>
230
+ <div class="bg-white rounded-xl shadow-md p-6 flex items-center card-hover transition-all duration-300">
231
+ <div class="w-12 h-12 rounded-full bg-purple-100 flex items-center justify-center mr-4">
232
+ <i class="fas fa-star text-purple-600 text-xl"></i>
233
+ </div>
234
+ <div>
235
+ <p class="text-gray-500">Performance</p>
236
+ <p class="text-2xl font-bold">82%</p>
237
+ </div>
238
+ </div>
239
+ </div>
240
+
241
+ <!-- Flashcards Section -->
242
+ <section id="flashcards" class="mb-8">
243
+ <div class="flex justify-between items-center mb-4">
244
+ <h2 class="text-xl font-bold text-gray-800">Flashcards</h2>
245
+ <button id="add-flashcard" class="bg-indigo-600 text-white px-4 py-2 rounded-lg hover:bg-indigo-700 transition">
246
+ <i class="fas fa-plus mr-2"></i> Add New
247
+ </button>
248
+ </div>
249
+
250
+ <div class="bg-white rounded-xl shadow-md p-6">
251
+ <div class="flex justify-between mb-4">
252
+ <div>
253
+ <h3 class="font-medium">Biology Flashcards</h3>
254
+ <p class="text-sm text-gray-500">Chapter 3: Cell Structure</p>
255
+ </div>
256
+ <div class="flex space-x-2">
257
+ <button class="p-2 rounded-full hover:bg-gray-100">
258
+ <i class="fas fa-chevron-left text-gray-500"></i>
259
+ </button>
260
+ <button class="p-2 rounded-full hover:bg-gray-100">
261
+ <i class="fas fa-chevron-right text-gray-500"></i>
262
+ </button>
263
+ </div>
264
+ </div>
265
+
266
+ <div class="flashcard bg-indigo-50 rounded-lg mb-4 cursor-pointer" onclick="this.classList.toggle('flipped')">
267
+ <div class="flashcard-inner">
268
+ <div class="flashcard-front flex flex-col items-center justify-center">
269
+ <p class="text-gray-500 mb-2">Question</p>
270
+ <h3 class="text-xl font-bold text-center">What is the powerhouse of the cell?</h3>
271
+ </div>
272
+ <div class="flashcard-back bg-white flex flex-col items-center justify-center">
273
+ <p class="text-gray-500 mb-2">Answer</p>
274
+ <h3 class="text-xl font-bold text-center">Mitochondria</h3>
275
+ <div class="mt-4 flex space-x-2">
276
+ <button class="px-3 py-1 bg-green-100 text-green-600 rounded-full text-sm">Easy</button>
277
+ <button class="px-3 py-1 bg-yellow-100 text-yellow-600 rounded-full text-sm">Medium</button>
278
+ <button class="px-3 py-1 bg-red-100 text-red-600 rounded-full text-sm">Hard</button>
279
+ </div>
280
+ </div>
281
+ </div>
282
+ </div>
283
+
284
+ <div class="flex justify-between items-center">
285
+ <div class="text-sm text-gray-500">Card 5/12</div>
286
+ <div class="flex space-x-2">
287
+ <button class="p-2 rounded-full bg-indigo-100 text-indigo-600">
288
+ <i class="fas fa-check"></i>
289
+ </button>
290
+ <button class="p-2 rounded-full bg-indigo-100 text-indigo-600">
291
+ <i class="fas fa-edit"></i>
292
+ </button>
293
+ <button class="p-2 rounded-full bg-indigo-100 text-indigo-600">
294
+ <i class="fas fa-trash"></i>
295
+ </button>
296
+ </div>
297
+ </div>
298
+ </div>
299
+ </section>
300
+
301
+ <!-- Study Timer Section -->
302
+ <section id="pomodoro" class="mb-8">
303
+ <h2 class="text-xl font-bold text-gray-800 mb-4">Study Timer</h2>
304
+
305
+ <div class="bg-white rounded-xl shadow-md p-6">
306
+ <div class="flex flex-col md:flex-row items-center">
307
+ <div class="md:w-1/2 mb-6 md:mb-0">
308
+ <div class="relative w-48 h-48 mx-auto">
309
+ <svg class="w-full h-full" viewBox="0 0 100 100">
310
+ <circle cx="50" cy="50" r="45" fill="none" stroke="#e6e6e6" stroke-width="8"/>
311
+ <circle id="progress-circle" cx="50" cy="50" r="45" fill="none" stroke="#667eea" stroke-width="8" stroke-dasharray="283" stroke-dashoffset="0" class="progress-ring__circle"/>
312
+ </svg>
313
+ <div class="absolute inset-0 flex items-center justify-center flex-col">
314
+ <div id="timer-display" class="timer-display text-3xl font-bold mb-1">25:00</div>
315
+ <div id="timer-status" class="text-gray-500">Ready to study</div>
316
+ </div>
317
+ </div>
318
+ </div>
319
+
320
+ <div class="md:w-1/2">
321
+ <div class="flex justify-center space-x-4 mb-6">
322
+ <button data-minutes="25" class="timer-option px-4 py-2 rounded-lg border border-indigo-200 text-indigo-600 hover:bg-indigo-50">Pomodoro</button>
323
+ <button data-minutes="10" class="timer-option px-4 py-2 rounded-lg border border-gray-200 text-gray-600 hover:bg-gray-50">Short Break</button>
324
+ <button data-minutes="30" class="timer-option px-4 py-2 rounded-lg border border-gray-200 text-gray-600 hover:bg-gray-50">Long Break</button>
325
+ </div>
326
+
327
+ <div class="flex justify-center space-x-4">
328
+ <button id="start-timer" class="bg-indigo-600 text-white px-6 py-2 rounded-lg hover:bg-indigo-700 transition">
329
+ <i class="fas fa-play mr-2"></i> Start
330
+ </button>
331
+ <button id="pause-timer" class="bg-white text-indigo-600 px-6 py-2 rounded-lg border border-indigo-200 hover:bg-indigo-50 transition hidden">
332
+ <i class="fas fa-pause mr-2"></i> Pause
333
+ </button>
334
+ <button id="reset-timer" class="bg-white text-gray-600 px-6 py-2 rounded-lg border border-gray-200 hover:bg-gray-50 transition">
335
+ <i class="fas fa-redo mr-2"></i> Reset
336
+ </button>
337
+ </div>
338
+
339
+ <div class="mt-6">
340
+ <h4 class="font-medium mb-2">Today's Sessions</h4>
341
+ <div class="flex space-x-2">
342
+ <div class="w-8 h-8 rounded-full bg-indigo-100 flex items-center justify-center text-indigo-600">1</div>
343
+ <div class="w-8 h-8 rounded-full bg-indigo-100 flex items-center justify-center text-indigo-600">2</div>
344
+ <div class="w-8 h-8 rounded-full bg-indigo-100 flex items-center justify-center text-indigo-600">3</div>
345
+ <div class="w-8 h-8 rounded-full bg-gray-100 flex items-center justify-center text-gray-400">4</div>
346
+ </div>
347
+ </div>
348
+ </div>
349
+ </div>
350
+ </div>
351
+ </section>
352
+
353
+ <!-- Progress Tracking -->
354
+ <section id="progress" class="mb-8">
355
+ <h2 class="text-xl font-bold text-gray-800 mb-4">Your Progress</h2>
356
+
357
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
358
+ <div class="bg-white rounded-xl shadow-md p-6">
359
+ <div class="flex justify-between items-center mb-4">
360
+ <h3 class="font-medium">Study Hours</h3>
361
+ <select class="border border-gray-200 rounded-lg px-3 py-1 text-sm">
362
+ <option>This Week</option>
363
+ <option>Last Week</option>
364
+ <option>This Month</option>
365
+ </select>
366
+ </div>
367
+ <div class="h-64">
368
+ <canvas id="study-hours-chart"></canvas>
369
+ </div>
370
+ </div>
371
+
372
+ <div class="bg-white rounded-xl shadow-md p-6">
373
+ <div class="flex justify-between items-center mb-4">
374
+ <h3 class="font-medium">Topic Mastery</h3>
375
+ <select class="border border-gray-200 rounded-lg px-3 py-1 text-sm">
376
+ <option>All Subjects</option>
377
+ <option>Biology</option>
378
+ <option>Chemistry</option>
379
+ <option>Physics</option>
380
+ </select>
381
+ </div>
382
+ <div class="h-64">
383
+ <canvas id="mastery-chart"></canvas>
384
+ </div>
385
+ </div>
386
+ </div>
387
+ </section>
388
+
389
+ <!-- Resources Section -->
390
+ <section id="resources" class="mb-8">
391
+ <h2 class="text-xl font-bold text-gray-800 mb-4">Study Resources</h2>
392
+
393
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
394
+ <div class="bg-white rounded-xl shadow-md overflow-hidden card-hover transition-all duration-300">
395
+ <div class="h-40 bg-indigo-100 flex items-center justify-center">
396
+ <i class="fas fa-book-open text-indigo-600 text-5xl"></i>
397
+ </div>
398
+ <div class="p-4">
399
+ <h3 class="font-bold mb-2">Biology Textbook</h3>
400
+ <p class="text-sm text-gray-500 mb-3">Chapter summaries and key concepts</p>
401
+ <button class="w-full bg-indigo-600 text-white py-2 rounded-lg hover:bg-indigo-700 transition">
402
+ Open Resource
403
+ </button>
404
+ </div>
405
+ </div>
406
+
407
+ <div class="bg-white rounded-xl shadow-md overflow-hidden card-hover transition-all duration-300">
408
+ <div class="h-40 bg-blue-100 flex items-center justify-center">
409
+ <i class="fas fa-video text-blue-600 text-5xl"></i>
410
+ </div>
411
+ <div class="p-4">
412
+ <h3 class="font-bold mb-2">Video Lectures</h3>
413
+ <p class="text-sm text-gray-500 mb-3">Comprehensive topic explanations</p>
414
+ <button class="w-full bg-blue-600 text-white py-2 rounded-lg hover:bg-blue-700 transition">
415
+ Watch Videos
416
+ </button>
417
+ </div>
418
+ </div>
419
+
420
+ <div class="bg-white rounded-xl shadow-md overflow-hidden card-hover transition-all duration-300">
421
+ <div class="h-40 bg-purple-100 flex items-center justify-center">
422
+ <i class="fas fa-file-alt text-purple-600 text-5xl"></i>
423
+ </div>
424
+ <div class="p-4">
425
+ <h3 class="font-bold mb-2">Past Papers</h3>
426
+ <p class="text-sm text-gray-500 mb-3">Practice with real exam questions</p>
427
+ <button class="w-full bg-purple-600 text-white py-2 rounded-lg hover:bg-purple-700 transition">
428
+ Download
429
+ </button>
430
+ </div>
431
+ </div>
432
+ </div>
433
+ </section>
434
+ </main>
435
+ </div>
436
+
437
+ <!-- Add Flashcard Modal -->
438
+ <div id="flashcard-modal" class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 hidden">
439
+ <div class="bg-white rounded-xl p-6 w-full max-w-md">
440
+ <div class="flex justify-between items-center mb-4">
441
+ <h3 class="text-lg font-bold">Add New Flashcard</h3>
442
+ <button id="close-modal" class="text-gray-500 hover:text-gray-700">
443
+ <i class="fas fa-times"></i>
444
+ </button>
445
+ </div>
446
+ <form id="flashcard-form">
447
+ <div class="mb-4">
448
+ <label class="block text-gray-700 mb-2">Subject</label>
449
+ <select class="w-full border border-gray-200 rounded-lg px-4 py-2">
450
+ <option>Biology</option>
451
+ <option>Chemistry</option>
452
+ <option>Physics</option>
453
+ <option>Mathematics</option>
454
+ </select>
455
+ </div>
456
+ <div class="mb-4">
457
+ <label class="block text-gray-700 mb-2">Chapter/Topic</label>
458
+ <input type="text" class="w-full border border-gray-200 rounded-lg px-4 py-2" placeholder="E.g. Cell Structure">
459
+ </div>
460
+ <div class="mb-4">
461
+ <label class="block text-gray-700 mb-2">Question</label>
462
+ <textarea class="w-full border border-gray-200 rounded-lg px-4 py-2" rows="2" placeholder="Enter your question"></textarea>
463
+ </div>
464
+ <div class="mb-4">
465
+ <label class="block text-gray-700 mb-2">Answer</label>
466
+ <textarea class="w-full border border-gray-200 rounded-lg px-4 py-2" rows="3" placeholder="Enter the answer"></textarea>
467
+ </div>
468
+ <div class="flex justify-end space-x-3">
469
+ <button type="button" id="cancel-flashcard" class="px-4 py-2 border border-gray-200 rounded-lg hover:bg-gray-50">Cancel</button>
470
+ <button type="submit" class="px-4 py-2 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700">Save Flashcard</button>
471
+ </div>
472
+ </form>
473
+ </div>
474
+ </div>
475
+
476
+ <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
477
+ <script>
478
+ // Mobile menu toggle
479
+ const mobileMenuButton = document.getElementById('mobile-menu-button');
480
+ const closeSidebarButton = document.getElementById('close-sidebar');
481
+ const sidebar = document.getElementById('sidebar');
482
+ const overlay = document.getElementById('overlay');
483
+
484
+ mobileMenuButton.addEventListener('click', () => {
485
+ sidebar.classList.add('active');
486
+ overlay.classList.add('active');
487
+ });
488
+
489
+ closeSidebarButton.addEventListener('click', () => {
490
+ sidebar.classList.remove('active');
491
+ overlay.classList.remove('active');
492
+ });
493
+
494
+ overlay.addEventListener('click', () => {
495
+ sidebar.classList.remove('active');
496
+ overlay.classList.remove('active');
497
+ });
498
+
499
+ // Flashcard modal
500
+ const addFlashcardButton = document.getElementById('add-flashcard');
501
+ const closeModalButton = document.getElementById('close-modal');
502
+ const cancelFlashcardButton = document.getElementById('cancel-flashcard');
503
+ const flashcardModal = document.getElementById('flashcard-modal');
504
+
505
+ addFlashcardButton.addEventListener('click', () => {
506
+ flashcardModal.classList.remove('hidden');
507
+ });
508
+
509
+ closeModalButton.addEventListener('click', () => {
510
+ flashcardModal.classList.add('hidden');
511
+ });
512
+
513
+ cancelFlashcardButton.addEventListener('click', () => {
514
+ flashcardModal.classList.add('hidden');
515
+ });
516
+
517
+ // Timer functionality
518
+ let timer;
519
+ let timeLeft = 1500; // 25 minutes in seconds
520
+ let timerRunning = false;
521
+ const timerDisplay = document.getElementById('timer-display');
522
+ const timerStatus = document.getElementById('timer-status');
523
+ const startButton = document.getElementById('start-timer');
524
+ const pauseButton = document.getElementById('pause-timer');
525
+ const resetButton = document.getElementById('reset-timer');
526
+ const timerOptions = document.querySelectorAll('.timer-option');
527
+ const progressCircle = document.getElementById('progress-circle');
528
+ const circumference = 2 * Math.PI * 45;
529
+
530
+ progressCircle.style.strokeDasharray = circumference;
531
+ progressCircle.style.strokeDashoffset = circumference;
532
+
533
+ function updateTimerDisplay() {
534
+ const minutes = Math.floor(timeLeft / 60);
535
+ const seconds = timeLeft % 60;
536
+ timerDisplay.textContent = `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
537
+
538
+ // Update progress circle
539
+ const totalTime = parseInt(startButton.dataset.time || 1500);
540
+ const offset = circumference - (timeLeft / totalTime) * circumference;
541
+ progressCircle.style.strokeDashoffset = offset;
542
+ }
543
+
544
+ function startTimer() {
545
+ if (!timerRunning) {
546
+ timerRunning = true;
547
+ startButton.classList.add('hidden');
548
+ pauseButton.classList.remove('hidden');
549
+ timerStatus.textContent = timerStatus.textContent === 'Ready to study' ? 'Studying...' : timerStatus.textContent;
550
+
551
+ timer = setInterval(() => {
552
+ timeLeft--;
553
+ updateTimerDisplay();
554
+
555
+ if (timeLeft <= 0) {
556
+ clearInterval(timer);
557
+ timerRunning = false;
558
+ startButton.classList.remove('hidden');
559
+ pauseButton.classList.add('hidden');
560
+ timerStatus.textContent = 'Time is up! Take a break.';
561
+ // Play sound
562
+ const audio = new Audio('https://assets.mixkit.co/sfx/preview/mixkit-alarm-digital-clock-beep-989.mp3');
563
+ audio.play();
564
+ }
565
+ }, 1000);
566
+ }
567
+ }
568
+
569
+ function pauseTimer() {
570
+ clearInterval(timer);
571
+ timerRunning = false;
572
+ startButton.classList.remove('hidden');
573
+ pauseButton.classList.add('hidden');
574
+ timerStatus.textContent = 'Paused';
575
+ }
576
+
577
+ function resetTimer() {
578
+ clearInterval(timer);
579
+ timerRunning = false;
580
+ timeLeft = parseInt(startButton.dataset.time || 1500);
581
+ updateTimerDisplay();
582
+ startButton.classList.remove('hidden');
583
+ pauseButton.classList.add('hidden');
584
+ timerStatus.textContent = 'Ready to study';
585
+ }
586
+
587
+ startButton.addEventListener('click', startTimer);
588
+ pauseButton.addEventListener('click', pauseTimer);
589
+ resetButton.addEventListener('click', resetTimer);
590
+
591
+ timerOptions.forEach(option => {
592
+ option.addEventListener('click', () => {
593
+ // Remove active class from all options
594
+ timerOptions.forEach(opt => {
595
+ opt.classList.remove('border-indigo-200', 'text-indigo-600', 'bg-indigo-50');
596
+ opt.classList.add('border-gray-200', 'text-gray-600');
597
+ });
598
+
599
+ // Add active class to clicked option
600
+ option.classList.remove('border-gray-200', 'text-gray-600');
601
+ option.classList.add('border-indigo-200', 'text-indigo-600', 'bg-indigo-50');
602
+
603
+ // Set the time
604
+ const minutes = parseInt(option.dataset.minutes);
605
+ timeLeft = minutes * 60;
606
+ startButton.dataset.time = timeLeft;
607
+ updateTimerDisplay();
608
+
609
+ // Reset timer if it's running
610
+ if (timerRunning) {
611
+ pauseTimer();
612
+ }
613
+ });
614
+ });
615
+
616
+ // Initialize charts
617
+ document.addEventListener('DOMContentLoaded', function() {
618
+ // Study Hours Chart
619
+ const studyHoursCtx = document.getElementById('study-hours-chart').getContext('2d');
620
+ const studyHoursChart = new Chart(studyHoursCtx, {
621
+ type: 'bar',
622
+ data: {
623
+ labels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
624
+ datasets: [{
625
+ label: 'Study Hours',
626
+ data: [2.5, 3, 4, 2.5, 3.5, 1, 2],
627
+ backgroundColor: '#667eea',
628
+ borderRadius: 4
629
+ }]
630
+ },
631
+ options: {
632
+ responsive: true,
633
+ maintainAspectRatio: false,
634
+ scales: {
635
+ y: {
636
+ beginAtZero: true,
637
+ grid: {
638
+ display: false
639
+ }
640
+ },
641
+ x: {
642
+ grid: {
643
+ display: false
644
+ }
645
+ }
646
+ },
647
+ plugins: {
648
+ legend: {
649
+ display: false
650
+ }
651
+ }
652
+ }
653
+ });
654
+
655
+ // Mastery Chart
656
+ const masteryCtx = document.getElementById('mastery-chart').getContext('2d');
657
+ const masteryChart = new Chart(masteryCtx, {
658
+ type: 'doughnut',
659
+ data: {
660
+ labels: ['Mastered', 'Practiced', 'Needs Work'],
661
+ datasets: [{
662
+ data: [45, 30, 25],
663
+ backgroundColor: [
664
+ '#10b981',
665
+ '#3b82f6',
666
+ '#ef4444'
667
+ ],
668
+ borderWidth: 0
669
+ }]
670
+ },
671
+ options: {
672
+ responsive: true,
673
+ maintainAspectRatio: false,
674
+ cutout: '70%',
675
+ plugins: {
676
+ legend: {
677
+ position: 'bottom'
678
+ }
679
+ }
680
+ }
681
+ });
682
+
683
+ // Initialize timer display
684
+ updateTimerDisplay();
685
+ });
686
+ </script>
687
+ <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=Thabang576/buddy" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
688
+ </html>
prompts.txt ADDED
File without changes