munkhzaya76 commited on
Commit
473f812
·
verified ·
1 Parent(s): e5d1e8a

урагчийн гүйцэтгэлд суурилсан AI тайлан генератор Тайлбар: Сурагчдын оноо, оролцоо, ирц, хичээлийн сэтгэгдэл зэргийг AI ашиглан задлан шинжлээд, эцэг эх, багшид зориулсан тайлан үүсгэнэ. AI технологи: • Data analysis + NLP • Хувийн тайлан үүсгэх LLM prompt design • Charts (matplotlib, chart.js) Өвөрмөц байдал: • Сэтгэлзүйн төлөв байдлыг ч таамаглаж болно (ChatGPT API ашиглан) • Эцэг эхэд энгийн ойлгомжтой хэлээр гаргадаг - Initial Deployment

Browse files
Files changed (2) hide show
  1. README.md +7 -5
  2. index.html +589 -19
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Studetns Generate
3
- emoji: 🌖
4
- colorFrom: red
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: studetns-generate
3
+ emoji: 🐳
4
+ colorFrom: blue
5
+ colorTo: gray
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,589 @@
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>Сурагчийн гүйцэтгэлд суурилсан AI тайлан генератор </title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
9
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
10
+ <style>
11
+ .gradient-bg {
12
+ background: linear-gradient(135deg, #6B73FF 0%, #000DFF 100%);
13
+ }
14
+ .report-card {
15
+ box-shadow: 0 10px 30px rgba(0, 13, 255, 0.1);
16
+ transition: all 0.3s ease;
17
+ }
18
+ .report-card:hover {
19
+ transform: translateY(-5px);
20
+ box-shadow: 0 15px 35px rgba(0, 13, 255, 0.2);
21
+ }
22
+ .fade-in {
23
+ animation: fadeIn 0.5s ease-in;
24
+ }
25
+ @keyframes fadeIn {
26
+ from { opacity: 0; }
27
+ to { opacity: 1; }
28
+ }
29
+ .pulse {
30
+ animation: pulse 2s infinite;
31
+ }
32
+ @keyframes pulse {
33
+ 0% { transform: scale(1); }
34
+ 50% { transform: scale(1.05); }
35
+ 100% { transform: scale(1); }
36
+ }
37
+ </style>
38
+ </head>
39
+ <body class="bg-gray-50 font-sans">
40
+ <!-- Header -->
41
+ <header class="gradient-bg text-white py-8 px-4">
42
+ <div class="container mx-auto">
43
+ <div class="flex flex-col md:flex-row justify-between items-center">
44
+ <div class="mb-6 md:mb-0">
45
+ <h1 class="text-3xl md:text-4xl font-bold mb-2"> Сурагчийн гүйцэтгэлд суурилсан AI тайлан генератор</h1>
46
+ <p class="text-blue-100">Багш, эцэг эх, асран хамгаалагчдад </p>
47
+ </div>
48
+ <div class="flex items-center space-x-4">
49
+ <div class="bg-white/20 p-3 rounded-full">
50
+ <i class="fas fa-chart-line text-2xl"></i>
51
+ </div>
52
+ <div class="bg-white/20 p-3 rounded-full">
53
+ <i class="fas fa-brain text-2xl"></i>
54
+ </div>
55
+ <div class="bg-white/20 p-3 rounded-full">
56
+ <i class="fas fa-graduation-cap text-2xl"></i>
57
+ </div>
58
+ </div>
59
+ </div>
60
+ </div>
61
+ </header>
62
+
63
+ <!-- Main Content -->
64
+ <main class="container mx-auto px-4 py-8">
65
+ <!-- Input Section -->
66
+ <section class="mb-12">
67
+ <div class="bg-white rounded-xl shadow-md p-6 report-card">
68
+ <h2 class="text-2xl font-bold text-gray-800 mb-6">Сурагчийн мэдээлэл</h2>
69
+
70
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
71
+ <!-- Basic Info -->
72
+ <div class="space-y-4">
73
+ <h3 class="text-lg font-semibold text-gray-700 flex items-center">
74
+ <i class="fas fa-user-circle mr-2 text-blue-500"></i> Үндсэн мэдээлэл
75
+ </h3>
76
+ <div>
77
+ <label class="block text-sm font-medium text-gray-600 mb-1">Сурагчийн нэр</label>
78
+ <input type="text" id="studentName" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
79
+ </div>
80
+ <div>
81
+ <label class="block text-sm font-medium text-gray-600 mb-1">Анги/Бүлэг</label>
82
+ <input type="text" id="studentGrade" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
83
+ </div>
84
+ </div>
85
+
86
+ <!-- Academic Performance -->
87
+ <div class="space-y-4">
88
+ <h3 class="text-lg font-semibold text-gray-700 flex items-center">
89
+ <i class="fas fa-star mr-2 text-yellow-500"></i> Гүйцэтгэлийн үзүүлэлтүүд
90
+ </h3>
91
+ <div>
92
+ <label class="block text-sm font-medium text-gray-600 mb-1">Ш��лгалтын гүйцэтгэл (comma separated)</label>
93
+ <input type="text" id="testScores" placeholder="85, 92, 78, 88" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
94
+ </div>
95
+ <div>
96
+ <label class="block text-sm font-medium text-gray-600 mb-1">Гэрийн даалгаварын гүйцэтгэл (%)</label>
97
+ <input type="number" id="homeworkCompletion" min="0" max="100" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
98
+ </div>
99
+ </div>
100
+
101
+ <!-- Engagement Metrics -->
102
+ <div class="space-y-4">
103
+ <h3 class="text-lg font-semibold text-gray-700 flex items-center">
104
+ <i class="fas fa-chart-pie mr-2 text-green-500"></i> Идэвх, оролцоо
105
+ </h3>
106
+ <div>
107
+ <label class="block text-sm font-medium text-gray-600 mb-1">Ирц (%)</label>
108
+ <input type="number" id="attendance" min="0" max="100" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
109
+ </div>
110
+ <div>
111
+ <label class="block text-sm font-medium text-gray-600 mb-1">Оролцоо (1-10)</label>
112
+ <input type="number" id="participation" min="1" max="10" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
113
+ </div>
114
+ </div>
115
+ </div>
116
+
117
+ <!-- Additional Notes -->
118
+ <div class="mt-6">
119
+ <h3 class="text-lg font-semibold text-gray-700 mb-2 flex items-center">
120
+ <i class="fas fa-edit mr-2 text-purple-500"></i> Teacher's Notes
121
+ </h3>
122
+ <textarea id="teacherNotes" rows="3" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" placeholder="Enter any observations about the student's behavior, strengths, or areas for improvement..."></textarea>
123
+ </div>
124
+
125
+ <!-- Generate Button -->
126
+ <div class="mt-8 flex justify-center">
127
+ <button id="generateBtn" class="gradient-bg text-white px-8 py-3 rounded-full font-semibold hover:opacity-90 transition-all flex items-center pulse">
128
+ <i class="fas fa-magic mr-2"></i> Generate AI Report
129
+ </button>
130
+ </div>
131
+ </div>
132
+ </section>
133
+
134
+ <!-- Report Section (Initially Hidden) -->
135
+ <section id="reportSection" class="hidden fade-in">
136
+ <div class="flex justify-between items-center mb-6">
137
+ <h2 class="text-2xl font-bold text-gray-800">AI-Generated Report</h2>
138
+ <button id="printBtn" class="bg-gray-200 hover:bg-gray-300 text-gray-800 px-4 py-2 rounded-lg flex items-center">
139
+ <i class="fas fa-print mr-2"></i> Print Report
140
+ </button>
141
+ </div>
142
+
143
+ <div class="bg-white rounded-xl shadow-md p-6 mb-8 report-card">
144
+ <!-- Report Header -->
145
+ <div class="border-b border-gray-200 pb-4 mb-6">
146
+ <div class="flex flex-col md:flex-row justify-between items-start md:items-center">
147
+ <div>
148
+ <h3 id="reportStudentName" class="text-xl font-bold text-gray-800"></h3>
149
+ <p id="reportStudentGrade" class="text-gray-600"></p>
150
+ </div>
151
+ <div class="mt-4 md:mt-0">
152
+ <p class="text-sm text-gray-500">Report Generated: <span id="reportDate"></span></p>
153
+ </div>
154
+ </div>
155
+ </div>
156
+
157
+ <!-- Summary Card -->
158
+ <div class="bg-blue-50 rounded-lg p-4 mb-6">
159
+ <div class="flex items-start">
160
+ <div class="bg-blue-100 p-3 rounded-full mr-4">
161
+ <i class="fas fa-lightbulb text-blue-600 text-xl"></i>
162
+ </div>
163
+ <div>
164
+ <h4 class="font-semibold text-blue-800 mb-1">AI Summary</h4>
165
+ <p id="aiSummary" class="text-gray-700"></p>
166
+ </div>
167
+ </div>
168
+ </div>
169
+
170
+ <!-- Charts Row -->
171
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-6 mb-8">
172
+ <!-- Performance Chart -->
173
+ <div class="bg-white border border-gray-200 rounded-lg p-4">
174
+ <h4 class="font-semibold text-gray-700 mb-3">Test Score Trend</h4>
175
+ <canvas id="performanceChart" height="200"></canvas>
176
+ </div>
177
+
178
+ <!-- Progress Chart -->
179
+ <div class="bg-white border border-gray-200 rounded-lg p-4">
180
+ <h4 class="font-semibold text-gray-700 mb-3">Performance Metrics</h4>
181
+ <canvas id="progressChart" height="200"></canvas>
182
+ </div>
183
+ </div>
184
+
185
+ <!-- Detailed Analysis -->
186
+ <div class="mb-8">
187
+ <h4 class="text-lg font-semibold text-gray-700 mb-4 flex items-center">
188
+ <i class="fas fa-chart-bar mr-2 text-blue-500"></i> Detailed Analysis
189
+ </h4>
190
+
191
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-4 mb-6">
192
+ <!-- Academic Card -->
193
+ <div class="bg-gray-50 rounded-lg p-4 border border-gray-200">
194
+ <div class="flex items-center mb-2">
195
+ <div class="bg-yellow-100 p-2 rounded-full mr-3">
196
+ <i class="fas fa-book text-yellow-600"></i>
197
+ </div>
198
+ <h5 class="font-medium text-gray-700">Academic Performance</h5>
199
+ </div>
200
+ <p id="academicAnalysis" class="text-sm text-gray-600"></p>
201
+ </div>
202
+
203
+ <!-- Engagement Card -->
204
+ <div class="bg-gray-50 rounded-lg p-4 border border-gray-200">
205
+ <div class="flex items-center mb-2">
206
+ <div class="bg-green-100 p-2 rounded-full mr-3">
207
+ <i class="fas fa-users text-green-600"></i>
208
+ </div>
209
+ <h5 class="font-medium text-gray-700">Class Engagement</h5>
210
+ </div>
211
+ <p id="engagementAnalysis" class="text-sm text-gray-600"></p>
212
+ </div>
213
+
214
+ <!-- Psychological Card -->
215
+ <div class="bg-gray-50 rounded-lg p-4 border border-gray-200">
216
+ <div class="flex items-center mb-2">
217
+ <div class="bg-purple-100 p-2 rounded-full mr-3">
218
+ <i class="fas fa-brain text-purple-600"></i>
219
+ </div>
220
+ <h5 class="font-medium text-gray-700">Psychological Insight</h5>
221
+ </div>
222
+ <p id="psychologicalAnalysis" class="text-sm text-gray-600"></p>
223
+ </div>
224
+ </div>
225
+ </div>
226
+
227
+ <!-- Recommendations -->
228
+ <div>
229
+ <h4 class="text-lg font-semibold text-gray-700 mb-4 flex items-center">
230
+ <i class="fas fa-hands-helping mr-2 text-green-500"></i> Recommendations
231
+ </h4>
232
+
233
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
234
+ <!-- For Teachers -->
235
+ <div class="bg-green-50 rounded-lg p-4 border border-green-200">
236
+ <div class="flex items-center mb-3">
237
+ <div class="bg-green-100 p-2 rounded-full mr-3">
238
+ <i class="fas fa-chalkboard-teacher text-green-600"></i>
239
+ </div>
240
+ <h5 class="font-medium text-green-800">For Teachers</h5>
241
+ </div>
242
+ <ul id="teacherRecommendations" class="list-disc pl-5 space-y-2 text-sm text-gray-700"></ul>
243
+ </div>
244
+
245
+ <!-- For Parents -->
246
+ <div class="bg-blue-50 rounded-lg p-4 border border-blue-200">
247
+ <div class="flex items-center mb-3">
248
+ <div class="bg-blue-100 p-2 rounded-full mr-3">
249
+ <i class="fas fa-home text-blue-600"></i>
250
+ </div>
251
+ <h5 class="font-medium text-blue-800">For Parents</h5>
252
+ </div>
253
+ <ul id="parentRecommendations" class="list-disc pl-5 space-y-2 text-sm text-gray-700"></ul>
254
+ </div>
255
+ </div>
256
+ </div>
257
+ </div>
258
+ </section>
259
+ </main>
260
+
261
+ <!-- Footer -->
262
+ <footer class="bg-gray-800 text-white py-6 px-4">
263
+ <div class="container mx-auto">
264
+ <div class="flex flex-col md:flex-row justify-between items-center">
265
+ <div class="mb-4 md:mb-0">
266
+ <p class="text-gray-400">© 2023 AI Student Performance Analyzer</p>
267
+ </div>
268
+ <div class="flex space-x-4">
269
+ <a href="#" class="text-gray-400 hover:text-white transition-colors">
270
+ <i class="fab fa-github text-xl"></i>
271
+ </a>
272
+ <a href="#" class="text-gray-400 hover:text-white transition-colors">
273
+ <i class="fab fa-twitter text-xl"></i>
274
+ </a>
275
+ <a href="#" class="text-gray-400 hover:text-white transition-colors">
276
+ <i class="fab fa-linkedin text-xl"></i>
277
+ </a>
278
+ </div>
279
+ </div>
280
+ </div>
281
+ </footer>
282
+
283
+ <script>
284
+ document.addEventListener('DOMContentLoaded', function() {
285
+ // Generate Report Button
286
+ document.getElementById('generateBtn').addEventListener('click', generateReport);
287
+
288
+ // Print Button
289
+ document.getElementById('printBtn').addEventListener('click', function() {
290
+ window.print();
291
+ });
292
+
293
+ function generateReport() {
294
+ // Get input values
295
+ const studentName = document.getElementById('studentName').value || 'Sample Student';
296
+ const studentGrade = document.getElementById('studentGrade').value || 'Grade 5';
297
+ const testScores = document.getElementById('testScores').value || '85,92,78,88';
298
+ const homeworkCompletion = document.getElementById('homeworkCompletion').value || 85;
299
+ const attendance = document.getElementById('attendance').value || 92;
300
+ const participation = document.getElementById('participation').value || 7;
301
+ const teacherNotes = document.getElementById('teacherNotes').value || 'The student shows potential but needs to focus more during lessons.';
302
+
303
+ // Set report header info
304
+ document.getElementById('reportStudentName').textContent = studentName;
305
+ document.getElementById('reportStudentGrade').textContent = studentGrade;
306
+
307
+ const today = new Date();
308
+ document.getElementById('reportDate').textContent = today.toLocaleDateString('en-US', {
309
+ year: 'numeric',
310
+ month: 'long',
311
+ day: 'numeric'
312
+ });
313
+
314
+ // Process test scores
315
+ const scoresArray = testScores.split(',').map(score => parseInt(score.trim()));
316
+ const averageScore = scoresArray.reduce((a, b) => a + b, 0) / scoresArray.length;
317
+
318
+ // Generate AI analysis (simulated)
319
+ document.getElementById('aiSummary').textContent =
320
+ `Based on the provided data, ${studentName} is performing ${getPerformanceLevel(averageScore)} in ${studentGrade}. ` +
321
+ `The student maintains ${attendance}% attendance and shows ${getParticipationLevel(participation)} in class participation. ` +
322
+ `Overall, ${studentName} ${getOverallTrend(scoresArray)} in academic performance.`;
323
+
324
+ // Academic Analysis
325
+ document.getElementById('academicAnalysis').textContent =
326
+ `Average test score: ${averageScore.toFixed(1)}. Homework completion rate: ${homeworkCompletion}%. ` +
327
+ `The student ${homeworkCompletion >= 80 ? 'consistently completes' : 'could improve on'} assigned homework. ` +
328
+ `Test scores show ${getScoreTrend(scoresArray)}.`;
329
+
330
+ // Engagement Analysis
331
+ document.getElementById('engagementAnalysis').textContent =
332
+ `Attendance rate of ${attendance}% indicates ${attendance >= 90 ? 'excellent' : 'good'} attendance. ` +
333
+ `Class participation level of ${participation}/10 suggests ${getParticipationDescription(participation)}. ` +
334
+ `${teacherNotes}`;
335
+
336
+ // Psychological Insight
337
+ document.getElementById('psychologicalAnalysis').textContent =
338
+ `Based on performance patterns, ${studentName} appears to be ${getPsychologicalState(averageScore, participation)}. ` +
339
+ `The student ${getMotivationLevel(homeworkCompletion, participation)} and may benefit from ${getSupportType(averageScore)}.`;
340
+
341
+ // Teacher Recommendations
342
+ const teacherRecs = [
343
+ `Provide ${getFeedbackType(averageScore)} feedback to help student progress`,
344
+ `Consider ${getGroupingType(participation)} grouping for collaborative work`,
345
+ `Offer ${getChallengeLevel(averageScore)} challenges to maintain engagement`,
346
+ `Focus on ${getFocusArea(scoresArray)} in upcoming lessons`
347
+ ];
348
+ populateList('teacherRecommendations', teacherRecs);
349
+
350
+ // Parent Recommendations
351
+ const parentRecs = [
352
+ `Encourage ${getEncouragementType(participation)} participation in school activities`,
353
+ `Monitor ${getMonitoringArea(homeworkCompletion)} at home`,
354
+ `Provide opportunities for ${getEnrichmentType(averageScore)}`,
355
+ `Communicate regularly with teachers about ${getCommunicationFocus(averageScore)}`
356
+ ];
357
+ populateList('parentRecommendations', parentRecs);
358
+
359
+ // Create charts
360
+ createPerformanceChart(scoresArray);
361
+ createProgressChart(averageScore, homeworkCompletion, attendance, participation);
362
+
363
+ // Show report section
364
+ document.getElementById('reportSection').classList.remove('hidden');
365
+
366
+ // Scroll to report
367
+ document.getElementById('reportSection').scrollIntoView({ behavior: 'smooth' });
368
+ }
369
+
370
+ // Helper functions for analysis
371
+ function getPerformanceLevel(avg) {
372
+ if (avg >= 90) return 'exceptionally well';
373
+ if (avg >= 80) return 'very well';
374
+ if (avg >= 70) return 'adequately';
375
+ return 'below expectations';
376
+ }
377
+
378
+ function getParticipationLevel(participation) {
379
+ if (participation >= 9) return 'excellent';
380
+ if (participation >= 7) return 'good';
381
+ if (participation >= 5) return 'moderate';
382
+ return 'limited';
383
+ }
384
+
385
+ function getOverallTrend(scores) {
386
+ const first = scores[0];
387
+ const last = scores[scores.length - 1];
388
+ const diff = last - first;
389
+
390
+ if (diff > 5) return 'is showing significant improvement';
391
+ if (diff > 0) return 'is improving gradually';
392
+ if (diff === 0) return 'is maintaining consistent performance';
393
+ if (diff > -5) return 'is experiencing slight difficulties';
394
+ return 'needs additional support as performance is declining';
395
+ }
396
+
397
+ function createPerformanceChart(scores) {
398
+ const ctx = document.getElementById('performanceChart').getContext('2d');
399
+
400
+ // Destroy previous chart if exists
401
+ if (window.performanceChart) {
402
+ window.performanceChart.destroy();
403
+ }
404
+
405
+ window.performanceChart = new Chart(ctx, {
406
+ type: 'line',
407
+ data: {
408
+ labels: scores.map((_, i) => `Test ${i + 1}`),
409
+ datasets: [{
410
+ label: 'Test Scores',
411
+ data: scores,
412
+ borderColor: '#4F46E5',
413
+ backgroundColor: 'rgba(79, 70, 229, 0.1)',
414
+ borderWidth: 2,
415
+ tension: 0.3,
416
+ fill: true
417
+ }]
418
+ },
419
+ options: {
420
+ responsive: true,
421
+ plugins: {
422
+ legend: {
423
+ display: false
424
+ },
425
+ tooltip: {
426
+ mode: 'index',
427
+ intersect: false
428
+ }
429
+ },
430
+ scales: {
431
+ y: {
432
+ beginAtZero: false,
433
+ min: Math.max(0, Math.min(...scores) - 10),
434
+ max: Math.min(100, Math.max(...scores) + 10)
435
+ }
436
+ }
437
+ }
438
+ });
439
+ }
440
+
441
+ function createProgressChart(avgScore, homework, attendance, participation) {
442
+ const ctx = document.getElementById('progressChart').getContext('2d');
443
+
444
+ // Destroy previous chart if exists
445
+ if (window.progressChart) {
446
+ window.progressChart.destroy();
447
+ }
448
+
449
+ window.progressChart = new Chart(ctx, {
450
+ type: 'radar',
451
+ data: {
452
+ labels: ['Academic Performance', 'Homework Completion', 'Attendance', 'Class Participation'],
453
+ datasets: [{
454
+ label: 'Performance Metrics',
455
+ data: [
456
+ avgScore,
457
+ homework,
458
+ attendance,
459
+ participation * 10 // Scale 1-10 to match percentage
460
+ ],
461
+ backgroundColor: 'rgba(99, 102, 241, 0.2)',
462
+ borderColor: 'rgba(99, 102, 241, 1)',
463
+ borderWidth: 2,
464
+ pointBackgroundColor: 'rgba(99, 102, 241, 1)',
465
+ pointBorderColor: '#fff',
466
+ pointHoverRadius: 5
467
+ }]
468
+ },
469
+ options: {
470
+ responsive: true,
471
+ scales: {
472
+ r: {
473
+ angleLines: {
474
+ display: true
475
+ },
476
+ suggestedMin: 0,
477
+ suggestedMax: 100
478
+ }
479
+ },
480
+ plugins: {
481
+ legend: {
482
+ display: false
483
+ }
484
+ }
485
+ }
486
+ });
487
+ }
488
+
489
+ function populateList(elementId, items) {
490
+ const listElement = document.getElementById(elementId);
491
+ listElement.innerHTML = '';
492
+
493
+ items.forEach(item => {
494
+ const li = document.createElement('li');
495
+ li.textContent = item;
496
+ listElement.appendChild(li);
497
+ });
498
+ }
499
+
500
+ // More analysis helper functions
501
+ function getScoreTrend(scores) {
502
+ const trend = scores[scores.length - 1] - scores[0];
503
+ if (trend > 5) return 'a strong upward trend';
504
+ if (trend > 0) return 'a gradual improvement';
505
+ if (trend === 0) return 'consistent performance';
506
+ if (trend > -5) return 'slight fluctuations';
507
+ return 'a concerning downward trend';
508
+ }
509
+
510
+ function getParticipationDescription(level) {
511
+ if (level >= 9) return 'active and enthusiastic engagement in class discussions';
512
+ if (level >= 7) return 'regular participation with valuable contributions';
513
+ if (level >= 5) return 'occasional participation when prompted';
514
+ return 'reluctance to participate actively in class';
515
+ }
516
+
517
+ function getPsychologicalState(score, participation) {
518
+ if (score >= 85 && participation >= 8) return 'confident and engaged';
519
+ if (score >= 85) return 'academically capable but somewhat reserved';
520
+ if (score >= 70 && participation >= 7) return 'making good effort despite challenges';
521
+ if (score >= 70) return 'capable but may lack confidence';
522
+ return 'struggling and may need emotional support';
523
+ }
524
+
525
+ function getMotivationLevel(homework, participation) {
526
+ const avg = (parseInt(homework) + (participation * 10)) / 2;
527
+ if (avg >= 85) return 'demonstrates strong motivation';
528
+ if (avg >= 70) return 'shows adequate motivation';
529
+ return 'may need encouragement to stay motivated';
530
+ }
531
+
532
+ function getSupportType(score) {
533
+ if (score >= 85) return 'enrichment activities';
534
+ if (score >= 70) return 'targeted practice';
535
+ return 'additional academic support';
536
+ }
537
+
538
+ function getFeedbackType(score) {
539
+ if (score >= 85) return 'constructive and challenging';
540
+ if (score >= 70) return 'encouraging with specific improvement areas';
541
+ return 'detailed and supportive';
542
+ }
543
+
544
+ function getGroupingType(participation) {
545
+ if (participation >= 8) return 'peer leadership';
546
+ if (participation >= 6) return 'mixed-ability';
547
+ return 'supportive peer';
548
+ }
549
+
550
+ function getChallengeLevel(score) {
551
+ if (score >= 85) return 'advanced';
552
+ if (score >= 70) return 'moderately challenging';
553
+ return 'foundational';
554
+ }
555
+
556
+ function getFocusArea(scores) {
557
+ const minScore = Math.min(...scores);
558
+ if (minScore >= 80) return 'advanced concepts';
559
+ if (minScore >= 60) return 'core competencies';
560
+ return 'fundamental skills';
561
+ }
562
+
563
+ function getEncouragementType(participation) {
564
+ if (participation >= 8) return 'continued active';
565
+ if (participation >= 6) return 'increased';
566
+ return 'more consistent';
567
+ }
568
+
569
+ function getMonitoringArea(homework) {
570
+ if (homework >= 90) return 'advanced learning opportunities';
571
+ if (homework >= 70) return 'homework completion consistency';
572
+ return 'daily homework habits';
573
+ }
574
+
575
+ function getEnrichmentType(score) {
576
+ if (score >= 85) return 'academic enrichment';
577
+ if (score >= 70) return 'skill reinforcement';
578
+ return 'targeted practice';
579
+ }
580
+
581
+ function getCommunicationFocus(score) {
582
+ if (score >= 85) return 'extension opportunities';
583
+ if (score >= 70) return 'progress and next steps';
584
+ return 'support strategies';
585
+ }
586
+ });
587
+ </script>
588
+ <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=munkhzaya76/studetns-generate" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
589
+ </html>