تفاصيل المشروع

١. يفتح المعلم التطبيق

٢. يمسح QR من الكتاب المدرسي

٣. التطبيق يجلب PDF من رابط الوزارة (ien.edu.sa)

٤. يرسل PDF لـ Claude API مرة واحدة فقط

٥. يستقبل JSON Runtime

٦. يحفظ JSON محلياً على الجهاز

٧. يعرض صفحات الدرس ككتل بصرية

٨. يدعم: تكبير، تصغير، سحب، إفلات

القيود:

لا سيرفر

لا سحابة

لا تسجيل دخول

لا قاعدة بيانات خارجية

كل شيء محلي على جهاز المعلم

سنوفر:

PDF نموذجي جاهز

JSON Runtime جاهز (مرفق)

Claude API key للاختبار

المخرج المطلوب:

شاشة واحدة فقط

APK يعمل على جهاز Android حقيقي

شرط القبول

هل لديك تجربة سابقة في بناء تطبيق Flutter يعمل مع PDF وAPI خارجي؟

أرجو مشاركة مثال على عمل مشابه.

المطلوب:

كم التكلفة؟

كم الوقت؟

JSON Runtime (مرفق)

{

"lesson": {

"id": "arabic_imla_hamza_mutatarrifa_g4",

"title": "الهمزة المتطرفة",

"subject": "الظاهرة الإملائية — لغة عربية الصف الرابع",

"source": "ien.edu.sa",

"pages": [

78,

79,

80,

81,

82,

83

],

"page_size": {

"width": 637.28,

"height": 764.84

},

"status": "ready",

"ai_role": "منتهي — JSON جاهز للتنفيذ المحلي"

},

"phases": [

{

"phase_id": "01",

"phase": "التهيئة",

"template": "مدخل بصري + سؤال محفز",

"flow": "جذب الانتباه",

"page": 78,

"visual_blocks": [

{

"block_id": "b_78_01",

"type": "عنوان_رئيسي",

"text": "الظاهرةُ الإملائيَّةُ",

"color": "أخضر_زيتوني",

"coords": {

"x": 340.0,

"y": 55.0,

"w": 250.0,

"h": 38.0

},

"z_index": 10,

"action": "إبراز — تكبير تدريجي"

},

{

"block_id": "b_78_02",

"type": "عنوان_درس",

"text": "الهمزةُ المُتطرِّفةُ",

"color": "أحمر",

"coords": {

"x": 200.0,

"y": 105.0,

"w": 240.0,

"h": 32.0

},

"z_index": 10,

"action": "ظهور — نبض بصري"

},

{

"block_id": "b_78_03",

"type": "بطاقة_مثال",

"text": "كُلُّ شَيْءٍ في قُرب الأمِّ جَميلٌ... شاطِئ الأمان... لُؤْلُؤ التربية... العَطَاء",

"color": "أخضر_فاتح_خلفية",

"coords": {

"x": 60.0,

"y": 155.0,

"w": 340.0,

"h": 120.0

},

"z_index": 5,

"action": "ظهور تدريجي — تمييز الكلمات الملونة"

},

{

"block_id": "b_78_04",

"type": "بطاقة_أهداف",

"text": "١. تمييز الهمزة المتطرفة\n٢. تحديد سبب كتابتها\n٣. كتابتها كتابة صحيحة",

"color": "أخضر_حدود",

"coords": {

"x": 420.0,

"y": 155.0,

"w": 175.0,

"h": 130.0

},

"z_index": 5,

"action": "ظهور — قراءة بند بند"

},

{

"block_id": "b_78_05",

"type": "بطاقة_قاعدة",

"text": "سُمِّيَت مُتطرِّفة؛ لأنَّها تكون في طَرَف الكلمة أي نهايتها",

"color": "أخضر_فاتح_حدود",

"coords": {

"x": 100.0,

"y": 330.0,

"w": 440.0,

"h": 38.0

},

"z_index": 5,

"action": "إبراز"

},

{

"block_id": "b_78_06",

"type": "بطاقة_قاعدة",

"text": "نَقصِدُ باليَاء المُناسِبة للكَسرة (النَّبرة) بِدُون نُقَط",

"color": "أخضر_فاتح_حدود",

"coords": {

"x": 100.0,

"y": 385.0,

"w": 440.0,

"h": 38.0

},

"z_index": 5,

"action": "إبراز"

},

{

"block_id": "b_78_07",

"type": "عنوان_قسم",

"text": "أقرَأ وألاحِظ",

"color": "أخضر_زر",

"coords": {

"x": 390.0,

"y": 450.0,

"w": 160.0,

"h": 32.0

},

"z_index": 8,

"action": "إبراز"

}

],

"teaching_content": {

"hook": "لاحظ الكلمات الملونة في النص — أين تقع الهمزة فيها؟",

"bridge": "الهمزة في نهاية الكلمة تسمى المتطرفة"

}

},

{

"phase_id": "02",

"phase": "الشرح",

"pattern": "نمط العرض + نمط التفكير",

"strategy": "الشرح المباشر + المقارنة + التصنيف",

"template": "شرح تدريجي + خريطة مفاهيم",

"steps": [

{

"step": "01",

"page": 78,

"content": "الهمزة المتطرفة تُرسم على الحرف المناسب لحركة الحرف الذي قبلها",

"visual_blocks": [

{

"block_id": "b_78_08",

"type": "أمثلة_ملونة",

"words": [

"شاطِئ",

"لُؤلُؤ",

"نَشَأ",

"العَطَاء"

],

"coords": {

"x": 60.0,

"y": 155.0,

"w": 340.0,

"h": 120.0

},

"z_index": 6,

"action": "تمييز كلمة كلمة بالتتابع"

}

]

},

{

"step": "02",

"page": 79,

"content": "أتأمل الكلمات وأعلل سبب رسم الهمزة",

"visual_blocks": [

{

"block_id": "b_79_01",

"type": "بطاقة_تحليل",

"text": "شاطِئ — الهمزة على ياء لأن الحرف قبلها مكسور",

"coords": {

"x": 60.0,

"y": 140.0,

"w": 520.0,

"h": 32.0

},

"z_index": 5,

"action": "ظهور تدريجي"

},

{

"block_id": "b_79_02",

"type": "بطاقة_تحليل",

"text": "لُؤلُؤ — الهمزة على واو لأن الحرف قبلها مضموم",

"coords": {

"x": 60.0,

"y": 178.0,

"w": 520.0,

"h": 32.0

},

"z_index": 5,

"action": "ظهور تدريجي"

},

{

"block_id": "b_79_03",

"type": "بطاقة_تحليل",

"text": "نَشَأ — الهمزة على ألف لأن الحرف قبلها مفتوح",

"coords": {

"x": 60.0,

"y": 216.0,

"w": 520.0,

"h": 32.0

},

"z_index": 5,

"action": "ظهور تدريجي"

}

]

},

{

"step": "03",

"page": 80,

"content": "خريطة المفاهيم — الاستنتاج الكامل",

"visual_blocks": [

{

"block_id": "b_80_01",

"type": "خريطة_مفاهيم",

"text": "الهمزة المتطرفة",

"coords": {

"x": 220.0,

"y": 55.0,

"w": 200.0,

"h": 38.0

},

"z_index": 10,

"action": "إبراز — مركز الخريطة"

},

{

"block_id": "b_80_02",

"type": "فرع_خريطة",

"text": "ما قبلها ساكن → تُرسم مفردة على السطر",

"coords": {

"x": 380.0,

"y": 120.0,

"w": 200.0,

"h": 80.0

},

"z_index": 8,

"action": "ظهور من اليمين"

},

{

"block_id": "b_80_03",

"type": "فرع_خريطة",

"text": "ما قبلها متحرك:\n- مفتوح → ألف\n- مضموم → واو\n- مكسور → ياء",

"coords": {

"x": 60.0,

"y": 120.0,

"w": 280.0,

"h": 120.0

},

"z_index": 8,

"action": "ظهور من اليسار"

}

]

}

]

},

{

"phase_id": "03",

"phase": "المعالجة والتوضيح",

"template": "كشف الأخطاء + تغذية راجعة",

"page": 80,

"visual_blocks": [

{

"block_id": "b_80_04",

"type": "تفكير_ناقد",

"text": "كتبت نُورة عبارة فيها أخطاء إملائية — أين الأخطاء؟",

"coords": {

"x": 60.0,

"y": 490.0,

"w": 520.0,

"h": 60.0

},

"z_index": 5,

"action": "إبراز — انتظار إجابة"

},

{

"block_id": "b_80_05",

"type": "نص_مكتوب",

"text": "لا تَلجَاء إلى نَفسِك، ولا تَسِرْ وراء عواطِفِك، وأَضِيء قَلبَك بِنُور الإيمان",

"color": "أخضر_فاتح_خلفية",

"coords": {

"x": 100.0,

"y": 560.0,

"w": 440.0,

"h": 65.0

},

"z_index": 5,

"action": "إبراز الكلمات الخاطئة — تمييز لوني"

}

],

"errors": [

{

"خطأ": "تَلجَاء",

"صواب": "تَلجَأ",

"سبب": "الهمزة مفردة على السطر لأن ما قبلها ساكن"

},

{

"خطأ": "أَضِيء",

"صواب": "أَضِئ",

"سبب": "الهمزة مكسورة ما قبلها ساكن"

}

]

},

{

"phase_id": "04",

"phase": "التطبيق والممارسة",

"template": "نشاط فردي + نشاط جماعي",

"activities": [

{

"activity_id": "a_01",

"type": "فردي",

"page": 79,

"instruction": "أرسم الهمزة المتطرفة على الحرف المناسب لحركة الحرف السابق لها",

"words": [

"هَادـ",

"يَبتَدـ",

"يَتَّكـ",

"أُنشـ",

"دَافـ",

"مَبَادـ"

],

"visual_block": {

"block_id": "b_79_04",

"type": "تمرين_فردي",

"coords": {

"x": 60.0,

"y": 350.0,

"w": 520.0,

"h": 200.0

},

"z_index": 5,

"action": "عرض كلمة — انتظار كتابة"

}

},

{

"activity_id": "a_02",

"type": "فردي",

"page": 81,

"instruction": "أصوغ الفعل المضارع من الأفعال الماضية وأقارن رسم الهمزة",

"table": {

"headers": [

"الفعل الماضي",

"سبب رسم الهمزة المتطرفة",

"الفعل المضارع",

"سبب رسم الهمزة المتطرفة في المضارع"

],

"rows": [

"جَزَّأ",

"كَافَأ",

"جَاءَ"

],

"coords": {

"x": 60.0,

"y": 100.0,

"w": 520.0,

"h": 160.0

}

},

"visual_block": {

"block_id": "b_82_01",

"type": "جدول_تفاعلي",

"z_index": 5,

"action": "عرض صف — انتظار تعبئة"

}

},

{

"activity_id": "a_03",

"type": "فردي",

"page": 82,

"instruction": "أصل بين الحروف المفصولة لتكون كلمة واحدة",

"words_split": [

"يَ بْ دَ ءُ",

"يَ نْ شَ ءُ",

"مَ بَ أَ دِ ءُ",

"لُ ءُ لُ ءٌ"

],

"visual_block": {

"block_id": "b_82_02",

"type": "نشاط_وصل",

"coords": {

"x": 110.0,

"y": 290.0,

"w": 420.0,

"h": 150.0

},

"z_index": 5,

"action": "عرض — سحب وإفلات"

}

},

{

"activity_id": "a_04",

"type": "جماعي",

"page": 83,

"instruction": "لعبة الثواني العشر — كتابة كلمات مجموعة فيها همزة متطرفة وتحديد سبب كتابتها",

"words": [

"غِذَاءٌ",

"بُوبُوٌّ",

"قَارِئٌ",

"فِنَاءٌ",

"مَرْفَأً",

"تَبَاطُؤٌ",

"مَوْطِئٌ",

"صَدَأً",

"نُشُوءٌ",

"بَادِئٌ",

"أُمرُؤٌ",

"يعبَأً"

],

"visual_block": {

"block_id": "b_83_01",

"type": "بطاقات_ملونة",

"coords": {

"x": 60.0,

"y": 250.0,

"w": 520.0,

"h": 120.0

},

"z_index": 5,

"action": "إبراز — تصنيف بالسحب"

}

},

{

"activity_id": "a_05",

"type": "أسري",

"page": 83,

"instruction": "أصنف المفردات في مواضعها من الجدول",

"table_headers": [

"همزة على الألف",

"همزة على الواو",

"همزة على الياء",

"همزة على السطر"

],

"visual_block": {

"block_id": "b_83_02",

"type": "جدول_تصنيف",

"coords": {

"x": 60.0,

"y": 440.0,

"w": 520.0,

"h": 160.0

},

"z_index": 5,

"action": "عرض جدول — سحب وإفلات"

}

}

]

},

{

"phase_id": "05",

"phase": "التقويم",

"template": "أسئلة سريعة + تحليل نتائج",

"page": 82,

"questions": [

{

"q_id": "q_01",

"question": "ما سبب رسم الهمزة في كلمة (شاطِئ) على الياء؟",

"answer": "لأن الحرف قبلها مكسور"

},

{

"q_id": "q_02",

"question": "أين تقع الهمزة المتطرفة في الكلمة؟",

"answer": "في نهاية الكلمة"

},

{

"q_id": "q_03",

"question": "إذا كان الحرف قبل الهمزة ساكناً — كيف تُرسم الهمزة؟",

"answer": "مفردة على السطر"

},

{

"q_id": "q_04",

"question": "أكتب مضارع (جَزَّأَ) مع بيان سبب رسم الهمزة",

"answer": "يُجَزِّئُ — على ياء لأن الحرف قبلها مكسور"

}

]

},

{

"phase_id": "06",

"phase": "الإغلاق",

"template": "تلخيص + سؤال ختامي + إغلاق تحفيزي",

"page": 80,

"summary_block": {

"block_id": "b_80_01_summary",

"type": "خريطة_مفاهيم_ختامية",

"text": "الهمزة المتطرفة",

"coords": {

"x": 220.0,

"y": 55.0,

"w": 200.0,

"h": 38.0

},

"z_index": 10,

"action": "إبراز ختامي — عرض الخريطة كاملة"

},

"summary_points": [

"الهمزة المتطرفة تقع في نهاية الكلمة",

"إذا كان ما قبلها ساكن → تُرسم مفردة على السطر",

"إذا كان ما قبلها مفتوح → على ألف",

"إذا كان ما قبلها مضموم → على واو",

"إذا كان ما قبلها مكسور → على ياء بدون نقط"

],

"closing_question": "لماذا كتبنا همزة (جَريء) على ياء وهمزة (نشَأ) على ألف؟",

"motivational": "الإملاء الصحيح احترام للغة وأمانة في الكتابة"

}

],

"runtime_meta": {

"total_visual_blocks": 22,

"pages_covered": [

78,

79,

80,

81,

82,

83

],

"interaction_types": [

"إبراز",

"تكبير_تدريجي",

"ظهور_تدريجي",

"نبض_بصري",

"تمييز_لوني",

"سحب_وإفلات",

"عرض_بند_بند",

"انتظار_إجابة"

],

"tables_count": 3,

"coordinate_source": "pdfplumber — PDF أصلي",

"encoding_note": "الخطوط مضمنة Identity-H — الإحداثيات دقيقة / النصوص تستخدم الصور المرسترة للعرض",

"ai_role": "منتهي بعد توليد هذا الملف",

"runtime_engine": "Flutter — Deterministic Local Runtime"

}

}

حالة المشروع
مفتوح
تاريخ النشر
الميزانية
$500.00 - $1000.00
مدة التنفيذ
5 أيام
المهارات

صاحب المشروع
مانع ا.
تاريخ التسجيل
معدل التوظيف
المشاريع المفتوحة 1
مشاريع قيد التنفيذ 0
التواصلات الجارية 0

تقدم للمشروع

العروض المقدمة

محمود ف.

السلام عليكم , تطبيق حضرتك واضح وصريح والمعلومات جاهزة ان شاء الله فقط ابعتلي البيانات المطلوبة واستلم تطبيق زى الوصف بالظبط بدون زيادة او نقصان مع خبرة في مجال...

السلام عليكم أنا خالد بدر مطور تطبيقات باستخدام flutter ، امتلك خبره في إنشاء تطبيقات قابله للتطوير والتوسع لاني بستخدم مبادئ ال clean architecture الكود بيكون ...

المشروع واضح ومتطلباته محددة وده بيسهل تنفيذه بشكل منظم باستخدام Flutter بالكامل بدون الحاجة إلى سيرفر أو قاعدة بيانات خارجية هقوم بتنفيذ قراءة QR وتحميل ملف PD...

السلام عليكم، لدي خبرة جيدة في تطوير تطبيقات Flutter، وقد سبق لي العمل على مشروع مشابه جدا لفكرة مشروعكم. كما شاركت في تطوير أكثر من 10 تطبيقات باستخدام Flutter...

