تحديث SMI Student Gateway — 1 أغسطس 2026
=========================================

هذه الحزمة ليست المشروع كاملًا. هي حزمة تحديث تُستخرج داخل مجلد student-gateway الحالي وتستبدل الملفات التي تحمل الأسماء نفسها فقط.

قبل الرفع
---------
1) خذ نسخة احتياطية من مجلد student-gateway وقاعدة البيانات.
2) لا تحذف مجلد student-gateway الحالي.
3) لا ترفع الحزمة داخل مجلد آخر بالخطأ.

طريقة الرفع في cPanel
--------------------
1) افتح File Manager ثم ادخل إلى public_html/student-gateway.
2) ارفع ملف ZIP النهائي داخل هذا المجلد.
3) حدده ثم اضغط Extract.
4) اجعل مسار الاستخراج هو نفس مجلد student-gateway.
5) عند ظهور Replace existing files / Overwrite / Replace All اختر نعم.
   ملاحظة: بعض نسخ cPanel تستبدل الملفات المتطابقة تلقائيًا أثناء Extract ولا تعرض نافذة منفصلة.
6) بعد الاستخراج احذف ملف ZIP من الاستضافة.

تشغيل ترقية قاعدة البيانات والتنظيف
-----------------------------------
1) سجل الدخول بحساب Super Admin.
2) افتح:
   /student-gateway/admin/apply-2026-08-upgrade.php
3) اضغط Apply upgrade now مرة واحدة.
4) تأكد من ظهور Upgrade completed successfully.
5) بعد النجاح يمكنك حذف ملف admin/apply-2026-08-upgrade.php من الاستضافة.

ما يطبقه التحديث
----------------
- اعتماد نتيجة كل محاولة اختبار يدويًا قبل ظهورها للطالب أو دخولها في Grade.
- فصل إظهار النتيجة عن إظهار الإجابات الصحيحة.
- تحسين واجهة الاختبار للجوال واللابتوب والتنقل والنتيجة النهائية.
- إبقاء الطالب عند بداية السؤال عند التنقل/الاستئناف بدل الرجوع إلى أول قطعة القراءة.
- إصلاح مسارات الحضور 404، الكاميرا وقراءة QR وطرق تسجيل الحضور.
- حذف رابط Live Attendance وتحويل صفحته القديمة إلى صفحة الحضور العادية.
- تقرير حضور أسبوعي/شهري قابل للطباعة والتصدير CSV.
- طبقة UI مشتركة محسنة لكل صفحات المعلم، مع زر رجوع ثابت للوحة المعلم.
- فصل موارد المعلم عن موارد الطالب (student / teacher / both).
- منع أي مجموع نهائي أو نسبة من تجاوز 100%.
- تكبير خطوط نسخة درجات الطالب المطبوعة/PDF.
- ربط الشهادة بالدورة والدرجة الرسمية المعتمدة، ولا تظهر إلا بعد إصدارها من الأدمن.
- معاينة التسجيل الصوتي ومدته قبل التسليم؛ تسجيل الاختبار يُقفل بعد أول تسجيل/اختيار ملف في جلسة الحل، بينما الواجب يسمح بإعادة التسجيل.
- حماية إضافية للملفات الحساسة وسياسة كاميرا/ميكروفون آمنة.
- حذف أسماء ملفات قديمة مكشوفة أو خاطئة بأسماء محددة فقط.

تأثيرات مقصودة
---------------
- النتائج السابقة غير المعتمدة لن تظهر في Grade حتى يعتمدها المعلم أو الأدمن.
- خيار Show Correct Answers لا ينشر الدرجة، واعتماد الدرجة لا يُظهر الإجابات تلقائيًا.
- الموارد الموجودة قبل الترقية تُصنف Student افتراضيًا؛ يمكن للأدمن إنشاء موارد Teacher أو Both لاحقًا.
- رابط Live Attendance القديم يعيد التوجيه إلى Attendance بدل تقديم نظام حضور مكرر.
- لا تتغير كلمة مرور قاعدة البيانات، ولا تُحذف بيانات الطلاب أو الاختبارات أو الدرجات المعتمدة.

التحقق بعد الترقية
-----------------
- طالب: افتح Attendance واختبر الكود والكاميرا/QR من HTTPS.
- طالب: ابدأ اختبارًا تجريبيًا وتحقق من التنقل والشريط والمعاينة الصوتية.
- معلم: صحح محاولة ثم اضغط Approve & Release Result.
- طالب: تحقق أن النتيجة ظهرت بعد الاعتماد فقط.
- أدمن: أنشئ موردًا Teacher وتأكد أنه لا يظهر للطالب.
- معلم: افتح Attendance Report وجرّب Print وExport CSV.
- طالب: افتح Grades ثم Print/PDF وتحقق من وضوح الخط.
