Skip to content

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

نظام مدار لإدارة المدرسة — v4 Professional

نظام إدارة مدرسة محلي مبني بـ PHP + PDO + MySQL/MariaDB، ومجهز للتشغيل على XAMPP في Windows. الواجهة عربية RTL ومتجاوبة مع الكمبيوتر والهاتف واللوحي.

ما الذي تم تطويره؟

هذه النسخة ليست مجرد تغيير ألوان؛ تمت إعادة مراجعة التدفق البرمجي والبيانات وإضافة طبقات عملية:

  • جلسات PHP آمنة: HttpOnly + SameSite=Lax + Secure تلقائيًا عند HTTPS.

  • تجديد Session ID بعد تسجيل الدخول، مهلة خمول 30 دقيقة وحد أقصى 8 ساعات.

  • CSRF على عمليات POST الحساسة، وتحويل حذف الطالب وتسجيل الخروج من GET إلى POST.

  • استعلامات PDO مجهزة، وترميز HTML مركزي، والتحقق من المدخلات في الخادم.

  • صلاحيات RBAC + صلاحيات فردية + سجل تدقيق.

  • حماية أولية من محاولات الدخول المتكررة.

  • حماية مجلد uploads من تنفيذ ملفات PHP.

  • رفع صور يتحقق من MIME والحجم وكون الملف صورة فعلية، مع أسماء عشوائية.

  • الهيكل الأكاديمي: رياض أطفال، ابتدائي، متوسط، ثانوي؛ صفوف وشعب وغرف وسعة وعام دراسي.

  • قاعدة بيانات تجريبية موسعة تشمل 28 شعبة و140 طالبًا و14 مادة و14 معلمًا وتوزيعات مادة/معلم/شعبة.

  • صفحة الهيكل الأكاديمي والتوزيع التعليمي.

  • تصدير قائمة الطلاب إلى CSV مع UTF-8 BOM لفتحها بشكل صحيح في Excel.

  • وضع فاتح/داكن يحفظ التفضيل محليًا فقط.

  • Drawer متجاوب للهاتف، Overlay، إغلاق بـ Escape، واختصار Ctrl + K للبحث.

  • Tooltips ومساعدات للحقل ورسائل تحقق عربية.

  • حركة خفيفة مع احترام prefers-reduced-motion.

  • تقارير قابلة للطباعة ومحرر Quill محلي.

  • رؤوس أمنية أساسية للمتصفح.

بيانات الدخول التجريبية

الحسابات التجريبية التالية تستخدم كلمة المرور:

admin123

المستخدم الدور
admin مدير النظام
manager1 مدير المدرسة
accountant1 محاسب
teacher1 معلم

غيّر كلمات المرور فورًا قبل أي استخدام فعلي. البيانات داخل قاعدة البيانات تجريبية وليست بيانات طلاب حقيقية.

التثبيت الجديد — موصى به

  1. ثبّت XAMPP وشغّل Apache و MySQL.

  2. فك ضغط المشروع داخل: C:\xampp\htdocs\school_manager

  3. افتح phpMyAdmin.

  4. استورد: database.sql

  5. افتح: http://localhost/school_manager/login.php

  6. سجّل الدخول بالحساب التجريبي.

  7. من إعدادات المدرسة غيّر اسم المدرسة والهوية والبيانات.

  8. من المستخدمون والصلاحيات أنشئ حسابات العمل الحقيقية وغيّر كلمات المرور.

لا تحتاج النسخة الجديدة إلى استيراد upgrade_v2.sql أو upgrade_v3.sql عند التثبيت من الصفر. ملف database.sql أصبح شاملًا.

ترقية قاعدة قديمة

إذا لديك قاعدة v2/v3 تحتوي بيانات تريد الاحتفاظ بها:

  1. خذ Export/Backup من phpMyAdmin.

  2. استورد upgrade_v4.sql.

  3. استبدل ملفات المشروع بالنسخة الجديدة.

  4. افتح النظام بعد إعادة تشغيل Apache.

  5. راجع الهيكل الأكاديمي والمستخدمون والصلاحيات.

إذا كانت قاعدة MySQL قديمة جدًا ولا تدعم ADD COLUMN IF NOT EXISTS، حدّث XAMPP/MariaDB قبل تنفيذ الترقية.

هيكل قاعدة البيانات

الجداول الأساسية:

  • users: المستخدمون والحسابات.

  • permissions, role_permissions, user_permissions: التحكم في الوصول.

  • audit_logs: سجل العمليات الحساسة.

  • classes: المرحلة + الصف + الشعبة + الغرفة + السعة + العام.

  • students: ملف الطالب وولي الأمر والحالة.

  • subjects: المواد وعدد الحصص والمرحلة.

  • teachers: بيانات المعلمين.

  • teacher_subjects: المواد التي يستطيع المعلم تدريسها.

  • class_subjects: المادة والمعلم المرتبطان بالشعبة.

  • attendance: الحضور اليومي بقيد يمنع تكرار الطالب في اليوم نفسه.

  • payments: المدفوعات والإيصالات.

  • installments: الأقساط والاستحقاقات.

  • reports: التقارير الرسمية.

  • notifications: التنبيهات.

  • school_settings: هوية المدرسة.

  • login_attempts: محاولات الدخول الفاشلة.

