Implement multi-teacher video selector, in-app curriculum document reader, 15-question Unit 1 exam bank, and interactive science simulation engine

This commit is contained in:
Hamza-Ayed
2026-09-03 15:16:46 +03:00
parent 7e0aae023a
commit c9c03892d1
7 changed files with 1219 additions and 40 deletions
+211 -28
View File
@@ -263,53 +263,236 @@ class ExamCubit extends Cubit<ExamState> {
id: examId,
uuid: 'exam-default-$examId',
courseId: 1,
title: title ?? 'اختبار الفهم والتشخيص السقراطي — المستوى المتقدم',
description: 'اختبار تشخيصي تكيفي يقيس الفهم العميق والقدرة على تطبيق القوانين الوزارية.',
title: title ?? 'اختبار الفهم الشامل: الوحدة الأولى — أنظمة المعادلات',
description: 'اختبار وزاري معياري يقيس الفهم العميق والقدرة على تطبيق القوانين لأنظمة المعادلات.',
scope: 'unit_exam',
passingPercentage: 70.0,
durationMinutes: 15,
questionsCount: 3,
durationMinutes: 45,
questionsCount: 15,
questions: const [
// 1. حل معادلات خاصة (إخراج العامل المشترك)
QuestionModel(
id: 101,
questionText: 'ما هو المعنى الهندسي المباشر للمشتقة الأولى f\'(x) عند نقطة التماس؟',
id: 1,
questionText: 'ما هي مجموعة حل المعادلة الحقيقية: x³ - 4x = 0؟',
questionType: 'multiple_choice',
points: 10,
topicTag: 'المعنى الهندسي للاشتقاق',
explanationText: 'المشتقة الأولى تمثل رياضياً وهندسياً ميل خط المماس لمنحنى الاقتران عند نقطة التماس.',
topicTag: 'حل المعادلات بإخراج العامل المشترك الأكبر',
explanationText: 'بإخراج x كعامل مشترك: x(x² - 4) = 0 ومنها x(x - 2)(x + 2) = 0، فيكون الحل x = 0, 2, -2.',
options: [
QuestionOptionModel(id: 1, optionText: 'ميل خط المماس للمنحنى عند تلك النقطة', isCorrect: true, sequenceOrder: 1),
QuestionOptionModel(id: 2, optionText: 'معادلة المستقيم القاطع المار بنقطتين', isCorrect: false, sequenceOrder: 2),
QuestionOptionModel(id: 3, optionText: 'المساحة المحصورة تحت المنحنى ومحور السينات', isCorrect: false, sequenceOrder: 3),
QuestionOptionModel(id: 4, optionText: 'طول المماس الأفقي عند النقطة الحرجة', isCorrect: false, sequenceOrder: 4),
QuestionOptionModel(id: 1, optionText: '{ -2, 0, 2 }', isCorrect: true, sequenceOrder: 1),
QuestionOptionModel(id: 2, optionText: '{ 0, 4 }', isCorrect: false, sequenceOrder: 2),
QuestionOptionModel(id: 3, optionText: '{ -2, 2 }', isCorrect: false, sequenceOrder: 3),
QuestionOptionModel(id: 4, optionText: '{ 0, 2 }', isCorrect: false, sequenceOrder: 4),
],
),
// 2. الصورة التربيعية
QuestionModel(
id: 102,
questionText: 'إذا كان f(x) = sin(4x)، فما هي قيمة مشتقته الأولى f\'(x) وفق قاعدة السلسلة؟',
id: 2,
questionText: 'حل المعادلة x⁴ - 5x² + 4 = 0 في مجموعة الأعداد الحقيقية هو:',
questionType: 'multiple_choice',
points: 10,
topicTag: 'مشتقات الاقترانات الدائرية وقاعدة السلسلة',
explanationText: 'مشتقة sin(ax) هي a * cos(ax)؛ أي مشتقة الزاوية ضرب مشتقة الاقتران الخارجي.',
topicTag: 'المعادلات في الصورة التربيعية',
explanationText: 'بالتحليل كمعادلة تربيعية: (x² - 4)(x² - 1) = 0، ومنها x² = 4 أو x² = 1، فالجذور هي ±2 و ±1.',
options: [
QuestionOptionModel(id: 5, optionText: '4 cos(4x)', isCorrect: true, sequenceOrder: 1),
QuestionOptionModel(id: 6, optionText: 'cos(4x)', isCorrect: false, sequenceOrder: 2),
QuestionOptionModel(id: 7, optionText: '-4 cos(4x)', isCorrect: false, sequenceOrder: 3),
QuestionOptionModel(id: 8, optionText: '4 sin(4x)', isCorrect: false, sequenceOrder: 4),
QuestionOptionModel(id: 5, optionText: '{ -2, -1, 1, 2 }', isCorrect: true, sequenceOrder: 1),
QuestionOptionModel(id: 6, optionText: '{ 1, 4 }', isCorrect: false, sequenceOrder: 2),
QuestionOptionModel(id: 7, optionText: '{ -1, 1 }', isCorrect: false, sequenceOrder: 3),
QuestionOptionModel(id: 8, optionText: '{ -4, 4 }', isCorrect: false, sequenceOrder: 4),
],
),
// 3. مجموع المكعبين والحلول الحقيقية
QuestionModel(
id: 103,
questionText: 'ما هو الشرط الرياضي اللازم والكافي ليكون المماس أفقياً عند نقطة واقعة على المنحنى؟',
id: 3,
questionText: 'كم حلاً حقيقياً يحقق المعادلة: x³ + 8 = 0؟',
questionType: 'multiple_choice',
points: 10,
topicTag: 'المماسات الأفقية والنقاط الحرجة',
explanationText: 'يكون المماس أفقياً وموازياً لمحور السينات عندما يكون ميله مساوياً للصفر، أي f\'(x) = 0.',
topicTag: 'تحليل مجموع المكعبين والحلول الحقيقية',
explanationText: 'بتحليل مجموع مكعبين: (x + 2)(x² - 2x + 4) = 0. القوس التربيعي مميزه سالب (-12) فلا يعطي جذوراً حقيقية، والحل الحقيقي الوحيد هو x = -2.',
options: [
QuestionOptionModel(id: 9, optionText: 'أن تكون المشتقة الأولى مساوية للصفر f\'(x) = 0', isCorrect: true, sequenceOrder: 1),
QuestionOptionModel(id: 10, optionText: 'أن تكون قيمة الاقتران مساوية للصفر f(x) = 0', isCorrect: false, sequenceOrder: 2),
QuestionOptionModel(id: 11, optionText: 'أن تكون المشتقة غير معرّفة أو قيمة مطلقة', isCorrect: false, sequenceOrder: 3),
QuestionOptionModel(id: 12, optionText: 'أن يتقاطع المماس مع نقطة الأصل دائماً', isCorrect: false, sequenceOrder: 4),
QuestionOptionModel(id: 9, optionText: 'حل حقيقي واحد فقط وهو x = -2', isCorrect: true, sequenceOrder: 1),
QuestionOptionModel(id: 10, optionText: 'ثلاثة حلول حقيقية', isCorrect: false, sequenceOrder: 2),
QuestionOptionModel(id: 11, optionText: 'حلّان حقيقيان', isCorrect: false, sequenceOrder: 3),
QuestionOptionModel(id: 12, optionText: 'لا يوجد أي حل حقيقي', isCorrect: false, sequenceOrder: 4),
],
),
// 4. أقصى عدد حلول لنظام خطي وتربيعي
QuestionModel(
id: 4,
questionText: 'ما هو أقصى عدد ممكن لنقاط التقاطع بين مستقيم وقطع مكافئ في المستوى الإحداثي؟',
questionType: 'multiple_choice',
points: 10,
topicTag: 'التمثيل الهندسي لنظام خطي وتربيعي',
explanationText: 'المستقيم يقطع القطع المكافئ في نقطتين كحد أقصى (حلان)، أو يمسه في نقطة (حل واحد)، أو لا يقطعه (لا يوجد حل حقيقي).',
options: [
QuestionOptionModel(id: 13, optionText: 'نقطتان كحد أقصى (حلّان حقيقيان)', isCorrect: true, sequenceOrder: 1),
QuestionOptionModel(id: 14, optionText: 'ثلاث نقاط تقاطع', isCorrect: false, sequenceOrder: 2),
QuestionOptionModel(id: 15, optionText: 'أربع نقاط تقاطع', isCorrect: false, sequenceOrder: 3),
QuestionOptionModel(id: 16, optionText: 'نقطة واحدة فقط دائماً', isCorrect: false, sequenceOrder: 4),
],
),
// 5. حل نظام خطي وتربيعي بالتعويض
QuestionModel(
id: 5,
questionText: 'إذا كان لدينا النظام: y = x + 1 و y = x² + 1، فما هي نقاط تقاطع المنحنيين؟',
questionType: 'multiple_choice',
points: 10,
topicTag: 'حل نظام خطي وتربيعي بطريقة التعويض',
explanationText: 'بالمساواة: x² + 1 = x + 1 ومنها x² - x = 0 أي x(x - 1) = 0، فيكون x = 0 أو x = 1. بالتعويض نجد y = 1 أو y = 2.',
options: [
QuestionOptionModel(id: 17, optionText: '(0, 1) و (1, 2)', isCorrect: true, sequenceOrder: 1),
QuestionOptionModel(id: 18, optionText: '(0, 0) و (1, 1)', isCorrect: false, sequenceOrder: 2),
QuestionOptionModel(id: 19, optionText: '(1, 2) فقط', isCorrect: false, sequenceOrder: 3),
QuestionOptionModel(id: 20, optionText: '(-1, 0) و (1, 2)', isCorrect: false, sequenceOrder: 4),
],
),
// 6. المميز وسالبية الحلول
QuestionModel(
id: 6,
questionText: 'متى لا يوجد أي حل حقيقي لنظام مكوّن من معادلة خطية وأخرى تربيعية؟',
questionType: 'multiple_choice',
points: 10,
topicTag: 'استخدام المميز لتحديد عدد حلول النظام',
explanationText: 'إذا كان مميز المعادلة التربيعية الناتجة عن التعويض سالباً (Δ = b² - 4ac < 0)، فإن المستقيم لا يتقاطع مع المنحنى.',
options: [
QuestionOptionModel(id: 21, optionText: 'عندما يكون مميز المعادلة التربيعية الناتجة سالباً (Δ < 0)', isCorrect: true, sequenceOrder: 1),
QuestionOptionModel(id: 22, optionText: 'عندما يكون المميز مساوياً لصفر', isCorrect: false, sequenceOrder: 2),
QuestionOptionModel(id: 23, optionText: 'عندما يكون المميز موجباً تماماً', isCorrect: false, sequenceOrder: 3),
QuestionOptionModel(id: 24, optionText: 'إذا كان ميل المستقيم يساوي صفراً', isCorrect: false, sequenceOrder: 4),
],
),
// 7. حالة المماس
QuestionModel(
id: 7,
questionText: 'إذا كان لنظام مكوّن من مستقيم وقطع مكافئ حل حقيقي وحيد فقط، فإن المستقيم يعتبر:',
questionType: 'multiple_choice',
points: 10,
topicTag: 'المستقيم المماس لمنحنى تربيعي',
explanationText: 'وجود حل حقيقي وحيد لنظام خطي-تربيعي يعني هندسياً أن المستقيم يمس المنحنى عند نقطة واحدة فقط.',
options: [
QuestionOptionModel(id: 25, optionText: 'مماساً لمنحنى القطع المكافئ عند نقطة التماس', isCorrect: true, sequenceOrder: 1),
QuestionOptionModel(id: 26, optionText: 'قاطعاً للمنحنى في نقطتين', isCorrect: false, sequenceOrder: 2),
QuestionOptionModel(id: 27, optionText: 'خط تقارب رأسي للمنحنى', isCorrect: false, sequenceOrder: 3),
QuestionOptionModel(id: 28, optionText: 'محور تماثل للقطع المكافئ', isCorrect: false, sequenceOrder: 4),
],
),
// 8. حل نظام تربيعي بالحذف
QuestionModel(
id: 8,
questionText: 'في النظام: x² + y² = 25 و x² - y² = 7، ما هي قيمة x²؟',
questionType: 'multiple_choice',
points: 10,
topicTag: 'حل نظام تربيعي بطريقة الحذف',
explanationText: 'بجمع المعادلتين طرفاً لطرف: 2x² = 32 ومنها x² = 16.',
options: [
QuestionOptionModel(id: 29, optionText: 'x² = 16', isCorrect: true, sequenceOrder: 1),
QuestionOptionModel(id: 30, optionText: 'x² = 9', isCorrect: false, sequenceOrder: 2),
QuestionOptionModel(id: 31, optionText: 'x² = 32', isCorrect: false, sequenceOrder: 3),
QuestionOptionModel(id: 32, optionText: 'x² = 18', isCorrect: false, sequenceOrder: 4),
],
),
// 9. أقصى عدد حلول بين دائرة وقطع مكافئ
QuestionModel(
id: 9,
questionText: 'ما هو أقصى عدد ممكن من نقاط التقاطع بين دائرة وقطع مكافئ في المستوى الإحداثي؟',
questionType: 'multiple_choice',
points: 10,
topicTag: 'التقاطع الهندسي بين منحنيين تربيعيين',
explanationText: 'يمكن لدائرة وقطع مكافئ أن يتقاطعا في 0، أو 1، أو 2، أو 3، أو 4 نقاط كحد أقصى.',
options: [
QuestionOptionModel(id: 33, optionText: '4 نقاط تقاطع (أربعة حلول)', isCorrect: true, sequenceOrder: 1),
QuestionOptionModel(id: 34, optionText: 'حلان فقط', isCorrect: false, sequenceOrder: 2),
QuestionOptionModel(id: 35, optionText: '6 نقاط تقاطع', isCorrect: false, sequenceOrder: 3),
QuestionOptionModel(id: 36, optionText: 'حل وحيد فقط دائماً', isCorrect: false, sequenceOrder: 4),
],
),
// 10. التعويض بين معادلتين تربيعيتين
QuestionModel(
id: 10,
questionText: 'النظام: x² + y² = 13 و y = x² + 1 يتقاطع في النقطتين:',
questionType: 'multiple_choice',
points: 10,
topicTag: 'التعويض بين معادلتين تربيعيتين',
explanationText: 'بتعويض x² = y - 1 في الأولى: y - 1 + y² = 13 أي y² + y - 14 = 0 أو نجد بالنظام y=3 و x=±2.',
options: [
QuestionOptionModel(id: 37, optionText: '(-2, 3) و (2, 3)', isCorrect: true, sequenceOrder: 1),
QuestionOptionModel(id: 38, optionText: '(3, -2) و (3, 2)', isCorrect: false, sequenceOrder: 2),
QuestionOptionModel(id: 39, optionText: '(0, 1) فقط', isCorrect: false, sequenceOrder: 3),
QuestionOptionModel(id: 40, optionText: '(2, 5) و (-2, 5)', isCorrect: false, sequenceOrder: 4),
],
),
// 11. التناظر في أنظمة المعادلات
QuestionModel(
id: 11,
questionText: 'إذا كانت النقطة (a, b) حلاً لنظام يتكون من دائرة مركزها نقطة الأصل ومعادلة متماثلة حول المحور الصادي، فإن:',
questionType: 'multiple_choice',
points: 10,
topicTag: 'خصائص التناظر في أنظمة المعادلات',
explanationText: 'التماثل حول محور الصادات يعني أن استبدال x بـ (-x) يعطي نفس النتيجة، فالنقطة (-a, b) تكون أيضاً حلاً للنظام.',
options: [
QuestionOptionModel(id: 41, optionText: '(-a, b) تكون أيضاً حلاً للنظام', isCorrect: true, sequenceOrder: 1),
QuestionOptionModel(id: 42, optionText: '(a, -b) هو الحل الوحيد دائماً', isCorrect: false, sequenceOrder: 2),
QuestionOptionModel(id: 43, optionText: 'لا يوجد أي تناظر هندسي', isCorrect: false, sequenceOrder: 3),
QuestionOptionModel(id: 44, optionText: 'الحل سالب دائماً', isCorrect: false, sequenceOrder: 4),
],
),
// 12. برمجية جيوجبرا وأداة التقاطع
QuestionModel(
id: 12,
questionText: 'في برمجية جيوجبرا (GeoGebra)، ما هي الأداة المخصصة لإيجاد حل نظام المعادلات بيانياً؟',
questionType: 'multiple_choice',
points: 10,
topicTag: 'برمجية جيوجبرا وحل الأنظمة بيانياً',
explanationText: 'أداة التقاطع (Intersect Tool) في جيوجبرا تُحدد إحداثيات نقاط تقاطع المنحنيات التي تمثل حلول النظام مباشرة.',
options: [
QuestionOptionModel(id: 45, optionText: 'أداة التقاطع (Intersect Tool)', isCorrect: true, sequenceOrder: 1),
QuestionOptionModel(id: 46, optionText: 'أداة القياس (Measure)', isCorrect: false, sequenceOrder: 2),
QuestionOptionModel(id: 47, optionText: 'أداة الانعكاس (Reflect)', isCorrect: false, sequenceOrder: 3),
QuestionOptionModel(id: 48, optionText: 'أداة المماس (Tangent)', isCorrect: false, sequenceOrder: 4),
],
),
// 13. قراءة الإحداثيات في جيوجبرا
QuestionModel(
id: 13,
questionText: 'عند تمثيل معادلتين في جيوجبرا وظهور نقطة التقاطع A = (3, -2)، فهذا يعني هندسياً وجبرياً أن:',
questionType: 'multiple_choice',
points: 10,
topicTag: 'تفسير مخرجات برمجية جيوجبرا',
explanationText: 'إحداثيات نقطة التقاطع (x, y) تعني أن الزوج المرتب يحقق كلتا المعادلتين معاً في آن واحد، وهو حل النظام.',
options: [
QuestionOptionModel(id: 49, optionText: 'x = 3 و y = -2 هو حل يحقق كلتا المعادلتين معاً', isCorrect: true, sequenceOrder: 1),
QuestionOptionModel(id: 50, optionText: 'x = -2 و y = 3 هو الحل', isCorrect: false, sequenceOrder: 2),
QuestionOptionModel(id: 51, optionText: 'المنحنيان متباعدان ولا حل لهما', isCorrect: false, sequenceOrder: 3),
QuestionOptionModel(id: 52, optionText: 'النظام له حلول غير منتهية', isCorrect: false, sequenceOrder: 4),
],
),
// 14. النماذج الحياتية والأرصاد
QuestionModel(
id: 14,
questionText: 'لماذا يستخدم خبراء الأرصاد الجوية أنظمة معادلات غير خطية في التنبؤ بالطقس كما ورد في كتاب الطالب؟',
questionType: 'multiple_choice',
points: 10,
topicTag: 'التطبيقات الحياتية لأنظمة المعادلات',
explanationText: 'لأن أي تغير في أحد العوامل (كالضغط ودرجة الحرارة وسرعة الرياح) يؤدي إلى تغير غير خطي في العوامل الأخرى.',
options: [
QuestionOptionModel(id: 53, optionText: 'لأن أي تغير في أحد العوامل يؤدي إلى تغير غير خطي في العوامل الأخرى', isCorrect: true, sequenceOrder: 1),
QuestionOptionModel(id: 54, optionText: 'لأن درجة الحرارة ثابتة دائماً على مدار السنة', isCorrect: false, sequenceOrder: 2),
QuestionOptionModel(id: 55, optionText: 'للتخلص من قياس الضغط الجوي', isCorrect: false, sequenceOrder: 3),
QuestionOptionModel(id: 56, optionText: 'لأن سرعة الرياح لا ترتبط بحركة الغلاف الجوي', isCorrect: false, sequenceOrder: 4),
],
),
// 15. مسألة هندسية وتطبيقية
QuestionModel(
id: 15,
questionText: 'سياج مستطيل الشكل محيطه 20 متراً ومساحته 24 متراً مربعاً. ما هما بعدا المستطيل؟',
questionType: 'multiple_choice',
points: 10,
topicTag: 'حل المسائل الهندسية الحياتية باستخدام الأنظمة',
explanationText: 'النظام: 2(x + y) = 20 ومنها x + y = 10، والمساحة x * y = 24. العددان اللذان مجموعهما 10 وحاصل ضربهما 24 هما 6 و 4.',
options: [
QuestionOptionModel(id: 57, optionText: 'الطول 6 m والعرض 4 m', isCorrect: true, sequenceOrder: 1),
QuestionOptionModel(id: 58, optionText: 'الطول 8 m والعرض 2 m', isCorrect: false, sequenceOrder: 2),
QuestionOptionModel(id: 59, optionText: 'الطول 10 m والعرض 2.4 m', isCorrect: false, sequenceOrder: 3),
QuestionOptionModel(id: 60, optionText: 'الطول 5 m والعرض 5 m', isCorrect: false, sequenceOrder: 4),
],
),
],