Skip to content
d0s00Public

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

نظام إدارة التعلم (LMS Project)

هذا المشروع عبارة عن نظام متكامل لإدارة التعلم (Learning Management System) تم بناؤه باستخدام Java و JavaFX. يهدف النظام إلى تسهيل العملية التعليمية من خلال الربط بين المسؤولين، المدرسين، والطلاب في بيئة واحدة تسمح بإدارة الكورسات، الواجبات، والدرجات بكفاءة.

🌟 مميزات المشروع

يتمتع النظام بصلاحيات مفصلة لكل نوع من أنواع المستخدمين:

1. المسؤول (Admin)

  • إدارة الأقسام الدراسية (إضافة وحذف).
  • إدارة السنوات الأكاديمية.
  • التحكم في إعدادات النظام.

2. المدرس (Instructor)

  • إنشاء وإدارة الكورسات.
  • رفع المحتوى التعليمي (ملفات PDF، Word، إلخ).
  • إنشاء الواجبات (Assignments).
  • تصحيح الواجبات ورصد الدرجات.

3. الطالب (Student)

  • استعراض الكورسات المسجل بها.
  • تحميل المحتوى التعليمي.
  • رفع حلول الواجبات.
  • الاطلاع على الدرجات.

📂 هيكل المشروع (Project Structure)

تم تصميم المشروع باستخدام نمط MVC (Model-View-Controller) لفصل الكود وتنظيمه وتسهيل التعديل عليه. إليك شرح تفصيلي لكل مجلد وملف:

المسار: src/main/java/com/lms/app

المجلد/الحزمة الوصف
model يحتوي على الكلاسات التي تمثل بيانات النظام (مثل User, Course, Module). هذه الكلاسات لا تحتوي على منطق برمجي معقد بل هي فقط لتمثيل البيانات القادمة من قاعدة البيانات.
controller يحتوي على "العقل المدبر" لكل شاشة. كل ملف FXML له Controller خاص به يتحكم في ما يحدث عند الضغط على الأزرار وكيفية عرض البيانات (مثل LoginController, DashboardController).
util يحتوي على أدوات مساعدة تستخدم في جميع أنحاء المشروع. أهمها DatabaseConnection للاتصال بقاعدة البيانات و UserSession لحفظ بيانات المستخدم المسجل دخوله حالياً.
Main.java نقطة انطلاق البرنامج. يقوم بتحميل شاشة تسجيل الدخول وبدء التطبيق.

المسار: src/main/resources

المجلد/الاسم الوصف
com/lms/app يحتوي على ملفات الواجهة (.fxml). هذه الملفات تحدد شكل الشاشات والأزرار وحقول الإدخال.
config.properties ملف إعدادات الاتصال بقاعدة البيانات (اسم المستخدم وكلمة المرور الخاصة بـ MySQL).
schema.sql كود SQL لإنشاء قاعدة البيانات والجداول الأساسية (Users, Courses, etc.).
styles.css ملف التصميم (CSS) المسؤول عن الألوان، الخطوط، وشكل الأزرار في البرنامج بالكامل.

🛠️ كيفية تشغيل المشروع

للتشغيل الصحيح، اتبع الخطوات التالية:

  1. تجهيز قاعدة البيانات:
    • تأكد من تثبيت وتشغيل MySQL.
    • قم بإنشاء قاعدة البيانات باستخدام الملف src/main/resources/schema.sql.
  2. ضبط الإعدادات:
    • افتح الملف src/main/resources/config.properties.
    • قم بتعديل db.user و db.password لتطابق بيانات الـ MySQL لديك.
  3. تشغيل التطبيق:
    • يمكنك تشغيل الملف Main.java مباشرة من الـ IDE (مثل IntelliJ أو Eclipse).
    • أو عير التيرمينال باستخدام الأمر: mvn clean javafx:run

🎨 كيفية التعديل على الواجهة (UI & Design)

يمكنك تغيير شكل البرنامج بالكامل بطريقتين:

1. تعديل التصميم (CSS)

لتغيير الألوان، الخطوط، أو الأحجام دون تغيير مكان العناصر:

  • توجه إلى الملف: src/main/resources/styles.css.
  • هذا الملف يحتوي على كلاسات CSS (مثل .button, .label).
  • مثال: لتغيير لون خلفية البرنامج، ابحث عن .root وقم بتغيير -fx-background-color.

2. تعديل الهيكلة (FXML)

لتغيير أماكن الأزرار، إضافة حقول جديدة، أو تغيير تخطيط الصفحة:

  • الملفات موجودة في src/main/resources/com/lms/app.
  • يُنصح باستخدام برنامج SceneBuilder لفتح هذه الملفات.
  • يمكنك سحب وإفلات العناصر (Drag & Drop) لتعديل الشاشة بسهولة.
  • ملاحظة هامة: إذا أضفت زرًا جديدًا وتريده أن يقوم بوظيفة معينة، يجب عليك ربطه في ملف الـ Controller المقابل له وتعريف الكود الخاص به (مثلاً handleNewButtonClick).

💡 شرح الملفات الرئيسية

  • DatabaseConnection.java: يضمن وجود اتصال واحد فقط بقاعدة البيانات (Singleton Pattern) لتوفير الموارد.
  • UserSession.java: يحفظ معلومات المستخدم الذي قام بتسجيل الدخول، مما يسمح للبرنامج بمعرفة ما إذا كان المستخدم الحالي "طالب" أو "مدرس" وعرض القوائم المناسبة له.
  • FileHandler.java: مسؤول عن تحويل الملفات (PDF/Word) إلى بيانات (Binary) لتخزينها في قاعدة البيانات، والعكس عند التحميل.

إذا واجهت أي مشكلة، تأكد من مراجعة ملف الـ Log أو التأكد من إعدادات قاعدة البيانات.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages