📋 نظرة عامة على النظام
🎯 ما هو 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
🎛️ اللوحات الأربعة - فهم النظام
النظام يحتوي على 4 لوحات منفصلة، كل لوحة مخصصة لدور معين ولها مميزاتها الخاصة
1. لوحة Admin
🔗 الرابط: /admin
👤 من يستخدمها: Super Admin و System Admin
⚡ الصلاحيات:
- إدارة جميع المدارس (Tenants)
- إنشاء وتعديل المستخدمين من جميع الأنواع
- إدارة الأدوار والصلاحيات
- إعدادات النظام العامة
- عرض التقارير والإحصائيات الشاملة
- إدارة الأقسام والتخصصات
2. لوحة 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 إعداد المدرسة (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: دائماً احتفظ بحساب واحد على الأقل
- لا تعطي صلاحيات زائدة: أعط كل مستخدم الصلاحيات المناسبة فقط
- لا تنسى النسخ الاحتياطي: احتفظ بنسخة من قاعدة البيانات دورياً
- تحقق من الأدوار: قبل منح الوصول، تأكد من الدور الصحيح
✅ أفضل الممارسات
- رتب المحتوى: نظم الدورات والموارد بشكل منطقي
- استخدم الأقسام: قسّم المحتوى لسهولة الوصول
- راقب الأداء: تابع الإحصائيات بانتظام
- تواصل مع المستخدمين: استخدم نظام الإشعارات
- حدّث النظام: ابقَ على اطلاع بالتحديثات
📚 موارد إضافية
- Laravel Documentation: laravel.com/docs
- Filament Documentation: filamentphp.com/docs
- Shield Plugin: github.com/bezhanSalleh/filament-shield
📋 خلاصة سريعة - المرجع السريع
🎯 الروابط المهمة
| اللوحة | الرابط | المستخدمون |
|---|---|---|
| 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 |
مسح الكاش |