السلام عليكم المشروع هنا مش Flutter screen عادية، التحدي الحقيقي في بناء local runtime rendering system يقدر يحول JSON معقد coordinates interactions لتجربة سلسة...

السلام عليكم أستاذ مانع، اطلعت على التفاصيل والـ JSON المرفق، ولدي خبرة في Flutter والتعامل مع PDF وREST APIs وبناء واجهات ديناميكية تعتمد على JSON Runtime. لفه...

السلام عليكم معك رمضان مهندس برمجيات وخبير في تطوير تطبيقات Flutter , لقد قرات عرضك وانا جاهز لتنفيذ المطلوب بكل دقة واحترافية عالية حيث سبق لي التعامل مع قراءة...

السلام عليكم ورحمة الله وبركاته اهلا بحضرتك مستر مانع يسعدني مساعدتك وأود معرفة بعض التفاصيل حول متطلبات حضرتك لقد قمت بعمل أكثر من تطبيق بنفس الفكرة وأفكار مشا...

Abdulrahman A.

السلام عليكم، أنا عبدالرحمن، مهندس برمجيات وذكاء اصطناعي متخصص في بناء تطبيقات Flutter وأنظمة الذكاء الاصطناعي التفاعلية (AI Systems RAG-based Applications). لد...

السلام عليكم، اطلعت على تفاصيل المشروع والمرفقات، ويمكنني تنفيذ التطبيق باستخدام Flutter ليعمل بالكامل محليا على جهاز Android دون الحاجة إلى خادم أو قاعدة بيانا...

