hollow-flutter

byMohammed Obaid

أنشئ من الصفر تطبيقًا متكاملًا لإدارة «مركز السنة للعلوم الشرعية وتأهيل الدعاة» في عتق – شبوة. التطبيق مخصص لإدارة المعلمين والطلاب والدروس والمتون والأوراد القرآنية والتقارير. لا تفحص مستودعًا موجودًا ولا تعتمد على شيفرة سابقة. أنشئ ملفات المشروع وبنيته وكوده بنفسك، واجعل التطبيق قابلًا للتشغيل والتطوير. ## التقنيات - Flutter وDart. - Firebase Authentication لتسجيل الدخول. - Cloud Firestore لتخزين البيانات. - Provider لإدارة الحالة. - SharedPreferences للإعدادات المحلية. - fl_chart للرسوم البيانية. - دعم Android وFlutter Web. - استخدم أحدث إصدارات مستقرة متوافقة من Flutter والحزم. ## اللغة والتصميم - واجهة عربية بالكامل باتجاه RTL. - تصميم متجاوب للهاتف والويب، مع دعم الوضعين الفاتح والداكن. - هوية بصرية هادئة تناسب مركزًا شرعيًا: أخضر داكن ولمسات ذهبية، وخط عربي واضح مثل IBM Plex Sans Arabic. - صمّم شاشة دخول، ولوحات رئيسية، وقوائم، ونماذج إدخال، وتقارير. - أظهر حالات التحميل والبيانات الفارغة والأخطاء وانقطاع الإنترنت برسائل واضحة. - استخدم شعارًا مؤقتًا بسيطًا قابلًا للاستبدال، ولا تستخدم صورًا محمية أو تدرج صورًا خارجية غير مرخصة. - اجعل أسماء المستخدمين ديناميكية، ولا تثبّت أسماء أشخاص في الواجهة. ## المستخدمون والصلاحيات ### المدير - إنشاء حسابات المعلمين وتعديلها وتعطيلها وحذفها. - تعيين معلم مسؤول عن المتون والأوراد القرآنية. - إعادة تعيين كلمات المرور بأمان. - استعراض المعلمين والطلاب والمستويات والسجلات. - عرض تقارير شاملة حسب المعلم والطالب والمستوى والتاريخ. ### المعلم - إدارة الطلاب التابعين له. - تسجيل الدروس اليومية وربطها بالطلاب والمستوى والتاريخ. - تسجيل الحضور والغياب. - استعراض سجل الدروس والتقارير الخاصة بطلابه. - تسجيل المتون والأوراد إذا كان مخولًا بذلك. ### المشرف - المشرف هو معلم يعيّنه المدير مسؤولًا عن المتون والأوراد. - تظهر له واجهة للوصول إلى قائمة المعلمين والطلاب. - يستطيع متابعة سجلات المعلمين والطلاب ضمن الصلاحيات المحددة له. - عند تسجيل عمل نيابة عن معلم، يجب أن يُحفظ باسم المعلم المقصود وأن يظهر ذلك بوضوح. ## المسارات التعليمية أنشئ خمسة مسارات: 1. مفاتيح الطلب. 2. معارج التحصيل – المستوى الأول. 3. معارج التحصيل – المستوى الثاني. 4. معارج التحصيل – المستوى الثالث. 5. القرآن الكريم. اعرض لكل مسار طلابه وسجلاته وتقاريره، مع إمكانية الانتقال إلى تفاصيله. ## الوظائف المطلوبة - تسجيل دخول آمن واستعادة جلسة المستخدم. - توجيه المستخدم بعد تسجيل الدخول إلى الواجهة المناسبة لدوره. - إدارة ملفات المعلمين والطلاب. - إضافة طالب وتعديله ونقله بين المستويات، مع المحافظة على سجله. - تسجيل الدروس اليومية وربطها بالمعلم والطالب والمستوى والتاريخ. - متابعة الحضور والغياب وسجل كل طالب. - تسجيل حفظ المتون والأوراد للمستخدمين المخولين. - تقارير قابلة للتصفية حسب التاريخ والمعلم والطالب والمستوى. - ملخصات إحصائية ورسوم بيانية مفهومة. - تأكيد قبل الحذف أو أي إجراء حساس، مع إظهار نتيجة العملية للمستخدم. ## قاعدة أساسية لتسجيل القرآن يعتمد تسجيل الورد ومؤشر تقدم الطالب على عدد الصفحات المسجلة فقط: - احسب مجموع الصفحات التي سُجلت فعليًا. - اجعل مؤشر التقدم يعكس هذا المجموع. - لا تحسب التقدم من عدد الأيام أو الجلسات أو مدة استخدام التطبيق. ## البيانات والأمان أنشئ نماذج بيانات واضحة للمستخدم والمعلم والطالب والدرس والمتن والورد القرآني والتقارير. افصل الواجهات عن الخدمات، وضع عمليات Firebase في طبقة خدمات مستقلة. أنشئ قواعد Firestore بصلاحيات محدودة: - المدير فقط يدير الحسابات والإعدادات العامة. - المعلم يصل إلى بياناته وطلابه وسجلاته المصرح بها. - المشرف يحصل على الصلاحيات الإضافية الممنوحة له فقط. - لا تعتمد على إخفاء الأزرار في الواجهة بدل التحقق من الصلاحية على قاعدة البيانات. - لا تخزن كلمات المرور كنص صريح، ولا تضع مفاتيح أو أسرار Firebase في الشيفرة المنشورة. - أضف بيانات تجريبية اختيارية للتطوير فقط، مع فصلها بوضوح عن بيانات الإنتاج. ## تنظيم المشروع أنشئ بنية واضحة تشمل: - `core`: الثوابت، الألوان، والثيمات. - `models`: نماذج البيانات. - `services`: المصادقة وFirestore والخدمات. - `screens`: شاشات الدخول والإدارة والمعلم والتقارير. - `widgets`: مكونات واجهة مشتركة. - `test`: اختبارات أساسية للنماذج والصلاحيات والمنطق. ## شروط التسليم - اكتب كودًا كاملًا قابلًا للبناء، لا تكتفِ بالتصاميم أو الشرح. - أضف ملف README يشرح المتطلبات وتشغيل التطبيق وإعداد Firebase. - أضف قواعد Firestore وخطوات نشرها. - أضف اختبارات للوظائف الأساسية والصلاحيات، ثم شغّل التحليل والبناء للمنصات المطلوبة. - لا تستخدم بيانات اعتماد حقيقية أو مفاتيح سرية. - إذا تعذر إعداد Firebase دون بيانات تخص المالك، أنشئ نقطة إعداد واضحة واشرح بدقة القيم التي يجب إضافتها، ولا تدّعِ أن الاتصال يعمل قبل اختباره. - لا تنفّذ نشرًا فعليًا ولا ترفع المشروع إلى مستودع بعيد دون إذن صريح.

Landing
Landing

Comments (0)

No comments yet. Be the first!

Landing design preview
Landing: بدء الاستخدام كمدير
Login: تسجيل الدخول
Overview: مراجعة الملخص الإداري
Teacher Accounts: إضافة معلم جديد
Teacher Accounts: تعديل بيانات معلم
Teacher Accounts: تعطيل أو حذف حساب
Confirmations: تأكيد الإجراء الحساس
Teacher Accounts: عرض نتيجة العملية
Assignments: تعيين مشرف للمتون والأوراد
Assignments: تأكيد التعيين وعرض النتيجة
Password Resets: إرسال رابط إعادة التعيين
Password Resets: متابعة حالة الطلب
Reports: تصفية التقارير الشاملة
Reports: عرض التقرير المصفّى
Analytics: عرض الرسوم البيانية
Paths: اختيار مسار تعليمي
Paths: عرض طلاب المسار وسجلاته
Student Details: استعراض سجل طالب
Quran Progress: عرض مجموع الصفحات المسجّلة
System States: إعادة المحاولة بعد الخطأ
Landing design preview
Landing: بدء الاستخدام كمدير
Login: تسجيل الدخول
Overview: مراجعة الملخص الإداري
Teacher Accounts: إضافة معلم جديد
Teacher Accounts: تعديل بيانات معلم
Teacher Accounts: تعطيل أو حذف حساب
Confirmations: تأكيد الإجراء الحساس
Teacher Accounts: عرض نتيجة العملية
Assignments: تعيين مشرف للمتون والأوراد
Assignments: تأكيد التعيين وعرض النتيجة
Password Resets: إرسال رابط إعادة التعيين
Password Resets: متابعة حالة الطلب
Reports: تصفية التقارير الشاملة
Reports: عرض التقرير المصفّى
Analytics: عرض الرسوم البيانية
Paths: اختيار مسار تعليمي
Paths: عرض طلاب المسار وسجلاته
Student Details: استعراض سجل طالب
Quran Progress: عرض مجموع الصفحات المسجّلة
System States: إعادة المحاولة بعد الخطأ