هذا المشروع عبارة عن نظام متكامل لإدارة التعلم (Learning Management System) تم بناؤه باستخدام Java و JavaFX. يهدف النظام إلى تسهيل العملية التعليمية من خلال الربط بين المسؤولين، المدرسين، والطلاب في بيئة واحدة تسمح بإدارة الكورسات، الواجبات، والدرجات بكفاءة.
يتمتع النظام بصلاحيات مفصلة لكل نوع من أنواع المستخدمين:
- إدارة الأقسام الدراسية (إضافة وحذف).
- إدارة السنوات الأكاديمية.
- التحكم في إعدادات النظام.
- إنشاء وإدارة الكورسات.
- رفع المحتوى التعليمي (ملفات PDF، Word، إلخ).
- إنشاء الواجبات (Assignments).
- تصحيح الواجبات ورصد الدرجات.
- استعراض الكورسات المسجل بها.
- تحميل المحتوى التعليمي.
- رفع حلول الواجبات.
- الاطلاع على الدرجات.
تم تصميم المشروع باستخدام نمط MVC (Model-View-Controller) لفصل الكود وتنظيمه وتسهيل التعديل عليه. إليك شرح تفصيلي لكل مجلد وملف:
| المجلد/الحزمة | الوصف |
|---|---|
| model | يحتوي على الكلاسات التي تمثل بيانات النظام (مثل User, Course, Module). هذه الكلاسات لا تحتوي على منطق برمجي معقد بل هي فقط لتمثيل البيانات القادمة من قاعدة البيانات. |
| controller | يحتوي على "العقل المدبر" لكل شاشة. كل ملف FXML له Controller خاص به يتحكم في ما يحدث عند الضغط على الأزرار وكيفية عرض البيانات (مثل LoginController, DashboardController). |
| util | يحتوي على أدوات مساعدة تستخدم في جميع أنحاء المشروع. أهمها DatabaseConnection للاتصال بقاعدة البيانات و UserSession لحفظ بيانات المستخدم المسجل دخوله حالياً. |
| Main.java | نقطة انطلاق البرنامج. يقوم بتحميل شاشة تسجيل الدخول وبدء التطبيق. |
| المجلد/الاسم | الوصف |
|---|---|
| com/lms/app | يحتوي على ملفات الواجهة (.fxml). هذه الملفات تحدد شكل الشاشات والأزرار وحقول الإدخال. |
| config.properties | ملف إعدادات الاتصال بقاعدة البيانات (اسم المستخدم وكلمة المرور الخاصة بـ MySQL). |
| schema.sql | كود SQL لإنشاء قاعدة البيانات والجداول الأساسية (Users, Courses, etc.). |
| styles.css | ملف التصميم (CSS) المسؤول عن الألوان، الخطوط، وشكل الأزرار في البرنامج بالكامل. |
للتشغيل الصحيح، اتبع الخطوات التالية:
- تجهيز قاعدة البيانات:
- تأكد من تثبيت وتشغيل MySQL.
- قم بإنشاء قاعدة البيانات باستخدام الملف
src/main/resources/schema.sql.
- ضبط الإعدادات:
- افتح الملف
src/main/resources/config.properties. - قم بتعديل
db.userوdb.passwordلتطابق بيانات الـ MySQL لديك.
- افتح الملف
- تشغيل التطبيق:
- يمكنك تشغيل الملف
Main.javaمباشرة من الـ IDE (مثل IntelliJ أو Eclipse). - أو عير التيرمينال باستخدام الأمر:
mvn clean javafx:run
- يمكنك تشغيل الملف
يمكنك تغيير شكل البرنامج بالكامل بطريقتين:
لتغيير الألوان، الخطوط، أو الأحجام دون تغيير مكان العناصر:
- توجه إلى الملف:
src/main/resources/styles.css. - هذا الملف يحتوي على كلاسات CSS (مثل
.button,.label). - مثال: لتغيير لون خلفية البرنامج، ابحث عن
.rootوقم بتغيير-fx-background-color.
لتغيير أماكن الأزرار، إضافة حقول جديدة، أو تغيير تخطيط الصفحة:
- الملفات موجودة في
src/main/resources/com/lms/app. - يُنصح باستخدام برنامج SceneBuilder لفتح هذه الملفات.
- يمكنك سحب وإفلات العناصر (Drag & Drop) لتعديل الشاشة بسهولة.
- ملاحظة هامة: إذا أضفت زرًا جديدًا وتريده أن يقوم بوظيفة معينة، يجب عليك ربطه في ملف الـ Controller المقابل له وتعريف الكود الخاص به (مثلاً
handleNewButtonClick).
DatabaseConnection.java: يضمن وجود اتصال واحد فقط بقاعدة البيانات (Singleton Pattern) لتوفير الموارد.UserSession.java: يحفظ معلومات المستخدم الذي قام بتسجيل الدخول، مما يسمح للبرنامج بمعرفة ما إذا كان المستخدم الحالي "طالب" أو "مدرس" وعرض القوائم المناسبة له.FileHandler.java: مسؤول عن تحويل الملفات (PDF/Word) إلى بيانات (Binary) لتخزينها في قاعدة البيانات، والعكس عند التحميل.
إذا واجهت أي مشكلة، تأكد من مراجعة ملف الـ Log أو التأكد من إعدادات قاعدة البيانات.