عبد العزيز فاروق ر.

جديد في المنصة لكن لدي خبرة قديمة في هذا المجال. المدة و السعر النهائي بعد تفاصيل المشروع يرجى عدم قبول العرض مبرمج تطبيقات ومواقع إلكترونية، أمتلك خبرة في تطوي...

السلام عليكم أستاذ مانع، لقد اطلعت على تفاصيل مشروعك بدقة، وقرأت ملف الـ JSON المرفق بعناية. بصفتي Frontend Engineer متخصص في بناء واجهات المستخدم الديناميكية و...

ان شاء الله اقدر اعمله بتوفيق الله. أبدأ بشاشة الـ QR باستخدام mobile_scanner لاستخراج رابط PDF من الكتاب، ثم انزله بـ dio وأبعته لـ Claude API مرة واحدة فقط وأ...

السلام عليكم ورحمة الله وبركاته، اطلعت على تفاصيل المشروع وفهمت آلية العمل المطلوبة بالكامل، بدءا من قراءة QR وتحميل ملف PDF، مرورا بالتكامل مع API واستقبال JSO...

سلام عليكم، المطلوب واضح جدا، وفكرته ممتازة كـ MVP محلي بالكامل (Local Runtime) يعتمد على السرعة والأداء العالي بدون تعقيد السيرفرات وقواعد البيانات. الشغل هيتأ...

