🎓 دليل نظام AI School

الدليل الشامل لاستخدام نظام إدارة المدرسة الذكية

📋 نظرة عامة على النظام

🎯 ما هو AI School؟

AI School هو نظام متكامل لإدارة المدارس والمؤسسات التعليمية، مبني على تقنية Laravel 11 وFilament 3، يوفر حلولاً شاملة لإدارة العملية التعليمية بكفاءة عالية.

🏢

Multi-Tenancy

نظام متعدد المستأجرين يسمح بإدارة مدارس متعددة

🎛️

4 لوحات تحكم

لوحات منفصلة لكل دور في النظام

🔐

نظام صلاحيات متقدم

تحكم دقيق في الصلاحيات لكل مستخدم

📚

إدارة المحتوى

نظام شامل للدورات والموارد التعليمية

👥

إدارة المستخدمين

طلاب، مدرسين، وإداريين

🌍

متعدد اللغات

دعم كامل للعربية والإنجليزية

🏗️ البنية التقنية للنظام

🔧 المكونات الأساسية

  • Framework: Laravel 11
  • Admin Panel: Filament 3
  • Database: MySQL/PostgreSQL
  • Authentication: Laravel Sanctum
  • Roles & Permissions: Spatie Permission + Filament Shield
  • Multi-Tenancy: Custom Implementation

📂 هيكل المشروع

🎯 المجلدات الرئيسية

  • app/Filament/ - يحتوي على اللوحات الأربعة (Admin, Owner, Instructor, Student)
  • app/Models/ - نماذج البيانات (User, Course, Resource, Department, etc.)
  • app/Policies/ - سياسات الصلاحيات
  • database/migrations/ - ملفات قاعدة البيانات
  • lang/ - ملفات الترجمة (ar/en)

🚀 الخطوات الأولى - ابدأ من هنا!

⚠️ مهم جداً: يجب اتباع هذه الخطوات بالترتيب لضمان عمل النظام بشكل صحيح

1 التثبيت الأولي

ما تحتاج لعمله:

  • استنساخ المشروع من Git أو نسخ الملفات
  • تشغيل: composer install
  • تشغيل: npm install
  • نسخ .env.example إلى .env
  • تعديل إعدادات قاعدة البيانات في .env

2 إعداد قاعدة البيانات

خطوات مهمة:

  • تشغيل: php artisan key:generate
  • تشغيل: php artisan migrate - لإنشاء الجداول
  • تشغيل: php artisan db:seed - لإضافة البيانات الأولية
  • تشغيل: php artisan shield:generate - لإنشاء الصلاحيات
✅ الآن قاعدة البيانات جاهزة مع الأدوار والصلاحيات الأساسية

3 إنشاء أول مستخدم (Super Admin)

المستخدم الرئيسي:

  • تشغيل: php artisan make:filament-user
  • أدخل البيانات المطلوبة (الاسم، البريد، كلمة المرور)
  • هذا المستخدم سيكون Super Admin بصلاحيات كاملة
📝 ملاحظة: احفظ بيانات الدخول في مكان آمن!

4 الدخول إلى لوحة التحكم

الوصول إلى النظام:

  • تشغيل الخادم: php artisan serve
  • افتح المتصفح واذهب إلى: http://localhost:8000/admin
  • سجل الدخول ببيانات Super Admin
🎉 تهانينا! أنت الآن في لوحة Admin الرئيسية

🎛️ اللوحات الأربعة - فهم النظام

النظام يحتوي على 4 لوحات منفصلة، كل لوحة مخصصة لدور معين ولها مميزاتها الخاصة

1. لوحة Admin

🔗 الرابط: /admin

👤 من يستخدمها: Super Admin و System Admin

⚡ الصلاحيات:

  • إدارة جميع المدارس (Tenants)
  • إنشاء وتعديل المستخدمين من جميع الأنواع
  • إدارة الأدوار والصلاحيات
  • إعدادات النظام العامة
  • عرض التقارير والإحصائيات الشاملة
  • إدارة الأقسام والتخصصات
⚠️ هام: هذه اللوحة للإدارة العليا فقط - تحكم كامل في النظام

2. لوحة Owner

🔗 الرابط: /owner

👤 من يستخدمها: مالك/مدير المدرسة

⚡ الصلاحيات:

  • إدارة مدرسته الخاصة فقط
  • إضافة وإدارة المدرسين
  • إدارة الطلاب والتسجيلات
  • إنشاء وإدارة الدورات
  • عرض تقارير وإحصائيات المدرسة
  • إعدادات المدرسة الخاصة
