froublot commited on
Commit
2cdd5ec
·
verified ·
1 Parent(s): de744cc

la page ai assistant

Browse files
Files changed (3) hide show
  1. ai-assistant.html +157 -0
  2. components/sidebar.js +2 -2
  3. script.js +64 -5
ai-assistant.html ADDED
@@ -0,0 +1,157 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 Assistant | EduPulse</title>
7
+ <link rel="stylesheet" href="style.css">
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
+ </head>
11
+ <body class="bg-surface-1">
12
+ <div class="flex h-screen overflow-hidden">
13
+ <!-- Sidebar Component -->
14
+ <script src="components/sidebar.js"></script>
15
+ <custom-sidebar></custom-sidebar>
16
+
17
+ <!-- Main Content Area -->
18
+ <div class="flex-1 flex flex-col overflow-hidden">
19
+ <!-- Header Component -->
20
+ <script src="components/header.js"></script>
21
+ <custom-header></custom-header>
22
+
23
+ <!-- Main Workspace -->
24
+ <main class="flex-1 overflow-y-auto p-6 bg-gray-100">
25
+ <div class="max-w-7xl mx-auto">
26
+ <div class="flex justify-between items-center mb-6">
27
+ <h1 class="text-2xl font-bold text-gray-900">AI Teaching Assistant</h1>
28
+ <div class="flex items-center space-x-2">
29
+ <span class="text-sm text-gray-500">Status: <span class="text-green-600 font-medium">Online</span></span>
30
+ <div class="h-2 w-2 rounded-full bg-green-500"></div>
31
+ </div>
32
+ </div>
33
+
34
+ <!-- AI Chat Interface -->
35
+ <div class="card p-6 mb-6">
36
+ <div class="flex items-center mb-6">
37
+ <div class="h-12 w-12 rounded-full bg-gradient-to-r from-indigo-500 to-purple-600 flex items-center justify-center text-white mr-4">
38
+ <i class="fas fa-robot text-xl"></i>
39
+ </div>
40
+ <div>
41
+ <h2 class="text-lg font-bold">EduAI Assistant</h2>
42
+ <p class="text-sm text-gray-500">Ready to help with your teaching needs</p>
43
+ </div>
44
+ </div>
45
+
46
+ <!-- Chat Messages -->
47
+ <div class="h-96 overflow-y-auto mb-6 space-y-4" id="chat-messages">
48
+ <!-- AI Welcome Message -->
49
+ <div class="flex items-start">
50
+ <div class="h-8 w-8 rounded-full bg-indigo-100 flex items-center justify-center text-indigo-600 mr-3 flex-shrink-0">
51
+ <i class="fas fa-robot"></i>
52
+ </div>
53
+ <div class="bg-indigo-50 rounded-lg p-4 max-w-3xl">
54
+ <p class="text-gray-800">Hello! I'm your AI Teaching Assistant. How can I help you today? Here are some things I can do:</p>
55
+ <ul class="list-disc pl-5 mt-2 text-gray-700">
56
+ <li>Generate lesson plan ideas</li>
57
+ <li>Create quiz questions</li>
58
+ <li>Suggest teaching strategies</li>
59
+ <li>Help with content creation</li>
60
+ </ul>
61
+ </div>
62
+ </div>
63
+ </div>
64
+
65
+ <!-- Input Area -->
66
+ <div class="flex items-center">
67
+ <input type="text" placeholder="Ask me anything about teaching..."
68
+ class="flex-1 px-4 py-3 border border-gray-300 rounded-l-lg focus:ring-blue-500 focus:border-blue-500">
69
+ <button class="bg-indigo-600 hover:bg-indigo-700 text-white px-6 py-3 rounded-r-lg">
70
+ <i class="fas fa-paper-plane"></i>
71
+ </button>
72
+ </div>
73
+ </div>
74
+
75
+ <!-- Quick Actions -->
76
+ <div class="mb-8">
77
+ <h2 class="text-lg font-medium text-gray-900 mb-4">Quick Actions</h2>
78
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
79
+ <button class="card p-4 text-left hover:bg-indigo-50 transition">
80
+ <div class="flex items-center">
81
+ <div class="p-2 rounded-full bg-indigo-100 text-indigo-600 mr-3">
82
+ <i class="fas fa-book"></i>
83
+ </div>
84
+ <div>
85
+ <h3 class="font-medium">Generate Lesson Plan</h3>
86
+ <p class="text-sm text-gray-500">Create a custom lesson plan</p>
87
+ </div>
88
+ </div>
89
+ </button>
90
+ <button class="card p-4 text-left hover:bg-indigo-50 transition">
91
+ <div class="flex items-center">
92
+ <div class="p-2 rounded-full bg-indigo-100 text-indigo-600 mr-3">
93
+ <i class="fas fa-question-circle"></i>
94
+ </div>
95
+ <div>
96
+ <h3 class="font-medium">Create Quiz Questions</h3>
97
+ <p class="text-sm text-gray-500">Generate assessment questions</p>
98
+ </div>
99
+ </div>
100
+ </button>
101
+ <button class="card p-4 text-left hover:bg-indigo-50 transition">
102
+ <div class="flex items-center">
103
+ <div class="p-2 rounded-full bg-indigo-100 text-indigo-600 mr-3">
104
+ <i class="fas fa-lightbulb"></i>
105
+ </div>
106
+ <div>
107
+ <h3 class="font-medium">Teaching Strategies</h3>
108
+ <p class="text-sm text-gray-500">Get activity ideas</p>
109
+ </div>
110
+ </div>
111
+ </button>
112
+ </div>
113
+ </div>
114
+
115
+ <!-- Recent Activities -->
116
+ <div class="card p-6">
117
+ <h2 class="text-lg font-medium text-gray-900 mb-4">Recent Activities</h2>
118
+ <div class="space-y-4">
119
+ <div class="flex items-start">
120
+ <div class="p-2 rounded-full bg-gray-100 text-gray-600 mr-3">
121
+ <i class="fas fa-file-alt"></i>
122
+ </div>
123
+ <div class="flex-1">
124
+ <p class="font-medium">Generated lesson plan for "Introduction to Calculus"</p>
125
+ <p class="text-sm text-gray-500">2 hours ago</p>
126
+ </div>
127
+ </div>
128
+ <div class="flex items-start">
129
+ <div class="p-2 rounded-full bg-gray-100 text-gray-600 mr-3">
130
+ <i class="fas fa-question-circle"></i>
131
+ </div>
132
+ <div class="flex-1">
133
+ <p class="font-medium">Created 15 quiz questions for Biology Basics</p>
134
+ <p class="text-sm text-gray-500">1 day ago</p>
135
+ </div>
136
+ </div>
137
+ <div class="flex items-start">
138
+ <div class="p-2 rounded-full bg-gray-100 text-gray-600 mr-3">
139
+ <i class="fas fa-lightbulb"></i>
140
+ </div>
141
+ <div class="flex-1">
142
+ <p class="font-medium">Suggested 3 teaching strategies for engaging students</p>
143
+ <p class="text-sm text-gray-500">2 days ago</p>
144
+ </div>
145
+ </div>
146
+ </div>
147
+ </div>
148
+ </div>
149
+ </main>
150
+ </div>
151
+ </div>
152
+
153
+ <script src="components/sidebar.js"></script>
154
+ <script src="components/header.js"></script>
155
+ <script src="script.js"></script>
156
+ </body>
157
+ </html>
components/sidebar.js CHANGED
@@ -239,9 +239,9 @@ class CustomSidebar extends HTMLElement {
239
  <div class="menu-icon">
240
  <i class="fas fa-bolt"></i>
241
  </div>
242
- <div class="menu-text">AI Assistant</div>
243
  </div>
244
- <div class="menu-item">
245
  <div class="menu-icon">
246
  <i class="fas fa-cog"></i>
247
  </div>
 
239
  <div class="menu-icon">
240
  <i class="fas fa-bolt"></i>
241
  </div>
242
+ <a href="ai-assistant.html" class="menu-text">AI Assistant</a>
243
  </div>
244
+ <div class="menu-item">
245
  <div class="menu-icon">
246
  <i class="fas fa-cog"></i>
247
  </div>
script.js CHANGED
@@ -107,12 +107,71 @@ const searchInput = document.getElementById('search');
107
  }