السلام عليكم، اطلعت على تفاصيل المشروع بالكامل وفهمت آلية العمل المطلوبة. أمتلك خبرة في تطوير تطبيقات Flutter وعملت على عدة مشاريع تتضمن: - التكامل مع APIs خارج...

قبولك لهذا العرض يعتبر اتفاقاً بينك وبين المستقل وسيبقى موقع مستقل وسيطاً بينكما حتى تسليم المشروع. لن تتمكن من تغيير العرض أو إلغائه لاحقًا لذلك تأكد من اختيارك للعرض المناسب باتّباع النصائح التالية:

  • راجع صفحة حساب المستقل الذي اخترته واطّلع على أعماله السابقة
  • إن كانت هناك تفاصيل غير مذكورة في المشروع، فتواصل مع المستقل وأخبره بها أولًا
  • بإمكانك أن تتواصل مع المستقل وتسأله عن أية أمور تحتاجها
  • احرص دائمًا على إبقاء التواصل مع المستقل داخل الموقع قدر الإمكان وذلك لضمان حقوقك
  • لا تتردد من التواصل معنا ان احتجت لأي مساعدة، نحن نحب مساعدتك!

المستقل غير متاح لاستلام مشاريع، يمكنك ارسال تنبيه له لقبول العرض وإعادة المحاولة بعد بضعة ساعات، أو اختيار عرضاً من مستقل آخر.