ملاحظة مهمة حول "بيانات الطلاب الكاملة"

تم وضع بيانات تجريبية شاملة تغطي جميع المراحل والصفوف والشعب لأغراض الاختبار. لا ينبغي اعتبارها بيانات مدرسة حقيقية. لإدخال بيانات المدرسة الفعلية يمكن إضافة استيراد Excel لاحقًا مع قالب مطابق للحقول.

الملفات الرئيسية

الملف الوظيفة
config.php اتصال PDO والرؤوس الدفاعية
functions.php الجلسة، CSRF، الصلاحيات، التدقيق، التنظيف
login.php تسجيل الدخول
logout.php إنهاء الجلسة عبر POST
index.php لوحة التحكم
academic.php الهيكل الأكاديمي
students.php الطلاب
students_export.php تصدير CSV
student_save.php حفظ الطالب
student_delete.php حذف الطالب
teachers.php المعلمون
assignments.php توزيع المواد على المعلمين والشعب
classes.php الفصول والشعب
subjects.php المواد
attendance.php الحضور
payments.php المدفوعات
installments.php الأقساط
reports.php التقارير والطباعة
settings.php هوية المدرسة
users.php المستخدمون والصلاحيات
audit.php سجل التدقيق
assets/css/style.css الهوية والتجاوب والوضع الداكن والحركة
assets/js/app.js تفاعل الواجهة والتحقق وتجربة الهاتف
database.sql تثبيت قاعدة v4 كاملة
upgrade_v4.sql ترقية قاعدة v2/v3

اختبار قبول مختصر

المصادقة

  • كلمة مرور صحيحة/خاطئة.

  • مستخدم غير نشط لا يستطيع الدخول.

  • محاولة متكررة للدخول تُحد.

  • بعد 30 دقيقة من عدم النشاط تنتهي الجلسة.

  • تسجيل الخروج لا يعمل عبر GET ويحتاج POST + CSRF.

الطلاب

  • إضافة، تعديل، حذف.

  • رمز طالب مكرر.

  • تاريخ غير صحيح.

  • فصل غير موجود.

  • بحث بالاسم والرمز.

  • تصدير CSV.

  • إدخال HTML مثل <script> يجب أن يظهر كنص عند العرض.

الحضور

  • الطالب نفسه في اليوم نفسه لا ينشئ سجلًا ثانيًا.

  • التعديل يستبدل الحالة.

  • تاريخ غير صحيح يرفض.

المالية

  • مبلغ صفر أو سالب يرفض.

  • دفعة القسط أكبر من المتبقي ترفض.

  • تسجيل الدفعة وسجل التدقيق.

  • الأقساط المستحقة تظهر في التنبيهات.

الصلاحيات

  • الموظف يرى فقط الوحدات الممنوحة.

  • إخفاء الرابط ليس طبقة أمنية؛ كل صفحة تعيد فحص الصلاحية على الخادم.

  • تغيير دور المستخدم لا يمنح صلاحيات غير موجودة في قاعدة البيانات.

  • لا يستطيع المستخدم تخفيض صلاحية حسابه الإداري بنفسه.

الواجهة

  • Chrome / Edge / Firefox حديث.

  • عرض سطح المكتب.

  • هاتف بعرض 360px تقريبًا.

  • جهاز لوحي.

  • فتح وإغلاق القائمة.

  • Escape يغلق القائمة.

  • الوضع الفاتح/الداكن.

  • Ctrl + K يركز البحث.

  • تعطيل الحركة من إعدادات النظام يجب ألا يكسر الواجهة.

ملاحظات إنتاجية

هذه النسخة قوية كنظام محلي تعليمي/إداري، لكنها ليست بديلًا عن Hardening كامل لخادم إنتاج عام. قبل نشرها على الإنترنت يجب على الأقل:

  1. HTTPS إجباري.

  2. حساب MySQL منفصل للتطبيق بصلاحيات أقل من root.

  3. نسخ احتياطية دورية واختبار استعادة النسخ.

  4. إدارة أسرار الاتصال خارج ملفات المصدر.

  5. تحديث PHP وMySQL وXAMPP.

  6. مراجعة أمنية مستقلة قبل التعامل مع بيانات شخصية حقيقية.

  7. إضافة سياسة احتفاظ وحذف للبيانات حسب متطلبات الجهة التعليمية.

قرار هندسي مهم

تم الحفاظ على الفكرة الأصلية: نظام إدارة مدرسة محلي بسيط قابل للتعلم والتشغيل على XAMPP، بدل تحويله إلى إطار عمل ضخم يحتاج Composer أو Node.js أو خدمة سحابية. الإضافات الجديدة تخدم نفس المجال وتفتح الطريق لاحقًا إلى الدرجات، الجدول المدرسي، الاستيراد من Excel، بطاقات الطلاب، وشهادات النتائج دون هدم البنية الحالية.

About

# نظام مدار لإدارة المدرسة — v4 Professional نظام إدارة مدرسة محلي مبني بـ **PHP + PDO + MySQL/MariaDB**، ومجهز للتشغيل على **XAMPP** في Windows. الواجهة عربية RTL ومتجاوبة مع الكمبيوتر والهاتف واللوحي.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages