Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

نظام إدارة المدرسة المتكامل

تطبيق متعدد المنصات لإدارة العمليات المدرسية اليومية — من تسجيل الطلاب والدرجات إلى الأقساط والرواتب والإشعارات — مع واجهات مخصصة لكل دور: مدير، معلم، ولي أمر، طالب.

مشروع تخرج / محفظة أعمال يُظهر بناء تطبيق كامل من الصفر بلغة Python، بواجهة حديثة، وقاعدة بيانات علائقية، ودعم الويب والموبايل.


لقطة سريعة

البند التفاصيل
اللغة Python 3.12+
واجهة المستخدم Flet 0.25 (مبني على Flutter)
قاعدة البيانات SQLite + SQLAlchemy ORM
حجم الكود ~7,000 سطر في ملف التطبيق الرئيسي
نماذج البيانات 20+ جدول
الأدوار 4 أدوار مع صلاحيات منفصلة
المنصات متصفح الويب · سطح المكتب · Android (APK)

المهارات التقنية المُطبَّقة

1. برمجة Python المتقدمة

  • بناء تطبيق monolith منظم بأكثر من 7,000 سطر
  • استخدام contextmanager لإدارة جلسات قاعدة البيانات بأمان
  • التحقق من المدخلات (validate_email, validate_required)
  • معالجة التواريخ والأوقات (datetime, date, timedelta)
  • تشغيل مهام في الخلفية عبر threading
  • أتمتة البناء عبر subprocess في build_apk.py

2. قواعد البيانات وـ ORM

  • تصميم مخطط علائقي كامل بـ SQLAlchemy 2.x
  • علاقات ForeignKey بين المستخدمين والطلاب والمعلمين والفصول
  • جلسات DB مع commit / rollback / close تلقائي
  • استعلامات معقدة: تقارير، فلترة حسب الصف والشعبة والفصل الدراسي
  • تخزين ملفات (PDF، صوت) كـ Base64 داخل SQLite

3. واجهات المستخدم (UI/UX)

  • تصميم واجهة عربية كاملة مع خط Cairo
  • نظام ألوان موحّد ولوحات تحكم لكل دور
  • مكوّنات قابلة لإعادة الاستخدام: بطاقات إحصائية، حوارات تأكيد، SnackBar
  • تبويبات ديناميكية تُحدَّث عند التنقل (on_tab_change)
  • دعم RTL والنصوص العربية في كل الشاشات

4. الأمان والصلاحيات (RBAC)

  • Role-Based Access Control: كل مستخدم يرى واجهته فقط
  • تشفير كلمات المرور: SHA-256 + salt عشوائي (secrets.token_hex)
  • فصل صلاحيات المدير / المعلم / ولي الأمر / الطالب على مستوى الواجهة والبيانات
  • موافقة المدير على الدرجات قبل اعتمادها (pendingapproved / rejected)

5. تطوير متعدد المنصات (Cross-Platform)

  • ويب: ft.AppView.WEB_BROWSER مع اكتشاف IP للشبكة المحلية
  • سطح المكتب: python main.py --desktop
  • Android: flet build apk مع سكربت إصلاح إصدار Kotlin تلقائياً
  • رفع الملفات عبر upload_dir

6. هندسة البرمجيات

  • فصل الطبقات: نماذج DB → دوال الأعمال → شاشات UI
  • شاشات مستقلة: AdminScreen, TeacherScreen, ParentScreen, StudentScreen
  • ثوابت مركزية للألوان والفئات (COLORS, TALENT_CATEGORIES, …)
  • إعداد المشروع عبر pyproject.toml و requirements.txt

الميزات الوظيفية

المدير (14 تبويباً)

التبويب الوظيفة
الرئيسية لوحة إحصائيات شاملة
الطلاب / المعلمون / الفصول إدارة كاملة CRUD
التقارير تقارير الطلاب والمعلمين
الأقساط تسجيل الأقساط والمدفوعات
الرواتب رواتب المعلمين والموظفين + مكافآت
الموظفون إدارة عمال المدرسة غير التعليميين
الدرجات اعتماد أو رفض درجات المعلمين
تقارير المعلمين استلام التقارير والرد عليها
المواهب تصنيف مواهب الطلاب
التسلسل الدراسي السجل الأكاديمي التاريخي
المقاطع الصوتية سماعيات فرنسي/إنجليزي
الإشعارات إرسال إشعارات جماعية أو فردية

المعلم (10 تبويبات)

الحضور والغياب · إدخال الدرجات · رفع الواجبات · التقارير · ملاحظات السلوك · المواهب · الاختبار الأسبوعي (PDF + مؤقت زمني) · السماعيات · الإشعارات · تغيير كلمة المرور

ولي الأمر (9 تبويبات)

متابعة الأبناء · الدرجات · الواجبات · الأقساط · السلوك · الاختبار الأسبوعي · السماعيات · الإشعارات