📊 لوحة Owner هي المركز الإداري لكل مدرسة

3. لوحة Instructor

🔗 الرابط: /instructor

👤 من يستخدمها: المدرسين

⚡ الصلاحيات:

  • عرض الدورات المخصصة له
  • إدارة محتوى الدورات (Courses)
  • إضافة وتعديل الموارد التعليمية (Resources)
  • عرض الطلاب المسجلين في دوراته
  • متابعة تقدم الطلاب
  • التواصل مع الطلاب
👨‍🏫 لوحة المدرس - التركيز على التدريس وإدارة المحتوى

4. لوحة Student

🔗 الرابط: /student

👤 من يستخدمها: الطلاب

⚡ الصلاحيات:

  • عرض الدورات المسجل فيها
  • الوصول إلى الموارد التعليمية
  • متابعة تقدمه الدراسي
  • تسليم الواجبات
  • عرض الدرجات والتقييمات
  • التواصل مع المدرسين
🎓 لوحة الطالب - بيئة تعليمية بسيطة ومركزة

👥 نظام الأدوار والصلاحيات

🎯 فلسفة النظام

النظام يستخدم نموذج RBAC (Role-Based Access Control) مع تقسيم واضح للصلاحيات حسب الدور

📋 الأدوار الأساسية في النظام

👑

Super Admin

Admin Panel

صلاحيات كاملة على كل شيء في النظام

🏢

Owner

Owner Panel

مدير المدرسة - صلاحيات إدارية على مدرسته

👨‍🏫

Instructor

Instructor Panel

المدرس - إدارة الدورات والمحتوى

🎓

Student

Student Panel

الطالب - الوصول للمحتوى التعليمي

🔐 كيف يعمل نظام الصلاحيات؟

  • Shield Plugin: يولد صلاحيات تلقائية لكل Resource (view, create, update, delete)
  • Policies: تحدد من يستطيع فعل ماذا على كل Model
  • Panel Middleware: يتحقق من الدور قبل الدخول لكل لوحة
  • Custom Permissions: يمكن إضافة صلاحيات مخصصة حسب الحاجة

⚠️ قواعد مهمة

  • المستخدم يمكن أن يكون له أكثر من دور
  • الصلاحيات تتراكم (إذا كان لديه دورين، يحصل على صلاحيات الاثنين)
  • Super Admin يتجاوز جميع الفحوصات
  • Policies لها الأولوية على Permissions العادية

🔄 سير العمل - الترتيب الصحيح للعمليات

هذا القسم يشرح الترتيب المنطقي للعمل في النظام من البداية للنهاية

📊 مخطط سير العمل الكامل

1. إعداد المدرسة
2. إنشاء الأقسام
3. إضافة المدرسين
4. إنشاء الدورات
5. إضافة الموارد
6. تسجيل الطلاب
7. بدء الدراسة

الخطوات التفصيلية

1 إعداد المدرسة (Tenant Setup)

📍 اللوحة: Admin Panel

✅ الخطوات:

  • اذهب إلى: Multi-Tenancy → Tenants
  • انقر على: Create Tenant
  • أدخل: اسم المدرسة، النطاق (domain)، البيانات الأساسية
  • حدد: Owner للمدرسة (أو أنشئ مستخدم جديد)
  • احفظ وفعّل المدرسة

2 إنشاء الأقسام (Departments)

📍 اللوحة: Owner Panel

✅ الخطوات:

  • سجل دخول كـ Owner
  • اذهب إلى: School Management → Departments
  • أضف الأقسام: مثل (علوم حاسب، رياضيات، لغات، إلخ)
  • لكل قسم: اسم، وصف، حالة (نشط/غير نشط)
💡 الأقسام تساعد في تنظيم الدورات والمدرسين

3 إضافة المدرسين (Instructors)

📍 اللوحة: Owner Panel

✅ الخطوات:

  • اذهب إلى: User Management → Users
  • انقر: Create User
  • املأ البيانات: (الاسم، البريد، كلمة المرور)
  • مهم: اختر Role: Instructor
  • حدد: القسم المناسب للمدرس
  • احفظ وأرسل بيانات الدخول للمدرس

4 إنشاء الدورات (Courses)

📍 اللوحة: Owner Panel أو Instructor Panel

✅ الخطوات:

  • اذهب إلى: Courses Management → Courses
  • انقر: Create Course
  • أدخل المعلومات:
    • عنوان الدورة
    • الوصف والأهداف
    • القسم المناسب
    • المدرس المسؤول
    • المدة والمستوى
    • السعر (إن وجد)
  • احفظ الدورة

5 إضافة الموارد التعليمية (Resources)

📍 اللوحة: Instructor Panel

✅ الخطوات:

  • افتح الدورة المطلوبة
  • اذهب إلى: Resources داخل الدورة
  • انقر: Add Resource
  • اختر نوع المورد:
    • فيديو (Video)
    • ملف PDF
    • رابط خارجي (Link)
    • نص (Text/Article)
  • رتب الموارد حسب التسلسل المناسب
✅ الآن الدورة جاهزة للطلاب!

6 تسجيل الطلاب (Student Enrollment)

📍 اللوحة: Owner Panel

✅ الخطوات:

  • إنشاء حسابات الطلاب:
    • اذهب إلى: User Management → Users
    • أنشئ حساب لكل طالب
    • حدد Role: Student
  • تسجيل الطلاب في الدورات:
    • اذهب إلى: Enrollments
    • انقر: Create Enrollment
    • اختر: الطالب والدورة
    • حدد: تاريخ البدء والانتهاء

7 بدء الدراسة

📍 اللوحة: Student Panel

✅ ماذا يحدث:

  • الطالب يسجل دخول إلى: /student
  • يرى دوراته المسجلة
  • يمكنه الوصول للموارد التعليمية
  • يتابع تقدمه وإنجازاته
🎉 النظام يعمل بشكل كامل!

المميزات المتقدمة

🌍 نظام متعدد اللغات (Localization)

  • دعم كامل للعربية والإنجليزية
  • التبديل السهل بين اللغات
  • جميع النصوص قابلة للترجمة
  • ملفات الترجمة في: lang/ar/ و lang/en/

📊 التقارير والإحصائيات

  • Widgets على Dashboard لكل لوحة
  • إحصائيات عن الطلاب والدورات
  • تقارير الأداء والتقدم
  • رسوم بيانية تفاعلية

🔔 نظام الإشعارات

  • إشعارات داخل النظام
  • إشعارات عبر البريد الإلكتروني
  • إخطارات للأحداث المهمة
  • تتبع النشاطات (Activity Log)

⚙️ نظام الإعدادات (Settings)

  • إعدادات عامة للنظام
  • إعدادات خاصة لكل مدرسة (Tenant)
  • تخصيص المظهر والألوان
  • إعدادات البريد الإلكتروني

🔒 الأمان والحماية

  • تشفير كلمات المرور
  • تسجيل محاولات الدخول
  • حماية من CSRF
  • Rate Limiting على API
  • Two-Factor Authentication (قيد التطوير)

📱 واجهة متجاوبة (Responsive)

  • تعمل على جميع الأجهزة
  • تصميم متجاوب للموبايل والتابلت
  • تجربة مستخدم سلسة

💡 نصائح مهمة للاستخدام الأمثل

⚠️ أخطاء شائعة يجب تجنبها

  • لا تحذف Super Admin: دائماً احتفظ بحساب واحد على الأقل
  • لا تعطي صلاحيات زائدة: أعط كل مستخدم الصلاحيات المناسبة فقط
  • لا تنسى النسخ الاحتياطي: احتفظ بنسخة من قاعدة البيانات دورياً
  • تحقق من الأدوار: قبل منح الوصول، تأكد من الدور الصحيح

✅ أفضل الممارسات

  • رتب المحتوى: نظم الدورات والموارد بشكل منطقي
  • استخدم الأقسام: قسّم المحتوى لسهولة الوصول
  • راقب الأداء: تابع الإحصائيات بانتظام
  • تواصل مع المستخدمين: استخدم نظام الإشعارات
  • حدّث النظام: ابقَ على اطلاع بالتحديثات

📚 موارد إضافية

📋 خلاصة سريعة - المرجع السريع

🎯 الروابط المهمة

اللوحة الرابط المستخدمون
Admin Panel /admin Super Admin
Owner Panel /owner School Owner
Instructor Panel /instructor Teachers
Student Panel /student Students

⚡ أوامر مهمة

php artisan serve تشغيل الخادم المحلي
php artisan migrate تشغيل ملفات قاعدة البيانات
php artisan shield:generate إنشاء الصلاحيات
php artisan make:filament-user إنشاء مستخدم Super Admin
php artisan optimize:clear مسح الكاش