تطبيق متعدد المنصات لإدارة العمليات المدرسية اليومية — من تسجيل الطلاب والدرجات إلى الأقساط والرواتب والإشعارات — مع واجهات مخصصة لكل دور: مدير، معلم، ولي أمر، طالب.
مشروع تخرج / محفظة أعمال يُظهر بناء تطبيق كامل من الصفر بلغة Python، بواجهة حديثة، وقاعدة بيانات علائقية، ودعم الويب والموبايل.
| البند | التفاصيل |
|---|---|
| اللغة | Python 3.12+ |
| واجهة المستخدم | Flet 0.25 (مبني على Flutter) |
| قاعدة البيانات | SQLite + SQLAlchemy ORM |
| حجم الكود | ~7,000 سطر في ملف التطبيق الرئيسي |
| نماذج البيانات | 20+ جدول |
| الأدوار | 4 أدوار مع صلاحيات منفصلة |
| المنصات | متصفح الويب · سطح المكتب · Android (APK) |
- بناء تطبيق monolith منظم بأكثر من 7,000 سطر
- استخدام
contextmanagerلإدارة جلسات قاعدة البيانات بأمان - التحقق من المدخلات (
validate_email,validate_required) - معالجة التواريخ والأوقات (
datetime,date,timedelta) - تشغيل مهام في الخلفية عبر
threading - أتمتة البناء عبر
subprocessفيbuild_apk.py
- تصميم مخطط علائقي كامل بـ SQLAlchemy 2.x
- علاقات
ForeignKeyبين المستخدمين والطلاب والمعلمين والفصول - جلسات DB مع
commit/rollback/closeتلقائي - استعلامات معقدة: تقارير، فلترة حسب الصف والشعبة والفصل الدراسي
- تخزين ملفات (PDF، صوت) كـ Base64 داخل SQLite
- تصميم واجهة عربية كاملة مع خط Cairo
- نظام ألوان موحّد ولوحات تحكم لكل دور
- مكوّنات قابلة لإعادة الاستخدام: بطاقات إحصائية، حوارات تأكيد، SnackBar
- تبويبات ديناميكية تُحدَّث عند التنقل (
on_tab_change) - دعم RTL والنصوص العربية في كل الشاشات
- Role-Based Access Control: كل مستخدم يرى واجهته فقط
- تشفير كلمات المرور:
SHA-256+saltعشوائي (secrets.token_hex) - فصل صلاحيات المدير / المعلم / ولي الأمر / الطالب على مستوى الواجهة والبيانات
- موافقة المدير على الدرجات قبل اعتمادها (
pending→approved/rejected)
- ويب:
ft.AppView.WEB_BROWSERمع اكتشاف IP للشبكة المحلية - سطح المكتب:
python main.py --desktop - Android:
flet build apkمع سكربت إصلاح إصدار Kotlin تلقائياً - رفع الملفات عبر
upload_dir
- فصل الطبقات: نماذج DB → دوال الأعمال → شاشات UI
- شاشات مستقلة:
AdminScreen,TeacherScreen,ParentScreen,StudentScreen - ثوابت مركزية للألوان والفئات (
COLORS,TALENT_CATEGORIES, …) - إعداد المشروع عبر
pyproject.tomlوrequirements.txt
| التبويب | الوظيفة |
|---|---|
| الرئيسية | لوحة إحصائيات شاملة |
| الطلاب / المعلمون / الفصول | إدارة كاملة CRUD |
| التقارير | تقارير الطلاب والمعلمين |
| الأقساط | تسجيل الأقساط والمدفوعات |
| الرواتب | رواتب المعلمين والموظفين + مكافآت |
| الموظفون | إدارة عمال المدرسة غير التعليميين |
| الدرجات | اعتماد أو رفض درجات المعلمين |
| تقارير المعلمين | استلام التقارير والرد عليها |
| المواهب | تصنيف مواهب الطلاب |
| التسلسل الدراسي | السجل الأكاديمي التاريخي |
| المقاطع الصوتية | سماعيات فرنسي/إنجليزي |
| الإشعارات | إرسال إشعارات جماعية أو فردية |
الحضور والغياب · إدخال الدرجات · رفع الواجبات · التقارير · ملاحظات السلوك · المواهب · الاختبار الأسبوعي (PDF + مؤقت زمني) · السماعيات · الإشعارات · تغيير كلمة المرور
متابعة الأبناء · الدرجات · الواجبات · الأقساط · السلوك · الاختبار الأسبوعي · السماعيات · الإشعارات
الدرجات · الواجبات · الاختبار الأسبوعي · السماعيات · الإشعارات
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
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
pip install -r requirements.txtضع ملف Cairo.ttf في مجلد fonts/
يمكن تحميله من Google Fonts – Cairo.
على المتصفح (الوضع الافتراضي):
python main.pyثم افتح http://localhost:8080 — أو الرابط الذي يظهر لشبكتك المحلية من الموبايل.
سطح المكتب:
python main.py --desktop| الدور | البريد | كلمة المرور |
|---|---|---|
| مدير | admin@school.com | admin123 |
| معلم | teacher@school.com | teacher123 |
| ولي أمر | parent@school.com | parent123 |
| طالب | student@school.com | student123 |
غيّر كلمات المرور فوراً في بيئة الإنتاج.
يتطلب 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، صوت) داخل التطبيق
مشروع تعليمي / محفظة أعمال — يمكن استخدامه وتعديله حسب الحاجة.
نظام إدارة المدرسة — مشروع يجمع بين تطوير البرمجيات، قواعد البيانات، وتجربة المستخدم في حل عملي للمدارس.