Update Saqel Platform: 2026-09-02 08:12:57
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
- تسجيل الدخول عبر OTP والرقم الوطني مع تخزين آمن للتوكن.
|
||||
- شجرة مناهج ديناميكية من الخادم ومحتوى فعلي للصف العاشر.
|
||||
- رفع الفيديو، تحويله إلى HLS عبر FFmpeg، ورفع حزمة HLS إلى Cloudflare R2.
|
||||
- رفع الفيديو من Curriculum Studio أصبح غير متزامن: الطلب يحفظ الملف ويرجع فورًا، ثم يعالج `backend/scripts/video_upload_worker.php` التحويل والرفع والربط بالدرس.
|
||||
- تشغيل الفيديو عبر HLS من R2 أو المسار المحلي عند عدم توفر R2.
|
||||
- فحوص سقراطية مرتبطة بالدرس من قاعدة البيانات.
|
||||
- بوابات Web للطالب والمعلم وولي الأمر واستوديو المناهج.
|
||||
@@ -36,3 +37,10 @@
|
||||
- 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 بما يتجاوز حجم أكبر فيديو.
|
||||
|
||||
Reference in New Issue
Block a user