# مشروع نظام سجلات الطلاب — saraelhaj

- [x] إنشاء جدول سجلات الطلاب مع رقم استمارة ورقم جلوس ورقم استمارة بنكية فريدة.
- [x] إضافة دوال قاعدة البيانات لإضافة السجلات وتعديلها وحذفها والبحث عنها وإدارتها دفعة واحدة.
- [x] إعداد صلاحيات الإدارة بحيث تقتصر عمليات الإدارة على المستخدمين المسجلين كمديرين.
- [x] بناء صفحة بحث عامة عربية تعتمد حصراً على رقم الجلوس لعرض بيانات الطالب ورقم الاستمارة البنكية.
- [x] بناء لوحة إدارة عربية محمية بتسجيل الدخول، مع جدول سجلات وعمليات الإضافة والتعديل والحذف.
- [x] إضافة عرض إحصاءات الإدارة وحالات التحميل والأخطاء والحالات الفارغة.
- [x] إضافة استيراد CSV وExcel مع معاينة السجلات والتحقق من الحقول والتكرار قبل الحفظ.
- [x] إعداد التصميم العربي المتجاوب والقائمة الواضحة والتذييل بحقوق النشر باسم saraelhaj.
- [x] إعداد التطبيق كـ PWA قابل للتثبيت على أجهزة أندرويد.
- [x] إعداد ملفات وإرشادات التشغيل المحلي على Windows وLinux.
- [x] إعداد إجراءات النسخ الاحتياطي والاستعادة لقاعدة البيانات.
- [x] كتابة اختبارات Vitest للبحث والتحقق من الصلاحيات ومنع التكرار والاستيراد.
- [x] التحقق البصري من واجهات الكمبيوتر والجوال ومعالجة أي أخطاء تشغيل.
- [x] توثيق استمرارية النظام: لا توجد مدة انتهاء برمجية، والاستمرارية مرتبطة بالاستضافة أو السيرفر والبيانات والنسخ الاحتياطية.
- [x] إعداد متغيرات دخول المدير المحلي بصورة آمنة.
- [x] تبسيط نموذج السجل ليعتمد على رقم الجلوس ورقم الاستمارة البنكية مع الحفاظ على منع التكرار.
- [x] تعديل قائمة الإدارة لتبدأ بإضافة سجل جديد بعد تسجيل الدخول.
- [x] إضافة زر تقرير يصدر PDF مرقماً تسلسلياً من 1 ويعرض رقم الجلوس ورقم الاستمارة البنكية.
- [x] اختبار الدخول والإدخال وتصدير التقرير ثم توثيق النتيجة.
- [x] تحديث دليل التثبيت ليعكس نموذج السجل المبسط والدخول المحلي الحالي.
- [x] إنشاء ملف ZIP كامل للمشروع دون ملفات الاعتمادات المؤقتة.
- [x] تسليم الحزمة ودليل التثبيت للمستخدم.
- [x] التحقق من متطلبات نسخة أندرويد القابلة للتثبيت وتسليم رابطها للمستخدم.
- [x] توثيق نموذج المستخدمين والملكية وصلاحيات المدير والمستخدم العادي.
- [x] إضافة مالك لكل سجل مع قيد مرجعي على حساب المستخدم وترحيل السجلات القائمة بأمان.
- [x] فرض قيود فريدة صريحة على رقم الجلوس ورقم الاستمارة البنكية في قاعدة البيانات.
- [x] عزل الاستعلامات والإضافة والتعديل والحذف والتقارير بحسب مالك السجل.
- [x] إضافة واجهة إدارة المستخدمين للمدير دون كشف سجلات مستخدم لآخر.
- [x] اختبار منع التكرار وعزل المستخدمين وصلاحيات المدير.
- [x] تشخيص سبب تعطل زر تقرير PDF وإصلاح التصدير على النسخة المنشورة.
- [x] إعداد ملف تشغيل محلي مستقل على اللابتوب مع اتصال MySQL خارجي عن ملفات التطبيق.
- [x] إضافة أو تحديث أوامر تصدير واستيراد MySQL في دليل التشغيل والنسخ الاحتياطي.
- [x] إنشاء مشروع أندرويد قابل للبناء بصيغة AAB متوافق مع Google Play.
- [ ] إعداد هوية التطبيق وملفات متجر Google Play وإرشادات التوقيع والنشر التجاري.
- [x] استكمال القيد المرجعي الإلزامي `student_records.ownerId → users.id` في قاعدة WebDev المنشورة عند إتاحة عملية ALTER بلا قفل، مع بقاء التطبيق يفرض الملكية برمجياً حالياً.
- [ ] توقيع AAB بمفتاح إصدار مملوك لصاحب التطبيق وإكمال متطلبات حساب Google Play وبيانات الخصوصية قبل الرفع التجاري.
- [x] إضافة مسار حذف حساب وبياناته من داخل التطبيق ورابط عام خارجي لطلب الحذف قبل إرسال التطبيق إلى Google Play.
- [x] إضافة اختبار Vitest لحذف حساب المحرر والتحقق من كلمة المرور ومنع حذف حساب المدير.
- [x] إضافة اختبارات Vitest مباشرة لصلاحيات راوتر إدارة المستخدمين للمدير مقابل المستخدم العادي.
- [x] إضافة اختبار إجراء يثبت رفض الوصول أو التعديل أو الحذف لسجل مالك آخر.
- [x] إضافة اختبار تعارض عالمي لرقم الجلوس ورقم الاستمارة البنكية بين مالكين دون كشف تفاصيل المالك الآخر.
- [x] إضافة مكوّنات Skeleton متجاوبة لبيانات لوحة السجلات وإدارة المستخدمين والاستيراد.
- [x] تحسين حالات التحميل المتحركة والأخطاء القابلة لإعادة المحاولة في الواجهة العربية.
- [x] اختبار بصري لحالات التحميل على الكمبيوتر والجوال وتحديث الاختبارات ذات الصلة.
- [x] توسيع نموذج المستخدم ليعرض رتبة admin أو editor في واجهة الحسابات.
- [x] قصر الوصول إلى التقارير وبيانات التقرير على رتبة admin في الواجهة والخادم.
- [x] ربط تقرير كل مستخدم بملكيته مع ضمان عدم كشف سجلات مالك آخر.
- [x] إضافة فلترة تقارير المدير بتاريخ البداية والنهاية.
- [x] إضافة اختبارات صلاحيات editor ومنع الوصول للتقارير وفلاتر التاريخ.
- [ ] إكمال أصول Google Play النهائية: لقطات شاشة هاتف حقيقية، اعتماد أيقونة المتجر النهائية، وتحديد اسم الناشر وبريد الدعم.
- [x] تجهيز حزمة مبدئية لمواد متجر Google Play تضم رمز التطبيق ولقطات واجهة فعلية وبيانات الناشر المعتمدة.
- [x] استبدال رمز المتجر المبدئي برمز نظيف خالٍ من الحواف الشاذة وتجهيزه للمراجعة داخل حزمة الأصول.
- [x] تضمين الرمز النهائي داخل موارد Android الأصلية وإعادة بناء AAB والتحقق المرئي من المورد المستخرج من الحزمة الناتجة.
- [ ] تشغيل AAB الموقعة على جهاز أو محاكي والتحقق فعلياً من ظهور الأيقونة في المشغل قبل النشر التجاري.
- [ ] مراجعة واعتماد نموذج Data safety وسياسة الخصوصية النهائية داخل Play Console وربطها بجهة اتصال خصوصية حقيقية.
- [x] توثيق حزمة تسليم نهائية خاصة بمواد المتجر الجاهزة للرفع بدلاً من الاكتفاء بملاحظات إرشادية.
- [x] تحديث سياسة الخصوصية ومواد Google Play باسم الناشر وبريد الدعم المعتمدين.
- [x] إعداد ملف نشر خادم يوضح اتصال التطبيق بقاعدة MySQL مستقلة عبر DATABASE_URL وحفظه ضمن حزمة التسليم.
- [x] تحديث حزمة المصدر وبيان التسليم بملفات الخادم وAAB ومواد متجر Google Play الأخيرة.
- [ ] تسليم خطوات عملية ومختصرة لتوقيع AAB ورفعها إلى Google Play Internal testing ثم الإنتاج.