الطالب (7 تبويبات)

الدرجات · الواجبات · الاختبار الأسبوعي · السماعيات · الإشعارات


مخطط الأدوار (Use Cases)

graph LR
    subgraph "نظام إدارة المدرسة"
        UC1[إدارة الحسابات]
        UC2[تسجيل الدخول]
        UC3[رصد الدرجات]
        UC4[تسجيل الحضور]
        UC5[عرض النتائج]
        UC6[إدارة الملفات]
        UC7[الإشعارات]
        UC8[التواصل]
        UC9[الأقساط والرواتب]
    end

    Admin((المدير))
    Teacher((المعلم))
    Parent((ولي الأمر))
    Student((الطالب))

    Admin --> UC1
    Admin --> UC2
    Admin --> UC6
    Admin --> UC7
    Admin --> UC9

    Teacher --> UC2
    Teacher --> UC3
    Teacher --> UC4
    Teacher --> UC8

    Parent --> UC2
    Parent --> UC5
    Parent --> UC8

    Student --> UC2
    Student --> UC5

    UC3 -.-> UC7
    UC4 -.-> UC7
Loading

هيكل المشروع

school_system/
├── main.py              # التطبيق الكامل (~7,000 سطر)
├── build_apk.py         # بناء APK مع إصلاح Kotlin تلقائياً
├── pyproject.toml       # إعدادات Flet والمشروع
├── requirements.txt     # الاعتماديات
├── assets/              # أيقونات وموارد التطبيق
├── fonts/               # خط Cairo (أضف Cairo.ttf)
├── uploads/             # ملفات مرفوعة (يُنشأ تلقائياً)
└── school.db            # قاعدة البيانات (تُنشأ عند أول تشغيل)

التثبيت والتشغيل

المتطلبات

  • Python 3.10 أو أحدث
  • pip

1. تثبيت الاعتماديات

pip install -r requirements.txt

2. خط Cairo (للعربية)

ضع ملف Cairo.ttf في مجلد fonts/
يمكن تحميله من Google Fonts – Cairo.

3. تشغيل التطبيق

على المتصفح (الوضع الافتراضي):

python main.py

ثم افتح http://localhost:8080 — أو الرابط الذي يظهر لشبكتك المحلية من الموبايل.

سطح المكتب:

python main.py --desktop

4. حسابات تجريبية (تُنشأ تلقائياً)

الدور البريد كلمة المرور
مدير admin@school.com admin123
معلم teacher@school.com teacher123
ولي أمر parent@school.com parent123
طالب student@school.com student123

غيّر كلمات المرور فوراً في بيئة الإنتاج.


بناء تطبيق Android (APK)

يتطلب Flutter SDK و Android SDK.

python build_apk.py

أو مباشرة:

flet build apk

ملف APK يظهر في مجلد build/apk/.


نماذج قاعدة البيانات

الجدول الغرض
users حسابات الدخول والأدوار
students / teachers / parents بيانات المستخدمين التفصيلية
classes الفصول الدراسية
grades الدرجات مع حالة الاعتماد
attendance الحضور والغياب
assignments الواجبات المدرسية
notifications / messages الإشعارات والرسائل
student_fees / fee_payments الأقساط والمدفوعات
teacher_salaries / salary_bonuses رواتب ومكافآت المعلمين
staff_members / staff_salaries موظفو المدرسة
teacher_reports / behavior_notes تقارير وسلوك
student_talents مواهب الطلاب
audio_resources مقاطع السماعيات
weekly_exams / weekly_exam_submissions الاختبار الأسبوعي

التقنيات والمكتبات

التقنية الاستخدام
Python لغة التطبيق الأساسية
Flet واجهة مستخدم متجاوبة (Flutter)
SQLAlchemy ORM وإدارة قاعدة البيانات
SQLite تخزين محلي خفيف وسريع
hashlib + secrets تشفير كلمات المرور
Flutter / Gradle بناء APK لأندرويد

ما يُظهره هذا المشروع في السيرة / المقابلة

  • القدرة على بناء نظام إدارة متكامل من الفكرة إلى التنفيذ
  • فهم تصميم قواعد البيانات والعلاقات بين الكيانات
  • تطبيق صلاحيات المستخدمين على مستوى الواجهة والمنطق
  • بناء واجهات عربية احترافية ومتجاوبة
  • نشر التطبيق على ويب وموبايل من قاعدة كود واحدة
  • حل مشاكل البناء الحقيقية (إصلاح Kotlin في Gradle)
  • التعامل مع ملفات ثنائية (PDF، صوت) داخل التطبيق

الترخيص

مشروع تعليمي / محفظة أعمال — يمكن استخدامه وتعديله حسب الحاجة.


المؤلف

نظام إدارة المدرسة — مشروع يجمع بين تطوير البرمجيات، قواعد البيانات، وتجربة المستخدم في حل عملي للمدارس.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages