+ `;
for (const [semKey, sem] of Object.entries(sub.semesters || {})) {
+ let unitIdx = 0;
for (const [unitKey, unit] of Object.entries(sem.units || {})) {
- html += `
+ `;
for (const les of (unit.lessons || [])) {
const activeClass = (les.file === currentFilePath) ? ' active' : '';
@@ -308,24 +389,19 @@ class CurriculumStudio
`;
}
+ html += `
`;
}
// Minhaji Style Categories
if (sem.resources && Object.keys(sem.resources).length > 0) {
- html += `
📂 مصادر المادة الإضافية:
`;
- html += `
`;
+ html += `
📂 مصادر المادة والكتب:
`;
+ html += `
`;
for (const [resKey, resourceGroup] of Object.entries(sem.resources)) {
if (!resourceGroup.items || resourceGroup.items.length === 0) continue;
-
- html += `
-
📌
-
${escapeHtml(resourceGroup.name)}
-
`;
-
for (const item of resourceGroup.items) {
const activeClass = (item.file === currentFilePath) ? ' active' : '';
html += `
-
+
📎 ${escapeHtml(item.title)}
`;
@@ -334,9 +410,9 @@ class CurriculumStudio
html += `
`;
}
}
+ html += `
`; // Close Subject Body
}
-
- html += `
`;
+ html += `
`; // Close Grade Body & Node
}
container.innerHTML = html;
@@ -382,182 +458,108 @@ class CurriculumStudio
if (data.server_full_path) {
document.getElementById('server_file_path_display').textContent = data.server_full_path;
}
+
+ // Load AI assets
+ if (data.ai_assets) {
+ document.getElementById('ai_video_url_input').value = data.ai_assets.ai_video_url || '';
+ document.getElementById('ai_cheat_sheet_editor').value = data.ai_assets.cheat_sheet || '';
+ document.getElementById('ai_socratic_quiz_editor').value = data.ai_assets.socratic_quiz ? JSON.stringify(data.ai_assets.socratic_quiz, null, 2) : '';
+
+ const player = document.getElementById('lesson_video_player');
+ if (data.ai_assets.ai_video_url) {
+ player.src = data.ai_assets.ai_video_url;
+ player.style.display = 'block';
+ } else {
+ player.src = '';
+ player.style.display = 'none';
+ }
+ } else {
+ document.getElementById('ai_video_url_input').value = '';
+ document.getElementById('ai_cheat_sheet_editor').value = '';
+ document.getElementById('ai_socratic_quiz_editor').value = '';
+ document.getElementById('lesson_video_player').style.display = 'none';
+ }
}
} catch (e) {
console.error('Fetch markdown error:', e);
}
}
- // ==========================================================
- // Live PDF Upload & Real-Time AI Extraction Tracking
- // ==========================================================
- async function handleRealPdfUpload(input) {
- if (!input.files || !input.files[0]) return;
+ async function handleDirectVideoUpload(input) {
+ if (!input.files || !input.files[0] || !currentFilePath) {
+ alert('يرجى اختيار ملف فيديو صالح.');
+ return;
+ }
const file = input.files[0];
-
- const btn = document.getElementById('btn_upload_pdf');
- btn.disabled = true;
-
- // Show Progress Modal Overlay
- const overlay = document.getElementById('upload_progress_overlay');
- overlay.style.display = 'flex';
- document.getElementById('btn_close_overlay').style.display = 'none';
- document.getElementById('upload_progress_bar').style.width = '8%';
- document.getElementById('upload_progress_text').textContent = `جاري رفع [${file.name}] إلى الخادم...`;
- document.getElementById('upload_progress_percent').textContent = '8%';
- document.getElementById('upload_logs_textarea').innerHTML = `[System] Uploading ${escapeHtml(file.name)} (${(file.size/1024/1024).toFixed(2)} MB)... `;
+ const statusSpan = document.getElementById('video_upload_status');
+ statusSpan.textContent = `جاري رفع الفيديو (${(file.size/1024/1024).toFixed(1)} MB)...`;
const formData = new FormData();
- formData.append('pdf_file', file);
+ formData.append('video_file', file);
+ formData.append('file', currentFilePath);
try {
- const res = await fetch('/api/curriculum/upload-pdf', {
+ const res = await fetch('/api/curriculum/upload-video', {
method: 'POST',
body: formData
});
const data = await res.json();
-
- if (res.ok && data.status === 'processing') {
- currentUploadTaskId = data.task_id;
- document.getElementById('upload_progress_bar').style.width = '15%';
- document.getElementById('upload_progress_text').textContent = data.message || 'تم استلام الملف، جاري بدء الذكاء الاصطناعي...';
- document.getElementById('upload_progress_percent').textContent = '15%';
- appendLog(`[Server] Task registered with ID: ${data.task_id}`);
- pollTaskStatus(data.task_id, file.name);
- } else if (res.ok && data.status === 'success') {
- overlay.style.display = 'none';
- resetUploadBtn();
- loadCurriculumTree();
+ if (res.ok && data.status === 'success') {
+ document.getElementById('ai_video_url_input').value = data.video_url;
+ const player = document.getElementById('lesson_video_player');
+ player.src = data.video_url;
+ player.style.display = 'block';
+ statusSpan.textContent = '✅ تم رفع الفيديو بنجاح!';
+ alert('✅ تم رفع وتثبيت الفيديو على سيرفر المنصة بنجاح!');
} else {
- document.getElementById('upload_progress_text').textContent = '⚠️ ' + (data.message || 'فشلت معالجة الملف');
- document.getElementById('btn_close_overlay').style.display = 'inline-block';
- resetUploadBtn();
+ statusSpan.textContent = '⚠️ فشل الرفع';
+ alert('⚠️ ' + (data.message || 'فشل رفع ملف الفيديو'));
}
- } catch (err) {
- console.error('PDF Upload error:', err);
- document.getElementById('upload_progress_text').textContent = 'حدث خطأ في الاتصال بالخادم أثناء رفع الملف.';
- document.getElementById('btn_close_overlay').style.display = 'inline-block';
- resetUploadBtn();
+ } catch(err) {
+ console.error(err);
+ statusSpan.textContent = '⚠️ خطأ بالاتصال';
+ alert('حدث خطأ أثناء رفع الفيديو.');
}
}
- async function pollTaskStatus(taskId, fileName) {
- try {
- const res = await fetch(`/api/curriculum/upload-status?task_id=${taskId}`);
- if (!res.ok) throw new Error("Network response was not ok");
- const state = await res.json();
-
- // Live Update Modal
- document.getElementById('upload_progress_bar').style.width = (state.progress || 20) + '%';
- document.getElementById('upload_progress_percent').textContent = (state.progress || 20) + '%';
- document.getElementById('upload_progress_text').textContent = state.message || "جاري المعالجة بالذكاء الاصطناعي...";
-
- fetchUploadLogs();
-
- if (state.status === 'completed') {
- document.getElementById('upload_progress_bar').style.width = '100%';
- document.getElementById('upload_progress_percent').textContent = '100%';
- document.getElementById('upload_progress_text').textContent = `✅ اكتملت قراءة وتفريغ المنهاج بنجاح!`;
-
- setTimeout(() => {
- document.getElementById('upload_progress_overlay').style.display = 'none';
- resetUploadBtn();
- if (state.tree) {
- window.CURRICULUM_TREE = state.tree;
- renderCurriculumTree(state.tree);
- if (state.active_file) {
- selectLesson(state.active_file, state.extracted_data?.subject_name || 'الدرس المستخرج', 'المنهاج المستخرج', []);
- }
- } else {
- location.reload();
- }
- }, 2000);
- } else if (state.status === 'error') {
- document.getElementById('upload_progress_text').textContent = '⚠️ فشل: ' + state.message;
- document.getElementById('btn_close_overlay').style.display = 'inline-block';
- resetUploadBtn();
- } else {
- // Poll again in 2.5 seconds
- setTimeout(() => pollTaskStatus(taskId, fileName), 2500);
- }
- } catch(e) {
- setTimeout(() => pollTaskStatus(taskId, fileName), 3000);
+ async function generateAiAssets() {
+ if (!currentFilePath) return;
+ const content = document.getElementById('lesson_markdown_editor').value;
+ if (!content) {
+ alert('يجب أن يحتوي الدرس على نص أولاً');
+ return;
}
- }
- async function fetchUploadLogs() {
- if (!currentUploadTaskId) return;
+ const btn = window.event.currentTarget;
+ const originalText = btn.innerHTML;
+ btn.innerHTML = '⏳ جاري التوليد الذكي...';
+ btn.disabled = true;
+
try {
- const res = await fetch(`/api/curriculum/upload-log?task_id=${currentUploadTaskId}`);
+ const res = await fetch('/api/curriculum/generate-ai-assets', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify({ file: currentFilePath })
+ });
const data = await res.json();
- const container = document.getElementById('upload_logs_textarea');
- if (data.status === 'success' && data.log) {
- container.innerHTML = data.log.replace(/\n/g, ' ');
- container.scrollTop = container.scrollHeight;
+
+ if (res.ok && data.status === 'success' && data.ai_assets) {
+ document.getElementById('ai_cheat_sheet_editor').value = data.ai_assets.cheat_sheet || '';
+ document.getElementById('ai_socratic_quiz_editor').value = data.ai_assets.socratic_quiz ? JSON.stringify(data.ai_assets.socratic_quiz, null, 2) : '';
+ alert('✅ تم توليد الملخص والفحص السقراطي بنجاح!');
+ } else {
+ alert('⚠️ ' + (data.message || 'فشل التوليد'));
}
} catch (e) {
- console.error('Fetch logs error:', e);
+ console.error(e);
+ alert('⚠️ حدث خطأ أثناء الاتصال بمحرك الذكاء الاصطناعي');
+ } finally {
+ btn.innerHTML = originalText;
+ btn.disabled = false;
}
}
- function appendLog(msg) {
- const container = document.getElementById('upload_logs_textarea');
- container.innerHTML += `${escapeHtml(msg)} `;
- container.scrollTop = container.scrollHeight;
- }
-
- function toggleUploadLogs() {
- const container = document.getElementById('upload_logs_container');
- container.style.display = (container.style.display === 'none') ? 'block' : 'none';
- if (container.style.display === 'block') {
- fetchUploadLogs();
- }
- }
-
- // ==========================================================
- // 3. Status Polling & Overlay
- // ==========================================================
- let pollInterval;
- function checkStatus() {
- pollInterval = setInterval(async () => {
- const res = await fetch('/api/curriculum/status');
- const state = await res.json();
-
- if (state.status === 'processing') {
- const pct = state.progress || 0;
- document.getElementById('upload_progress_fill').style.width = pct + '%';
- document.getElementById('upload_progress_text').textContent = state.message || 'جاري المعالجة...';
- } else if (state.status === 'done') {
- clearInterval(pollInterval);
- document.getElementById('upload_progress_fill').style.width = '100%';
- document.getElementById('upload_progress_text').textContent = '✅ اكتمل استخراج المنهاج بنجاح!';
- document.getElementById('btn_close_overlay').style.display = 'inline-block';
- resetUploadBtn();
-
- setTimeout(() => {
- if (state.extracted_data) {
- renderTree(state.extracted_data);
- if (state.active_file) {
- selectLesson(state.active_file, state.extracted_data?.subject_name || 'الدرس المستخرج', 'المنهاج المستخرج', []);
- }
- } else {
- location.reload();
- }
- }, 2000);
- } else if (state.status === 'error') {
- document.getElementById('upload_progress_text').textContent = '⚠️ فشل: ' + state.message;
- document.getElementById('btn_close_overlay').style.display = 'inline-block';
- resetUploadBtn();
- } else {
- clearInterval(pollInterval);
- }
- }, 1500);
- }
-
- // ==========================================================
- // 4. Save Content
- // ==========================================================
- async function saveLessonContent() {
+ async function saveActiveMarkdown() {
if (!currentFilePath) return;
const content = document.getElementById('lesson_markdown_editor').value;
@@ -586,66 +588,151 @@ class CurriculumStudio
});
const data = await res.json();
if (res.ok && data.status === 'success') {
- alert(`✅ تم حفظ واعتماد التعديلات بنجاح في الملف:\n${data.server_full_path || currentFilePath}`);
+ alert(`✅ تم حفظ واعتماد التعديلات بنجاح في المنهاج!`);
} else {
alert('⚠️ فشل حفظ الملف');
}
} catch (e) {
console.error(e);
- alert('⚠️ حدث خطأ في الاتصال');
+ alert('⚠️ حدث خطأ في الاتصال بالسيرفر');
}
}
- // ==========================================================
- // 5. Generate AI Assets automatically
- // ==========================================================
- async function generateAiAssets() {
- if (!currentFilePath) return;
- const content = document.getElementById('lesson_markdown_editor').value;
- if (!content) {
- alert('يجب أن يحتوي الدرس على نص أولاً');
+ function copyAiVideoPrompt() {
+ const md = document.getElementById('lesson_markdown_editor').value;
+ const title = document.getElementById('current_lesson_title_display').textContent;
+ if (!md || md.trim() === '') {
+ alert('يرجى اختيار درس أولاً.');
return;
}
+ const prompt = `أنت معلم خبير في المنهاج الأردني. بناءً على محتوى الدرس التالي:
+عنوان الدرس: ${title}
- const btn = window.event.currentTarget;
- const originalText = btn.innerHTML;
- btn.innerHTML = '⏳ جاري التوليد الذكي...';
+المحتوى التعليمي والتطبيقات:
+${md}
+
+المطلوب:
+1. توليد سيناريو شرح فيديو تفاعلي شيق وممتع للدرس (مدته 3-5 دقائق).
+2. شرح فكرة الدرس والمفاهيم الأساسية، والخطوات الجبرية للأمثلة بالتفصيل.
+3. التنبيه على الأخطاء الشائعة وحل مسألة اليوم أو مهارات التفكير العليا.`;
+
+ if (navigator.clipboard && window.isSecureContext) {
+ navigator.clipboard.writeText(prompt).then(() => {
+ alert('🎬 تم نسخ برومبت توليد الفيديو بنجاح! يمكنك الآن لصقه في NotebookLM أو منصة توليد الفيديو الذكية.');
+ }).catch(err => {
+ copyViaTextarea(prompt);
+ });
+ } else {
+ copyViaTextarea(prompt);
+ }
+ }
+
+ function copyViaTextarea(text) {
+ const t = document.createElement('textarea');
+ t.value = text;
+ document.body.appendChild(t);
+ t.select();
+ document.execCommand('copy');
+ document.body.removeChild(t);
+ alert('🎬 تم نسخ برومبت توليد الفيديو بنجاح!');
+ }
+
+ // Real PDF Upload
+ async function handleRealPdfUpload(input) {
+ if (!input.files || !input.files[0]) return;
+ const file = input.files[0];
+
+ const btn = document.getElementById('btn_upload_pdf');
btn.disabled = true;
+ const overlay = document.getElementById('upload_progress_overlay');
+ overlay.style.display = 'flex';
+ document.getElementById('btn_close_overlay').style.display = 'none';
+ document.getElementById('upload_progress_bar').style.width = '8%';
+ document.getElementById('upload_progress_text').textContent = `جاري رفع [${file.name}] إلى الخادم...`;
+ document.getElementById('upload_progress_percent').textContent = '8%';
+ document.getElementById('upload_logs_textarea').innerHTML = `[System] Uploading ${escapeHtml(file.name)} (${(file.size/1024/1024).toFixed(2)} MB)... `;
+
+ const formData = new FormData();
+ formData.append('pdf_file', file);
+
try {
- const res = await fetch('/api/curriculum/generate-ai-assets', {
+ const res = await fetch('/api/curriculum/upload-pdf', {
method: 'POST',
- headers: { 'Content-Type': 'application/json' },
- body: JSON.stringify({ file: currentFilePath })
+ body: formData
});
const data = await res.json();
-
- if (res.ok && data.status === 'success' && data.ai_assets) {
- document.getElementById('ai_cheat_sheet_editor').value = data.ai_assets.cheat_sheet || '';
- document.getElementById('ai_socratic_quiz_editor').value = data.ai_assets.socratic_quiz ? JSON.stringify(data.ai_assets.socratic_quiz, null, 2) : '';
- alert('✅ تم توليد الملخص والاختبار السقراطي بنجاح!');
+
+ if (res.ok && data.status === 'processing') {
+ currentUploadTaskId = data.task_id;
+ document.getElementById('upload_progress_bar').style.width = '15%';
+ document.getElementById('upload_progress_text').textContent = data.message || 'تم استلام الملف، جاري بدء الذكاء الاصطناعي...';
+ document.getElementById('upload_progress_percent').textContent = '15%';
+ pollTaskStatus(data.task_id, file.name);
+ } else if (res.ok && data.status === 'success') {
+ overlay.style.display = 'none';
+ resetUploadBtn();
+ loadCurriculumTree();
} else {
- alert('⚠️ فشل التوليد: ' + (data.message || 'خطأ غير معروف'));
+ document.getElementById('upload_progress_text').textContent = '⚠️ ' + (data.message || 'فشلت معالجة الملف');
+ document.getElementById('btn_close_overlay').style.display = 'inline-block';
+ resetUploadBtn();
}
- } catch (e) {
- console.error(e);
- alert('⚠️ حدث خطأ في الاتصال بمحرك الذكاء الاصطناعي');
- } finally {
- btn.innerHTML = originalText;
- btn.disabled = false;
+ } catch (err) {
+ console.error('PDF Upload error:', err);
+ document.getElementById('upload_progress_text').textContent = 'حدث خطأ في الاتصال بالخادم أثناء رفع الملف.';
+ document.getElementById('btn_close_overlay').style.display = 'inline-block';
+ resetUploadBtn();
}
}
+ async function pollTaskStatus(taskId, fileName) {
+ try {
+ const res = await fetch(`/api/curriculum/upload-status?task_id=${taskId}`);
+ if (!res.ok) throw new Error("Network response was not ok");
+ const state = await res.json();
+
+ const pBar = document.getElementById('upload_progress_bar');
+ const pText = document.getElementById('upload_progress_text');
+ const pPercent = document.getElementById('upload_progress_percent');
+
+ pBar.style.width = `${state.progress}%`;
+ pPercent.textContent = `${state.progress}%`;
+ pText.textContent = state.message || 'جاري المعالجة...';
+
+ if (state.status === 'completed') {
+ pBar.style.width = '100%';
+ pPercent.textContent = '100%';
+ pText.textContent = `🎉 تم تفريغ واعتماد [${fileName}] كمنهاج حي بنجاح!`;
+ document.getElementById('btn_close_overlay').style.display = 'inline-block';
+ resetUploadBtn();
+ setTimeout(() => {
+ document.getElementById('upload_progress_overlay').style.display = 'none';
+ window.location.reload();
+ }, 1200);
+ } else if (state.status === 'error') {
+ pText.textContent = '❌ ' + (state.message || 'تعطلت عملية التفريغ.');
+ document.getElementById('btn_close_overlay').style.display = 'inline-block';
+ resetUploadBtn();
+ } else {
+ setTimeout(() => pollTaskStatus(taskId, fileName), 2000);
+ }
+ } catch (err) {
+ console.error('Status poll error:', err);
+ setTimeout(() => pollTaskStatus(taskId, fileName), 3000);
+ }
+ }
+
+ function toggleUploadLogs() {
+ const el = document.getElementById('upload_logs_container');
+ el.style.display = (el.style.display === 'none') ? 'block' : 'none';
+ }
+
function openDirectLogViewer() {
const overlay = document.getElementById('upload_progress_overlay');
overlay.style.display = 'flex';
document.getElementById('btn_close_overlay').style.display = 'inline-block';
document.getElementById('upload_logs_container').style.display = 'block';
- if (currentUploadTaskId) {
- fetchUploadLogs();
- } else {
- document.getElementById('upload_logs_textarea').innerHTML = '[System] No active task ID yet. Upload a textbook PDF to stream live AI logs. ';
- }
}
function closeProgressOverlay() {
@@ -660,27 +747,6 @@ class CurriculumStudio
document.getElementById('curriculum_pdf_input').value = '';
}
- async function saveActiveMarkdown() {
- if (!currentFilePath) return;
- const content = document.getElementById('lesson_markdown_editor').value;
-
- try {
- const res = await fetch('/api/curriculum/save-lesson', {
- method: 'POST',
- headers: { 'Content-Type': 'application/json' },
- body: JSON.stringify({ file: currentFilePath, content: content })
- });
- const data = await res.json();
- if (res.ok && data.status === 'success') {
- alert(`✅ تم حفظ واعتماد التعديلات بنجاح في الملف:\n${data.server_full_path || currentFilePath}`);
- } else {
- alert('⚠️ فشل حفظ الملف');
- }
- } catch (e) {
- alert('تعذر الاتصال بالسيرفر');
- }
- }
-
function handleCurriculumSearch(q) {
if (!q || q.trim() === '') {
renderCurriculumTree(window.CURRICULUM_TREE);
@@ -723,45 +789,6 @@ class CurriculumStudio
renderCurriculumTree(filtered);
}
- function copyAiVideoPrompt() {
- const md = document.getElementById('lesson_markdown_editor').value;
- const title = document.getElementById('current_lesson_title').textContent;
- if (!md || md.trim() === '') {
- alert('يرجى اختيار درس أولاً.');
- return;
- }
- const prompt = `أنت معلم خبير في المنهاج الأردني. بناءً على محتوى الدرس التالي:
-عنوان الدرس: ${title}
-
-المحتوى التعليمي والتطبيقات:
-${md}
-
-المطلوب:
-1. توليد سيناريو شرح فيديو تفاعلي شيق وممتع للدرس (مدته 3-5 دقائق).
-2. شرح فكرة الدرس والمفاهيم الأساسية، والخطوات الجبرية للأمثلة بالتفصيل.
-3. التنبيه على الأخطاء الشائعة وحل مسألة اليوم أو مهارات التفكير العليا.`;
-
- if (navigator.clipboard && window.isSecureContext) {
- navigator.clipboard.writeText(prompt).then(() => {
- alert('🎬 تم نسخ برومبت توليد الفيديو بنجاح! يمكنك الآن لصقه في NotebookLM أو منصة توليد الفيديو الذكية.');
- }).catch(err => {
- copyViaTextarea(prompt);
- });
- } else {
- copyViaTextarea(prompt);
- }
- }
-
- function copyViaTextarea(text) {
- const t = document.createElement('textarea');
- t.value = text;
- document.body.appendChild(t);
- t.select();
- document.execCommand('copy');
- document.body.removeChild(t);
- alert('🎬 تم نسخ برومبت توليد الفيديو بنجاح!');
- }
-
function escapeHtml(str) {
if (!str) return '';
const d = document.createElement('div');
diff --git a/backend/public/index.php b/backend/public/index.php
index 3469dc5..3e80a42 100644
--- a/backend/public/index.php
+++ b/backend/public/index.php
@@ -63,6 +63,7 @@ $router->get('/api/curriculum/tree', [\App\Controllers\CurriculumControll
$router->get('/api/curriculum/lesson', [\App\Controllers\CurriculumController::class, 'getLessonContent']);
$router->post('/api/curriculum/save-lesson', [\App\Controllers\CurriculumController::class, 'saveLessonContent']);
$router->post('/api/curriculum/generate-ai-assets', [\App\Controllers\CurriculumController::class, 'generateAiAssets']);
+$router->post('/api/curriculum/upload-video', [\App\Controllers\CurriculumController::class, 'uploadLessonVideo']);
$router->get('/api/curriculum/search', function ($request, $response) {
$q = $request->getQueryParams()['q'] ?? '';
$response->json([
diff --git a/backend/scripts/ingest_physics_unit2.php b/backend/scripts/ingest_physics_unit2.php
new file mode 100644
index 0000000..5a41a8b
--- /dev/null
+++ b/backend/scripts/ingest_physics_unit2.php
@@ -0,0 +1,17 @@
+ 'الصف العاشر الأساسي (Grade 10)',
+ 'grade_key' => 'grade_10',
+ 'subject_name' => 'الفيزياء (Physics 10)',
+ 'subject_key' => 'physics_10',
+ 'semester_name' => 'الفصل الدراسي الأول',
+ 'semester_key' => 'semester_1'
+];
+
+$u2 = file_get_contents(__DIR__ . '/unit2_physics_full.md');
+$res = parseAndIngestTextbookMarkdown($u2, $metadata);
+echo "SUCCESS! Ingested Grade 10 Physics Unit 2 (Motion and Forces)!\n";
diff --git a/backend/scripts/unit2_physics_full.md b/backend/scripts/unit2_physics_full.md
new file mode 100644
index 0000000..418f0ae
--- /dev/null
+++ b/backend/scripts/unit2_physics_full.md
@@ -0,0 +1,178 @@
+# الوحدة الثانية: الحركة والقوى (Motion and Forces)
+*(الصفحات 33 - 85)*
+
+## مقدمة الوحدة والتجربة الاستهلالية: وصف الحركة بالمدرج الهوائي
+
+### الفكرة العامة ونتاجات التعلم للوحدة
+لدراسة حركة أي جسم، سواء أكان قريباً منا أم بعيداً في الفضاء، يتعين علينا وصف موقعه وسرعته وتسارعه والقوى المؤثرة فيه.
+
+### ظاهرة حركة كرات البلياردو (صفحة 33)
+- **هل الحركة منتظمة؟** لا، لأن كرات البلياردو تتعرض لتصادَمات واحتكاك مستمر يُغيّر مقدار سرعتها واتجاهها، مما يُكسبها تسارعاً متغيراً وتكون حركتها غير منتظمة.
+
+### التجربة الاستهلالية: وصف الحركة بالمدرج الهوائي (صفحة 35)
+- **السرعة المتوسطة:** $\bar{v} = \frac{\Delta x}{\Delta t}$.
+- **زيادة الكتلة المعلقة:** تزيد قوة السحب فيزداد التسارع وتقل المدة الزمنية وتزداد السرعة.
+- **التفكير الناقد:** إذا بدأ الجسم من السكون بتسارع ثابت، فإن السرعة النهائية ضعف السرعة المتوسطة: $v_f = 2\bar{v}$.
+
+---
+
+## الدرس 1: الحركة في بُعد واحد (Motion in One Dimension)
+*(الصفحات 36 - 56)*
+
+- **فكرة الدرس:** وصف الحركة المستقيمة باستخدام الموقع، الإزاحة، السرعة (القياسية والمتجهة)، التسارع، والتمثيل البياني، ومعادلات الحركة بتسارع ثابت، والسقوط الحر.
+
+### 1. الموقع والإزاحة والمسافة
+- **الموقع ($x$):** مكان وجود الجسم بالنسبة لنقطة إسناد مرجعية.
+- **الإزاحة ($\Delta x$):** $\Delta x = x_f - x_i$ (كمية متجهة).
+- **المسافة ($S$):** طول المسار الفعلي الكلي المقطوع (كمية قياسية موجبة دوماً).
+
+### 2. السرعة القياسية والمتجهة
+- السرعة القياسية المتوسطة: $v_s = \frac{S}{\Delta t}$.
+- السرعة المتجهة المتوسطة: $\bar{v} = \frac{\Delta x}{\Delta t}$.
+
+#### مثال 2 (حركة لعبة سيارة):
+- $x_1 = 2.0\text{ m}, x_2 = 6.8\text{ m}, x_3 = 5.6\text{ m}, \Delta t = 15\text{ s}$.
+- المسافة الكلية: $S = 4.8 + 1.2 = 6.0\text{ m} \implies v_s = \frac{6.0}{15} = 0.4\text{ m/s}$.
+- الإزاحة الكلية: $\Delta x = 5.6 - 2.0 = +3.6\text{ m} \implies \bar{v} = \frac{+3.6}{15} = +0.24\text{ m/s}$.
+
+### 3. التسارع والتمثيل البياني
+- التسارع المتوسط: $\bar{a} = \frac{\Delta v}{\Delta t} = \frac{v_f - v_i}{t_f - t_i}$.
+- ميل منحنى (الموقع - الزمن): يمثل **السرعة المتجهة**.
+- ميل منحنى (السرعة - الزمن): يمثل **التسارع**.
+- المساحة تحت منحنى (السرعة - الزمن): تمثل **الإزاحة الكلية**.
+
+### 4. معادلات الحركة بتسارع ثابت
+1. $v_f = v_i + a t$
+2. $\Delta x = v_i t + \frac{1}{2} a t^2$
+3. $v_f^2 = v_i^2 + 2 a \Delta x$
+
+#### مثال 8 (دراجة نسرين من السكون $a=5\text{ m/s}^2, t=6.4\text{ s}$):
+- $v_f = 0 + (5)(6.4) = 32\text{ m/s}$.
+- $\Delta x = \frac{1}{2}(5)(6.4)^2 = 102.4\text{ m}$.
+
+### 5. السقوط الحر (Free Fall)
+- حركة رأسية تحت تأثير الجاذبية فقط بتسارع $g = 9.8\text{ m/s}^2$ نحو الأسفل ($a = -g$).
+- عند أقصى ارتفاع: السرعة الرأسية اللحظية $v_{\text{top}} = 0$.
+
+### أسئلة مراجعة الدرس الأول (صفحة 56):
+1) الحركة المنتظمة: سرعة متجهة ثابتة وتسارع صفر.
+2) قطار بسرعة $12\text{ m/s}$ لمدة $80\text{ s} \implies \Delta x = 960\text{ m}$.
+3) تسارع الصندوق: $a = \frac{1.2 - 0}{3} = 0.4\text{ m/s}^2$.
+4) منحنى الحصان: $\Delta x_a = 20\text{ m}, \bar{v}_b = 0.5\text{ m/s}$.
+5) منحنى العداء: $v(30\text{ s}) = 15\text{ m/s}, a_b = -0.75\text{ m/s}^2, \Delta x_{\text{total}} = 525\text{ m}$.
+6) سقوط من ارتفاع $176.4\text{ m} \implies t = 6.0\text{ s}, v_f = 58.8\text{ m/s}$ لأسفل.
+7) سرعة لحظية عند $t=2.5\text{ s} \implies v = 1.0\text{ m/s}$.
+
+---
+
+## الدرس 2: الحركة في بُعدين (Motion in Two Dimensions)
+*(الصفحات 57 - 66)*
+
+- **فكرة الدرس:** حركة المقذوفات في مسار منحنٍ، والحركة الدائرية المنتظمة.
+
+### 1. حركة المقذوفات (Projectiles)
+- **الحركة الأفقية ($x$):** سرعة ثابتة وتسارع صفر ($a_x = 0$): $v_x = v_0 \cos \theta, \Delta x = v_x t$.
+- **الحركة الرأسية ($y$):** تسارع سقوط حر ($a_y = -g$): $v_{0y} = v_0 \sin \theta, v_y = v_{0y} - g t$.
+- **القوانين الأساسية:**
+ - زمن الصعود: $t_h = \frac{v_0 \sin \theta}{g}$
+ - زمن التحليق: $T = 2 t_h = \frac{2 v_0 \sin \theta}{g}$
+ - أقصى ارتفاع: $h = \frac{(v_0 \sin \theta)^2}{2g}$
+ - المدى الأفقي: $R = \frac{v_0^2 \sin(2\theta)}{g}$ (أقصى مدى عند $\theta = 45^\circ$).
+
+#### مثال 12 (ركل كرة بسرعة $22.5\text{ m/s}$ وزاوية $53^\circ$):
+- $v_{0x} = 13.5\text{ m/s}, v_{0y} = 18.0\text{ m/s}$.
+- $h = \frac{18^2}{19.6} \approx 16.5\text{ m}, T = \frac{2(18)}{9.8} \approx 3.68\text{ s}, R = (13.5)(3.68) \approx 49.7\text{ m}$.
+
+### 2. الحركة الدائرية المنتظمة (Uniform Circular Motion)
+- سرعة قياسية مماسية ثابتة المقدار: $v_s = \frac{2\pi r}{T}$.
+- تسارع مركزي باتجاه مركز الدائرة: $a_c = \frac{v_s^2}{r} = \frac{4\pi^2 r}{T^2}$.
+
+#### مثال 14 (قمر صناعي حول الأرض):
+- $r = 8.42 \times 10^6\text{ m}, T = 7740\text{ s} \implies v_s \approx 6832\text{ m/s}, a_c \approx 5.54\text{ m/s}^2$.
+
+### أسئلة مراجعة الدرس الثاني (صفحة 66):
+1) أهمية التحليل: دراسة الحركة كحركتين مستقلتين في بعد واحد.
+2) أمثلة: المقذوفات (كرة السلة، المدفع)، الدائرية المنتظمة (عقارب الساعة، مدار الأقمار الصناعية).
+3) سبب وجود تسارع مركزي: تغير اتجاه السرعة نحو المركز.
+4) مقارنة المركبات الأفقية والرأسية (الإزاحة، السرعة، التسارع).
+5) قذف كرة بزاوية $30^\circ$ وبسرعة $15.8\text{ m/s} \implies T \approx 1.61\text{ s}, h \approx 3.18\text{ m}$.
+6) قذف أفقي من ارتفاع $44.1\text{ m} \implies t = 3.0\text{ s}, R = 36\text{ m}$.
+7) كتلة بخيط $r=0.8\text{ m}, T=1.0\text{ s} \implies v \approx 5.03\text{ m/s}, a_c \approx 31.6\text{ m/s}^2$.
+
+---
+
+## الدرس 3: قوانين الحركة لنيوتن (Newton's Laws of Motion)
+*(الصفحات 67 - 81)*
+
+- **فكرة الدرس:** القصور الذاتي وقانون نيوتن الأول، القانون الثاني $\sum \vec{F} = m \vec{a}$، القانون الثالث (الفعل ورد الفعل $\vec{F}_{AB} = -\vec{F}_{BA}$)، وقانون الجذب العام.
+
+### 1. القانون الأول لنيوتن والقصور الذاتي
+- الجسم الساكن يبقى ساكناً، والمتحرك بسرعة ثابتة يستمر بحركته ما لم تؤثر فيه قوة محصلة ($\sum \vec{F} = \vec{0} \iff \vec{a} = \vec{0}$).
+- **الكتلة ($m$):** المقياس الكمي للقصور الذاتي.
+
+### 2. القانون الثاني لنيوتن
+- $\sum \vec{F} = m \vec{a}$، و $1\text{ N} = 1\text{ kg}\cdot\text{m/s}^2$.
+- مثال 17 (سحب سيارة $800\text{ kg}$ بقوة $1000\text{ N}$ واحتكاك $400\text{ N}$):
+ $$\sum F = 600\text{ N} \implies a = \frac{600}{800} = 0.75\text{ m/s}^2 \implies v(10\text{ s}) = 7.5\text{ m/s}$$
+
+### 3. القانون الثالث لنيوتن
+- لكل فعل رد فعل مساوٍ له في المقدار ومعاكس له في الاتجاه ($\vec{F}_{AB} = -\vec{F}_{BA}$).
+- تؤثران في جسمين مختلفين لذا لا تُلغي إحداهما الأخرى ولا تُحسب محصلتهما.
+
+### 4. قانون الجذب العام لنيوتن
+- $F = G \frac{m_1 m_2}{r^2}$ حيث $G = 6.67 \times 10^{-11}\text{ N}\cdot\text{m}^2/\text{kg}^2$.
+- تسارع الجاذبية على سطح الكوكب: $g = G \frac{M}{R^2}$.
+- مثال 19: تسارع الجاذبية على سطح القمر $g_M \approx 1.62\text{ m/s}^2$.
+
+### أسئلة مراجعة الدرس الثالث (صفحة 81):
+1) اتزان الجسم عندما $\sum \vec{F} = 0$، وأزواج القوى المتبادلة.
+2) سيارة بسرعة ثابتة وقوة محرك $6000\text{ N} \implies$ القوة المعيقة $6000\text{ N}$ للخلف.
+3) عربة تسوق $40\text{ kg} \implies \sum F = 80\text{ N}$؛ وبكتلة $60\text{ kg}$ واحتكاك $30\text{ N} \implies F_{\text{push}} = 150\text{ N}$.
+4) مناقشة قول يوسف: غير صحيح، فالجسم يستمر بحركته بفضل قصوره الذاتي دون الحاجة لقوة محصلة.
+5) تغير قوة الجذب: عند $2r \implies \frac{1}{4}F$؛ عند $2m_1 \implies 2F$؛ عند مضاعفة الكتلتين $\implies 4F$.
+6) تفكير ناقد: تحليل نظام الأرض والكرة بقوانين نيوتن الثلاثة والجذب العام.
+
+---
+
+## الإثراء والتوسع: حزام الأمان في السيارة (Seat Belts)
+*(صفحة 82)*
+
+- **الأساس الفيزيائي:**
+ 1. **القصور الذاتي:** يمنع اندفاع الركاب للأمام عند التوقف المفاجئ والاصطدام.
+ 2. **آلية القفل التلقائي:** كتلة معلقة أو ساق منزلقة تتحرك بالقصور الذاتي أثناء التباطؤ الكبير وتُعشّق ترساً يمنع دوران البكرة ويثبّت الراكب بأمان.
+
+---
+
+## اختبار ومراجعة الوحدة الثانية: الحركة والقوى
+*(الصفحات 83 - 86)*
+
+### أسئلة الاختيار من متعدد:
+1. التغير في الموقع: **جـ. الإزاحة**.
+2. المسافة الكلية / الزمن الكلي: **أ. السرعة القياسية المتوسطة**.
+3. عند أقصى ارتفاع للمقذوف الرأسي: **د. سرعته تساوي صفراً**.
+4. حركة المقذوف: **أ. التسارع الأفقي صفر، والرأسي $g$**.
+5. الإزاحة الأفقية عند العودة لنفس المستوى: **ب. المدى الأفقي**.
+6. انسكاب العصير عند الفرملة: **أ. من الجهة $A$ (نحو الأمام بالقصور الذاتي)**.
+7. ممانعة تغيير الحالة الحركية: **د. القصور الذاتي**.
+8. نقصان القوة للنصف مع ثبات الكتلة: **جـ. يقل التسارع بمقدار النصف**.
+9. الوزن على القمر أقل من الأرض: **أ. لأن كتلة القمر أقل من كتلة الأرض**.
+10. نقصان البعد إلى $0.8d \implies$ **د. $\frac{F}{0.64}$**.
+
+### حل المسائل الحسابية والتفكير الناقد:
+- **سؤال 3 (دراجة هوائية):** $v_s = 36\text{ km/h} (10\text{ m/s})$، و $\bar{v} \approx 25.7\text{ km/h}$ بزاوية $37^\circ$ شمال الشرق.
+- **سؤال 4 (طول مدرج الطائرات):** $\Delta x = \frac{60^2}{2(2.4)} = 750\text{ m}$.
+- **سؤال 5 (زمن أقصى ارتفاع):** $t_h = \frac{98}{9.8} = 10\text{ s}$.
+- **سؤال 6 (تغير الزاوية إلى $45^\circ$):** يزداد المدى الأفقي بنسبة $15.5\%$ ليصل قيمته العظمى.
+- **سؤال 8 (عربتان):** العربة $B$ تؤثر فيها قوة أكبر لأن كتلتها أكبر وتسارعهما متساوٍ ($a_A = a_B$).
+- **سؤال 9 (فرملة سيارة $1000\text{ kg}$):** $a = -6\text{ m/s}^2 \implies \sum F = 6000\text{ N}$ بعكس اتجاه الحركة.
+- **سؤال 10 (قارب $200\text{ kg}$):** $R_x = 300\text{ N}, R_y = 0 \implies R = 300\text{ N} (+x), a_x = 1.5\text{ m/s}^2$.
+- **سؤال 11 (وزن على المشتري):** $g_J \approx 24.79\text{ m/s}^2 \implies F_g \approx 1487.4\text{ N}$.
+- **سؤال 12 (نقطة التعادل بين الأرض والقمر):** تبعد $3.6 \times 10^8\text{ m}$ عن مركز الأرض.
+- **سؤال 13 (منحنى $v-t$):** $v(1\text{ s}) = 1.0\text{ m/s}$، أكبر تسارع بالمرحلة $CD$ ($2.0\text{ m/s}^2$)، مسافة المرحلة $DE$ $= 1200\text{ m}$.
+
+### أسئلة الاختبارات الدولية (كتاب الأنشطة - صفحات 33 - 35):
+1. سقوط الريشة والمطرقة: **ب. مقاومة الهواء في الأرض أثرت على الريشة، ولا يوجد هواء على القمر**.
+2. حركة الدراجة: **د. المسافة $100\text{ m}$ والإزاحة $20\text{ m}$**.
+3. هبوط طائرة $8\times 10^4\text{ kg}$: $a \approx -2.33\text{ m/s}^2, \sum F \approx 1.87 \times 10^5\text{ N}, \Delta x = 1050\text{ m}$.
+4. صاروخ $2\times 10^4\text{ kg}$: $\sum F = 2.04 \times 10^5\text{ N}, a = 10.2\text{ m/s}^2$ للأعلى.
+5. كتلة بالميزان النابضي: $\sum F = 0$ بالسرعة الثابتة، و $\sum F = 0.03\text{ N}$ عند التسارع $0.5\text{ m/s}^2$.
diff --git a/backend/storage/curriculum/grade_10/physics_10/semester_1/unit_02/enrichment_and_expansion.md b/backend/storage/curriculum/grade_10/physics_10/semester_1/unit_02/enrichment_and_expansion.md
new file mode 100644
index 0000000..5180ffa
--- /dev/null
+++ b/backend/storage/curriculum/grade_10/physics_10/semester_1/unit_02/enrichment_and_expansion.md
@@ -0,0 +1,8 @@
+## الإثراء والتوسع: حزام الأمان في السيارة (Seat Belts)
+*(صفحة 82)*
+
+- **الأساس الفيزيائي:**
+ 1. **القصور الذاتي:** يمنع اندفاع الركاب للأمام عند التوقف المفاجئ والاصطدام.
+ 2. **آلية القفل التلقائي:** كتلة معلقة أو ساق منزلقة تتحرك بالقصور الذاتي أثناء التباطؤ الكبير وتُعشّق ترساً يمنع دوران البكرة ويثبّت الراكب بأمان.
+
+---
\ No newline at end of file
diff --git a/backend/storage/curriculum/grade_10/physics_10/semester_1/unit_02/intro_and_project.md b/backend/storage/curriculum/grade_10/physics_10/semester_1/unit_02/intro_and_project.md
new file mode 100644
index 0000000..34d6c86
--- /dev/null
+++ b/backend/storage/curriculum/grade_10/physics_10/semester_1/unit_02/intro_and_project.md
@@ -0,0 +1,14 @@
+## مقدمة الوحدة والتجربة الاستهلالية: وصف الحركة بالمدرج الهوائي
+
+### الفكرة العامة ونتاجات التعلم للوحدة
+لدراسة حركة أي جسم، سواء أكان قريباً منا أم بعيداً في الفضاء، يتعين علينا وصف موقعه وسرعته وتسارعه والقوى المؤثرة فيه.
+
+### ظاهرة حركة كرات البلياردو (صفحة 33)
+- **هل الحركة منتظمة؟** لا، لأن كرات البلياردو تتعرض لتصادَمات واحتكاك مستمر يُغيّر مقدار سرعتها واتجاهها، مما يُكسبها تسارعاً متغيراً وتكون حركتها غير منتظمة.
+
+### التجربة الاستهلالية: وصف الحركة بالمدرج الهوائي (صفحة 35)
+- **السرعة المتوسطة:** $\bar{v} = \frac{\Delta x}{\Delta t}$.
+- **زيادة الكتلة المعلقة:** تزيد قوة السحب فيزداد التسارع وتقل المدة الزمنية وتزداد السرعة.
+- **التفكير الناقد:** إذا بدأ الجسم من السكون بتسارع ثابت، فإن السرعة النهائية ضعف السرعة المتوسطة: $v_f = 2\bar{v}$.
+
+---
\ No newline at end of file
diff --git a/backend/storage/curriculum/grade_10/physics_10/semester_1/unit_02/lesson_01.md b/backend/storage/curriculum/grade_10/physics_10/semester_1/unit_02/lesson_01.md
new file mode 100644
index 0000000..4e570e5
--- /dev/null
+++ b/backend/storage/curriculum/grade_10/physics_10/semester_1/unit_02/lesson_01.md
@@ -0,0 +1,48 @@
+## الدرس 1: الحركة في بُعد واحد (Motion in One Dimension)
+*(الصفحات 36 - 56)*
+
+- **فكرة الدرس:** وصف الحركة المستقيمة باستخدام الموقع، الإزاحة، السرعة (القياسية والمتجهة)، التسارع، والتمثيل البياني، ومعادلات الحركة بتسارع ثابت، والسقوط الحر.
+
+### 1. الموقع والإزاحة والمسافة
+- **الموقع ($x$):** مكان وجود الجسم بالنسبة لنقطة إسناد مرجعية.
+- **الإزاحة ($\Delta x$):** $\Delta x = x_f - x_i$ (كمية متجهة).
+- **المسافة ($S$):** طول المسار الفعلي الكلي المقطوع (كمية قياسية موجبة دوماً).
+
+### 2. السرعة القياسية والمتجهة
+- السرعة القياسية المتوسطة: $v_s = \frac{S}{\Delta t}$.
+- السرعة المتجهة المتوسطة: $\bar{v} = \frac{\Delta x}{\Delta t}$.
+
+#### مثال 2 (حركة لعبة سيارة):
+- $x_1 = 2.0\text{ m}, x_2 = 6.8\text{ m}, x_3 = 5.6\text{ m}, \Delta t = 15\text{ s}$.
+- المسافة الكلية: $S = 4.8 + 1.2 = 6.0\text{ m} \implies v_s = \frac{6.0}{15} = 0.4\text{ m/s}$.
+- الإزاحة الكلية: $\Delta x = 5.6 - 2.0 = +3.6\text{ m} \implies \bar{v} = \frac{+3.6}{15} = +0.24\text{ m/s}$.
+
+### 3. التسارع والتمثيل البياني
+- التسارع المتوسط: $\bar{a} = \frac{\Delta v}{\Delta t} = \frac{v_f - v_i}{t_f - t_i}$.
+- ميل منحنى (الموقع - الزمن): يمثل **السرعة المتجهة**.
+- ميل منحنى (السرعة - الزمن): يمثل **التسارع**.
+- المساحة تحت منحنى (السرعة - الزمن): تمثل **الإزاحة الكلية**.
+
+### 4. معادلات الحركة بتسارع ثابت
+1. $v_f = v_i + a t$
+2. $\Delta x = v_i t + \frac{1}{2} a t^2$
+3. $v_f^2 = v_i^2 + 2 a \Delta x$
+
+#### مثال 8 (دراجة نسرين من السكون $a=5\text{ m/s}^2, t=6.4\text{ s}$):
+- $v_f = 0 + (5)(6.4) = 32\text{ m/s}$.
+- $\Delta x = \frac{1}{2}(5)(6.4)^2 = 102.4\text{ m}$.
+
+### 5. السقوط الحر (Free Fall)
+- حركة رأسية تحت تأثير الجاذبية فقط بتسارع $g = 9.8\text{ m/s}^2$ نحو الأسفل ($a = -g$).
+- عند أقصى ارتفاع: السرعة الرأسية اللحظية $v_{\text{top}} = 0$.
+
+### أسئلة مراجعة الدرس الأول (صفحة 56):
+1) الحركة المنتظمة: سرعة متجهة ثابتة وتسارع صفر.
+2) قطار بسرعة $12\text{ m/s}$ لمدة $80\text{ s} \implies \Delta x = 960\text{ m}$.
+3) تسارع الصندوق: $a = \frac{1.2 - 0}{3} = 0.4\text{ m/s}^2$.
+4) منحنى الحصان: $\Delta x_a = 20\text{ m}, \bar{v}_b = 0.5\text{ m/s}$.
+5) منحنى العداء: $v(30\text{ s}) = 15\text{ m/s}, a_b = -0.75\text{ m/s}^2, \Delta x_{\text{total}} = 525\text{ m}$.
+6) سقوط من ارتفاع $176.4\text{ m} \implies t = 6.0\text{ s}, v_f = 58.8\text{ m/s}$ لأسفل.
+7) سرعة لحظية عند $t=2.5\text{ s} \implies v = 1.0\text{ m/s}$.
+
+---
\ No newline at end of file
diff --git a/backend/storage/curriculum/grade_10/physics_10/semester_1/unit_02/lesson_02.md b/backend/storage/curriculum/grade_10/physics_10/semester_1/unit_02/lesson_02.md
new file mode 100644
index 0000000..d885e54
--- /dev/null
+++ b/backend/storage/curriculum/grade_10/physics_10/semester_1/unit_02/lesson_02.md
@@ -0,0 +1,35 @@
+## الدرس 2: الحركة في بُعدين (Motion in Two Dimensions)
+*(الصفحات 57 - 66)*
+
+- **فكرة الدرس:** حركة المقذوفات في مسار منحنٍ، والحركة الدائرية المنتظمة.
+
+### 1. حركة المقذوفات (Projectiles)
+- **الحركة الأفقية ($x$):** سرعة ثابتة وتسارع صفر ($a_x = 0$): $v_x = v_0 \cos \theta, \Delta x = v_x t$.
+- **الحركة الرأسية ($y$):** تسارع سقوط حر ($a_y = -g$): $v_{0y} = v_0 \sin \theta, v_y = v_{0y} - g t$.
+- **القوانين الأساسية:**
+ - زمن الصعود: $t_h = \frac{v_0 \sin \theta}{g}$
+ - زمن التحليق: $T = 2 t_h = \frac{2 v_0 \sin \theta}{g}$
+ - أقصى ارتفاع: $h = \frac{(v_0 \sin \theta)^2}{2g}$
+ - المدى الأفقي: $R = \frac{v_0^2 \sin(2\theta)}{g}$ (أقصى مدى عند $\theta = 45^\circ$).
+
+#### مثال 12 (ركل كرة بسرعة $22.5\text{ m/s}$ وزاوية $53^\circ$):
+- $v_{0x} = 13.5\text{ m/s}, v_{0y} = 18.0\text{ m/s}$.
+- $h = \frac{18^2}{19.6} \approx 16.5\text{ m}, T = \frac{2(18)}{9.8} \approx 3.68\text{ s}, R = (13.5)(3.68) \approx 49.7\text{ m}$.
+
+### 2. الحركة الدائرية المنتظمة (Uniform Circular Motion)
+- سرعة قياسية مماسية ثابتة المقدار: $v_s = \frac{2\pi r}{T}$.
+- تسارع مركزي باتجاه مركز الدائرة: $a_c = \frac{v_s^2}{r} = \frac{4\pi^2 r}{T^2}$.
+
+#### مثال 14 (قمر صناعي حول الأرض):
+- $r = 8.42 \times 10^6\text{ m}, T = 7740\text{ s} \implies v_s \approx 6832\text{ m/s}, a_c \approx 5.54\text{ m/s}^2$.
+
+### أسئلة مراجعة الدرس الثاني (صفحة 66):
+1) أهمية التحليل: دراسة الحركة كحركتين مستقلتين في بعد واحد.
+2) أمثلة: المقذوفات (كرة السلة، المدفع)، الدائرية المنتظمة (عقارب الساعة، مدار الأقمار الصناعية).
+3) سبب وجود تسارع مركزي: تغير اتجاه السرعة نحو المركز.
+4) مقارنة المركبات الأفقية والرأسية (الإزاحة، السرعة، التسارع).
+5) قذف كرة بزاوية $30^\circ$ وبسرعة $15.8\text{ m/s} \implies T \approx 1.61\text{ s}, h \approx 3.18\text{ m}$.
+6) قذف أفقي من ارتفاع $44.1\text{ m} \implies t = 3.0\text{ s}, R = 36\text{ m}$.
+7) كتلة بخيط $r=0.8\text{ m}, T=1.0\text{ s} \implies v \approx 5.03\text{ m/s}, a_c \approx 31.6\text{ m/s}^2$.
+
+---
\ No newline at end of file
diff --git a/backend/storage/curriculum/grade_10/physics_10/semester_1/unit_02/lesson_03.md b/backend/storage/curriculum/grade_10/physics_10/semester_1/unit_02/lesson_03.md
new file mode 100644
index 0000000..215e6f2
--- /dev/null
+++ b/backend/storage/curriculum/grade_10/physics_10/semester_1/unit_02/lesson_03.md
@@ -0,0 +1,32 @@
+## الدرس 3: قوانين الحركة لنيوتن (Newton's Laws of Motion)
+*(الصفحات 67 - 81)*
+
+- **فكرة الدرس:** القصور الذاتي وقانون نيوتن الأول، القانون الثاني $\sum \vec{F} = m \vec{a}$، القانون الثالث (الفعل ورد الفعل $\vec{F}_{AB} = -\vec{F}_{BA}$)، وقانون الجذب العام.
+
+### 1. القانون الأول لنيوتن والقصور الذاتي
+- الجسم الساكن يبقى ساكناً، والمتحرك بسرعة ثابتة يستمر بحركته ما لم تؤثر فيه قوة محصلة ($\sum \vec{F} = \vec{0} \iff \vec{a} = \vec{0}$).
+- **الكتلة ($m$):** المقياس الكمي للقصور الذاتي.
+
+### 2. القانون الثاني لنيوتن
+- $\sum \vec{F} = m \vec{a}$، و $1\text{ N} = 1\text{ kg}\cdot\text{m/s}^2$.
+- مثال 17 (سحب سيارة $800\text{ kg}$ بقوة $1000\text{ N}$ واحتكاك $400\text{ N}$):
+ $$\sum F = 600\text{ N} \implies a = \frac{600}{800} = 0.75\text{ m/s}^2 \implies v(10\text{ s}) = 7.5\text{ m/s}$$
+
+### 3. القانون الثالث لنيوتن
+- لكل فعل رد فعل مساوٍ له في المقدار ومعاكس له في الاتجاه ($\vec{F}_{AB} = -\vec{F}_{BA}$).
+- تؤثران في جسمين مختلفين لذا لا تُلغي إحداهما الأخرى ولا تُحسب محصلتهما.
+
+### 4. قانون الجذب العام لنيوتن
+- $F = G \frac{m_1 m_2}{r^2}$ حيث $G = 6.67 \times 10^{-11}\text{ N}\cdot\text{m}^2/\text{kg}^2$.
+- تسارع الجاذبية على سطح الكوكب: $g = G \frac{M}{R^2}$.
+- مثال 19: تسارع الجاذبية على سطح القمر $g_M \approx 1.62\text{ m/s}^2$.
+
+### أسئلة مراجعة الدرس الثالث (صفحة 81):
+1) اتزان الجسم عندما $\sum \vec{F} = 0$، وأزواج القوى المتبادلة.
+2) سيارة بسرعة ثابتة وقوة محرك $6000\text{ N} \implies$ القوة المعيقة $6000\text{ N}$ للخلف.
+3) عربة تسوق $40\text{ kg} \implies \sum F = 80\text{ N}$؛ وبكتلة $60\text{ kg}$ واحتكاك $30\text{ N} \implies F_{\text{push}} = 150\text{ N}$.
+4) مناقشة قول يوسف: غير صحيح، فالجسم يستمر بحركته بفضل قصوره الذاتي دون الحاجة لقوة محصلة.
+5) تغير قوة الجذب: عند $2r \implies \frac{1}{4}F$؛ عند $2m_1 \implies 2F$؛ عند مضاعفة الكتلتين $\implies 4F$.
+6) تفكير ناقد: تحليل نظام الأرض والكرة بقوانين نيوتن الثلاثة والجذب العام.
+
+---
\ No newline at end of file
diff --git a/backend/storage/curriculum/grade_10/physics_10/semester_1/unit_02/unit_exam.md b/backend/storage/curriculum/grade_10/physics_10/semester_1/unit_02/unit_exam.md
new file mode 100644
index 0000000..a437311
--- /dev/null
+++ b/backend/storage/curriculum/grade_10/physics_10/semester_1/unit_02/unit_exam.md
@@ -0,0 +1,33 @@
+## اختبار ومراجعة الوحدة الثانية: الحركة والقوى
+*(الصفحات 83 - 86)*
+
+### أسئلة الاختيار من متعدد:
+1. التغير في الموقع: **جـ. الإزاحة**.
+2. المسافة الكلية / الزمن الكلي: **أ. السرعة القياسية المتوسطة**.
+3. عند أقصى ارتفاع للمقذوف الرأسي: **د. سرعته تساوي صفراً**.
+4. حركة المقذوف: **أ. التسارع الأفقي صفر، والرأسي $g$**.
+5. الإزاحة الأفقية عند العودة لنفس المستوى: **ب. المدى الأفقي**.
+6. انسكاب العصير عند الفرملة: **أ. من الجهة $A$ (نحو الأمام بالقصور الذاتي)**.
+7. ممانعة تغيير الحالة الحركية: **د. القصور الذاتي**.
+8. نقصان القوة للنصف مع ثبات الكتلة: **جـ. يقل التسارع بمقدار النصف**.
+9. الوزن على القمر أقل من الأرض: **أ. لأن كتلة القمر أقل من كتلة الأرض**.
+10. نقصان البعد إلى $0.8d \implies$ **د. $\frac{F}{0.64}$**.
+
+### حل المسائل الحسابية والتفكير الناقد:
+- **سؤال 3 (دراجة هوائية):** $v_s = 36\text{ km/h} (10\text{ m/s})$، و $\bar{v} \approx 25.7\text{ km/h}$ بزاوية $37^\circ$ شمال الشرق.
+- **سؤال 4 (طول مدرج الطائرات):** $\Delta x = \frac{60^2}{2(2.4)} = 750\text{ m}$.
+- **سؤال 5 (زمن أقصى ارتفاع):** $t_h = \frac{98}{9.8} = 10\text{ s}$.
+- **سؤال 6 (تغير الزاوية إلى $45^\circ$):** يزداد المدى الأفقي بنسبة $15.5\%$ ليصل قيمته العظمى.
+- **سؤال 8 (عربتان):** العربة $B$ تؤثر فيها قوة أكبر لأن كتلتها أكبر وتسارعهما متساوٍ ($a_A = a_B$).
+- **سؤال 9 (فرملة سيارة $1000\text{ kg}$):** $a = -6\text{ m/s}^2 \implies \sum F = 6000\text{ N}$ بعكس اتجاه الحركة.
+- **سؤال 10 (قارب $200\text{ kg}$):** $R_x = 300\text{ N}, R_y = 0 \implies R = 300\text{ N} (+x), a_x = 1.5\text{ m/s}^2$.
+- **سؤال 11 (وزن على المشتري):** $g_J \approx 24.79\text{ m/s}^2 \implies F_g \approx 1487.4\text{ N}$.
+- **سؤال 12 (نقطة التعادل بين الأرض والقمر):** تبعد $3.6 \times 10^8\text{ m}$ عن مركز الأرض.
+- **سؤال 13 (منحنى $v-t$):** $v(1\text{ s}) = 1.0\text{ m/s}$، أكبر تسارع بالمرحلة $CD$ ($2.0\text{ m/s}^2$)، مسافة المرحلة $DE$ $= 1200\text{ m}$.
+
+### أسئلة الاختبارات الدولية (كتاب الأنشطة - صفحات 33 - 35):
+1. سقوط الريشة والمطرقة: **ب. مقاومة الهواء في الأرض أثرت على الريشة، ولا يوجد هواء على القمر**.
+2. حركة الدراجة: **د. المسافة $100\text{ m}$ والإزاحة $20\text{ m}$**.
+3. هبوط طائرة $8\times 10^4\text{ kg}$: $a \approx -2.33\text{ m/s}^2, \sum F \approx 1.87 \times 10^5\text{ N}, \Delta x = 1050\text{ m}$.
+4. صاروخ $2\times 10^4\text{ kg}$: $\sum F = 2.04 \times 10^5\text{ N}, a = 10.2\text{ m/s}^2$ للأعلى.
+5. كتلة بالميزان النابضي: $\sum F = 0$ بالسرعة الثابتة، و $\sum F = 0.03\text{ N}$ عند التسارع $0.5\text{ m/s}^2$.
\ No newline at end of file
diff --git a/backend/storage/curriculum/manifest.json b/backend/storage/curriculum/manifest.json
index ff878df..873b1b8 100644
--- a/backend/storage/curriculum/manifest.json
+++ b/backend/storage/curriculum/manifest.json
@@ -571,8 +571,57 @@
]
},
"unit_02": {
- "name": "الوحدة الثانية: الحركة والقوة (Motion and Forces) — (الصفحات 33 - 85)",
- "lessons": []
+ "name": "الوحدة الثانية: الحركة والقوى (Motion and Forces)",
+ "lessons": [
+ {
+ "id": "intro_and_project",
+ "title": "مقدمة الوحدة والتجربة الاستهلالية: وصف الحركة بالمدرج الهوائي",
+ "outcomes": [
+ "مقدمة الوحدة والتجربة الاستهلالية: وصف الحركة بالمدرج الهوائي"
+ ],
+ "file": "grade_10\/physics_10\/semester_1\/unit_02\/intro_and_project.md"
+ },
+ {
+ "id": "lesson_01",
+ "title": "الدرس 1: الحركة في بُعد واحد (Motion in One Dimension)",
+ "outcomes": [
+ "الدرس 1: الحركة في بُعد واحد (Motion in One Dimension)"
+ ],
+ "file": "grade_10\/physics_10\/semester_1\/unit_02\/lesson_01.md"
+ },
+ {
+ "id": "lesson_02",
+ "title": "الدرس 2: الحركة في بُعدين (Motion in Two Dimensions)",
+ "outcomes": [
+ "الدرس 2: الحركة في بُعدين (Motion in Two Dimensions)"
+ ],
+ "file": "grade_10\/physics_10\/semester_1\/unit_02\/lesson_02.md"
+ },
+ {
+ "id": "lesson_03",
+ "title": "الدرس 3: قوانين الحركة لنيوتن (Newton's Laws of Motion)",
+ "outcomes": [
+ "الدرس 3: قوانين الحركة لنيوتن (Newton's Laws of Motion)"
+ ],
+ "file": "grade_10\/physics_10\/semester_1\/unit_02\/lesson_03.md"
+ },
+ {
+ "id": "enrichment_and_expansion",
+ "title": "الإثراء والتوسع: حزام الأمان في السيارة (Seat Belts)",
+ "outcomes": [
+ "الإثراء والتوسع: حزام الأمان في السيارة (Seat Belts)"
+ ],
+ "file": "grade_10\/physics_10\/semester_1\/unit_02\/enrichment_and_expansion.md"
+ },
+ {
+ "id": "unit_exam",
+ "title": "اختبار ومراجعة الوحدة الثانية: الحركة والقوى",
+ "outcomes": [
+ "اختبار ومراجعة الوحدة الثانية: الحركة والقوى"
+ ],
+ "file": "grade_10\/physics_10\/semester_1\/unit_02\/unit_exam.md"
+ }
+ ]
}
},
"resources": {