108
  });
109
  // AI Assistant functionality
110
- document.querySelector('.ai-assistant-btn').addEventListener('click', function() {
111
- // This would open a modal or sidebar for AI assistant
112
- console.log('AI Assistant opened');
113
- // In a real implementation, this would trigger the AI assistant UI
114
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
115
 
 
 
 
 
116
  // Responsive adjustments
117
  window.addEventListener('resize', function() {
118
  // Add any responsive adjustments here
 
107
  }
108
  });
109
  // AI Assistant functionality
110
+ function initAIAssistant() {
111
+ const chatInput = document.querySelector('.ai-assistant input[type="text"]');
112
+ const sendBtn = document.querySelector('.ai-assistant button');
113
+
114
+ if (chatInput && sendBtn) {
115
+ sendBtn.addEventListener('click', function() {
116
+ const message = chatInput.value.trim();
117
+ if (message) {
118
+ addUserMessage(message);
119
+ chatInput.value = '';
120
+ // Simulate AI response after a short delay
121
+ setTimeout(() => {
122
+ addAIMessage("I'm your AI assistant. In a real implementation, this would be a response from the AI service.");
123
+ }, 1000);
124
+ }
125
+ });
126
+
127
+ chatInput.addEventListener('keypress', function(e) {
128
+ if (e.key === 'Enter') {
129
+ sendBtn.click();
130
+ }
131
+ });
132
+ }
133
+ }
134
+
135
+ function addUserMessage(message) {
136
+ const chatContainer = document.getElementById('chat-messages');
137
+ if (chatContainer) {
138
+ const messageDiv = document.createElement('div');
139
+ messageDiv.className = 'flex items-start justify-end';
140
+ messageDiv.innerHTML = `
141
+ <div class="bg-indigo-600 text-white rounded-lg p-4 max-w-3xl">
142
+ <p>${message}</p>
143
+ </div>
144
+ <div class="h-8 w-8 rounded-full bg-indigo-600 flex items-center justify-center text-white ml-3 flex-shrink-0">
145
+ <i class="fas fa-user"></i>
146
+ </div>
147
+ `;
148
+ chatContainer.appendChild(messageDiv);
149
+ chatContainer.scrollTop = chatContainer.scrollHeight;
150
+ }
151
+ }
152
+
153
+ function addAIMessage(message) {
154
+ const chatContainer = document.getElementById('chat-messages');
155
+ if (chatContainer) {
156
+ const messageDiv = document.createElement('div');
157
+ messageDiv.className = 'flex items-start';
158
+ messageDiv.innerHTML = `
159
+ <div class="h-8 w-8 rounded-full bg-indigo-100 flex items-center justify-center text-indigo-600 mr-3 flex-shrink-0">
160
+ <i class="fas fa-robot"></i>
161
+ </div>
162
+ <div class="bg-indigo-50 rounded-lg p-4 max-w-3xl">
163
+ <p class="text-gray-800">${message}</p>
164
+ </div>
165
+ `;
166
+ chatContainer.appendChild(messageDiv);
167
+ chatContainer.scrollTop = chatContainer.scrollHeight;
168
+ }
169
+ }
170
 
171
+ // Initialize the app when DOM is loaded
172
+ document.addEventListener('DOMContentLoaded', function() {
173
+ initSidebar();
174
+ initAIAssistant();
175
  // Responsive adjustments
176
  window.addEventListener('resize', function() {
177
  // Add any responsive adjustments here