54 lines
5.8 KiB
Markdown
54 lines
5.8 KiB
Markdown
# حالة تنفيذ منصة صَقِل
|
|
|
|
آخر تحديث: 2026-09-03
|
|
|
|
هذه الوثيقة تفصل بين ما هو موجود في الكود وما هو جزء من الرؤية المستقبلية.
|
|
|
|
## منفذ فعليًا
|
|
|
|
- تطبيق Flutter موحد للطالب وولي الأمر.
|
|
- تسجيل الدخول عبر OTP والرقم الوطني مع تخزين آمن للتوكن.
|
|
- شجرة مناهج ديناميكية من الخادم ومحتوى فعلي للصف العاشر.
|
|
- رفع الفيديو، تحويله إلى HLS عبر FFmpeg، ورفع حزمة HLS إلى Cloudflare R2.
|
|
- رفع الفيديو من Curriculum Studio غير متزامن: الطلب يحفظ الملف ويرجع فورًا، ثم يعالج `backend/scripts/video_upload_worker.php` التحويل والرفع والربط بالدرس.
|
|
- تشغيل الفيديو عبر HLS من R2 أو المسار المحلي عند عدم توفر R2.
|
|
- فحوص سقراطية مرتبطة بالدرس من قاعدة البيانات مع الإرجاع التلقائي عند الخطأ.
|
|
- شاشة الامتحانات التكيفية بالكامل في تطبيق فلاتر (`AdaptiveExamScreen`) مع التوقيت التنازلي والتشخيص الذكي لنسبة الاستيعاب ونقاط الضعف ومؤشر الجاهزية.
|
|
- إشعارات الواتساب الفورية لولي الأمر عبر بوابة نبّه عند تعثر الطالب في أي فحص سقراطي أو امتحان تشخيصي.
|
|
- عوارض تفاعلية لموارد أوراق العمل والكتب المدرسية المقررة في تطبيق فلاتر.
|
|
- بوابات Web للطالب والمعلم وولي الأمر وإدارة المدارس واستوديو المناهج.
|
|
- API للامتحانات والمحاولات والتحليلات والمحادثة وتقييم المعلم.
|
|
- منظومة التدريب المهني والتقني (VTC): معمارية المناهج المبنية على الكفايات (CBT)، وشجرة القطاعات الـ 140، وتخصص تشخيص وصيانة المركبات الكهربائية والهجينة (6 وحدات وبطاقات عمل وفحوص سلامة).
|
|
- المختبر الافتراضي التفاعلي لمقعد تشخيص أعطال مركبات الهايبرد وعزل الجهد العالي (`ev_diagnostic_lab.html`) بمحاكاة للملتيميتر، مفتاح الخدمة MSD، وقارئ الأعطال OBD-II.
|
|
- بوابة العرض المؤسسي الموجهة لعطوفة مدير عام مؤسسة التدريب المهني وهيئة تنمية المهارات (`/vtc` و `/vocational`).
|
|
- واجهات برمجية مخصصة للمسار المهني (`/api/vocational/tree`, `/api/vocational/specialization`, `/api/vocational/simulation`).
|
|
|
|
- تطبيق المعلم Flutter (`teacher_app`): واجهة ألسنة متكاملة (استوديو رفع الدروس، محفظة عوائد وسحوبات كليك، رادار السمعة، وإدارة الواجبات والتساؤلات) مبني بنمط MVC النظيف مع Cubits.
|
|
- تطبيق الإدارة والمدارس Flutter (`admin_app`): معمارية نظيفة مكتملة مع `DirectorateCubit` ومستودع بيانات وشاشات لمدير المدرسة وغرفة القيادة المركزية لمدارس الثقافة العسكرية.
|
|
- بروتوكول فحص واعتماد منظومة الصف العاشر والباك إند (`verify_grade10_ecosystem.php`): 50 فحصاً مؤتمتاً ناجحاً بنسبة 100% يغطي المحرك بالكامل من المصادقة حتى الشفاء المعرفي ومنظومة VTC والدفع عبر كليك.
|
|
|
|
## منفذ جزئيًا
|
|
|
|
- حماية الفيديو: HLS/R2 متوفران مع العلامة المائية الجنائية المتحركة، أما DRM المتقدم للأجهزة فيحتاج تكامل ترخيص إنتاجي.
|
|
|
|
## غير منفذ بعد
|
|
|
|
- RAG دلالي مع Vector DB و Embeddings مخصصة.
|
|
- خوارزمية تكيفية إنتاجية احتمالية متقدمة (Bayesian IRT).
|
|
|
|
## المعمارية المعتمدة
|
|
|
|
- Backend: Native PHP 8.3+، PDO، Router داخلي، PHP-FPM/Nginx.
|
|
- Storage: Cloudflare R2 لحزمة HLS والملفات، مع تخزين محلي مؤقت أثناء التحويل.
|
|
- Apps: `student_app` موحد للطالب وولي الأمر، `teacher_app` مستقل، و`admin_app` مستقل.
|
|
- لا يعتمد التشغيل على Laravel أو Docker.
|
|
|
|
## خط سير الفيديو المعتمد
|
|
|
|
الربط المنطقي هو: `curriculum_key` للدرس ← `lesson.video_uuid` ← حزمة HLS في R2 على المسار `hls/{course_id}/{video_uuid}/`.
|
|
مجلدات R2 القديمة مثل `hls/0` و`hls/1` و`hls/4` ليست فهرس الدروس؛ المرجع المعتمد هو قاعدة البيانات و`curriculum_key`، لذلك لا تُحذف قبل ترحيلها والتحقق من كل درس.
|
|
|
|
بعد نشر الكود يجب أن يكون عامل PHP قادرًا على الكتابة إلى `backend/storage/curriculum/processing` و`backend/storage/videos` و`backend/storage/hls`، وأن يكون FFmpeg مثبتًا على الخادم. وللفيديوهات الكبيرة يجب ضبط `upload_max_filesize` و`post_max_size` في PHP و`client_max_body_size` في Nginx بما يتجاوز حجم أكبر فيديو.
|
|
|
|
إذا ظهر `HTTP 413 Request Entity Too Large` فهذا يعني أن Nginx رفض الملف قبل وصوله إلى PHP. في CloudPanel ارفع `client_max_body_size` إلى `512M` أو أكثر، وارفع `upload_max_filesize` و`post_max_size` في إعدادات PHP-FPM، ثم أعد تشغيل/Reload خدمة Nginx وPHP-FPM. لا تعالج 413 من كود التطبيق لأنه يحدث قبل تشغيل الـ API.
|